
# 通过HSFabric的KeyTab认证实现查询HetuEngine SQL任务
通过HSFabric实现KeyTab文件认证方式连接到HetuEngine，组装对应的SQL发送到HetuEngine执行，完成对Hive数据源的增删改查操作。
```
import jaydebeapi
 
driver = "io.XXX.jdbc.XXXDriver"
 
# need to change the value based on the cluster information
url = "jdbc:XXX://192.168.43.244:29902/hive/default?serviceDiscoveryMode=hsfabric"
user = "YourUserName"
KerberosPrincipal = "YourUserName"
tenant = "YourTenant"
KerberosConfigPath = "Your file path of krb5.conf"
KerberosKeytabPath = "Your file path of user.keytab"
jdbc_location = "Your file path of the jdbc jar"
 
sql = "show tables"
 
if __name__ == '__main__':
    conn = jaydebeapi.connect(driver, url, {'user': user,
                                            'SSL': "true",
                                            'KerberosPrincipal': KerberosPrincipal,
                                            'KerberosConfigPath': KerberosConfigPath,
                                            'KerberosRemoteServiceName': "HTTP",
                                            "KerberosKeytabPath": KerberosKeytabPath,
                                            "tenant": tenant,
                                            'deploymentMode': "on_yarn",
                                            "ZooKeeperSaslClientConfig": "Client"},
                              [jdbc_location])
    curs = conn.cursor()
    curs.execute(sql)
    result = curs.fetchall()
    print(result)
    curs.close()
    conn.close()
```
上述代码中各参数说明如下表所示：
表1参数及参数说明 
| 参数名称               | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|
| url                | jdbc:*XXX* ://*HSFabric1_IP* :*HSFabric1_Port* ,*HSFabric2_IP* :*HSFabric2_Port* ,*HSFabric3_IP* :*HSFabric3_Port* /*catalog* /*schema*?serviceDiscoveryMode=hsfabric 说明： - XXX：驱动名，请以实际样例代码中的内容为准。  - catalog、schema分别是JDBC客户端要连接的catalog和schema名称。  - HSFabric_IP:HSFabric_Port是HSFabric的URL，多个URL以逗号隔开。例如："192.168.1.130:29902,192.168.1.131:29902,192.168.1.132:29902"。 在Manager页面，选择"集群 \> 服务 \> HetuEngine \> 实例"，获取HSFabric所有实例的业务IP；在"配置"页签，搜索"gateway.port"，获取HSFabric的端口号。    |
| user               | 访问HetuEngine的用户名，即在集群中创建的"人机"用户的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| KerberosPrincipal  | KerberosKeytabPath指定的keytab对应的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| tenant             | 指定访问HetuEngine计算实例的租户资源队列                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| KerberosConfigPath | 访问数据源用户的krb5配置文件，参考[配置HetuEngine应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100010.html)获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| KerberosKeytabPath | 访问数据源用户的keytab配置文件，参考[配置HetuEngine应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100010.html)获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| jdbc_location      | [导入并配置HetuEngine Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100029.html)中获取的hetu-jdbc-XXX.jar包的完整路径。 - Windows系统路径示例："D:\\\\hetu-examples-python3\\\\hetu-jdbc-XXX.jar"  - Linux系统路径示例："/opt/hetu-examples-python3/hetu-jdbc-XXX.jar"                                                                                                                                                                                                                                                                                                                                         |
   
