通过HSBroker的用户名密码认证实现查询HetuEngine SQL任务
本章节适用于MRS 3.3.0及以后版本。
通过HSBroker连接方式实现,使用用户名和密码连接到HetuEngine,组装对应的SQL发送到HetuEngine执行。
import jaydebeapi driver = "io.XXX.jdbc.XXXDriver" # need to change the value based on the cluster information url = "jdbc:XXX://192.168.43.223:29860,192.168.43.244:29860/hive/default?serviceDiscoveryMode=hsbroker" user = "YourUserName" # 认证用的密码写入代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以密码保存在环境变量中来实现身份验证为例,运行本示例前,请先在本地环境中设置环境变量HETUENGINE_PASSWORD password = os.getenv('HETUENGINE_PASSWORD') tenant = "YourTenant" jdbc_location = "Your file path of the jdbc jar" sql = "show tables" if __name__ == '__main__': conn = jaydebeapi.connect(driver, url, {"user": user, "password": password, "tenant": tenant}, [jdbc_location]) curs = conn.cursor() curs.execute(sql) result = curs.fetchall() print(result) curs.close() conn.close()
上述代码中各参数说明如下表所示:
参数名称 |
参数说明 |
---|---|
url |
jdbc:XXX://HSBroker1_IP:HSBroker1_Port,HSBroker2_IP:HSBroker2_Port,HSBroker3_IP:HSBroker3_Port/catalog/schema?serviceDiscoveryMode=hsbroker
说明:
|
user |
访问HetuEngine的用户名,即在集群中创建的“人机”用户的用户名。 |
password |
在集群中创建的“人机”用户的用户密码。 |
tenant |
指定访问HetuEngine计算实例的租户资源队列。 |
jdbc_location |
导入并配置HetuEngine Python3样例工程中获取的hetu-jdbc-XXX.jar包的完整路径。
|