你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Trino JDBC 驱动程序

重要

此功能目前以预览版提供。 Microsoft Azure 预览版的补充使用条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的更多法律条款。 有关此特定预览版的信息,请参阅 Azure HDInsight on AKS 预览版信息。 如有疑问或功能建议,请在 AskHDInsight 上提交请求并附上详细信息,并关注我们以获取 Azure HDInsight Community 的更多更新。

与 HDInsight on AKS 配合使用的 Trino 提供 JDBC 驱动程序,该驱动程序支持 Microsoft Entra 身份验证,并为它添加几个了参数。

安装

JDBC 驱动程序 jar 包含在 Trino CLI 包(安装适用于 HDInsight on AKS 的 Trino CLI)中。 如果已安装 CLI,可以在文件系统上找到它,路径如下:

Windows: C:\Program Files (x86)\Microsoft SDKs\Azure\TrinoCli-<version>\lib

Linux:~/lib/trino-cli

身份验证

Trino JDBC 驱动程序支持各种 Microsoft Entra 身份验证方法。 下表介绍了重要的参数和身份验证方法。 有关详细信息,请参阅身份验证

参数 含义 必须 说明
auth 身份验证方法的名称 确定如何提供用户凭据。 如果未指定,则使用 AzureDefault
azureClient 服务主体/应用程序的客户端 ID 适用于 AzureClientSecret, AzureClientCertificate
azureTenant Microsoft Entra 租户 ID 适用于 AzureClientSecret, AzureClientCertificate
azureCertificatePath 证书的文件路径 适用于 AzureClientCertificate 包含证书的 pfx/pem 文件的路径。
azureUseTokenCache 是否使用令牌缓存 如果已提供,则会在 AzureDefault, AzureInteractive, AzureDeviceCode 模式下缓存并重复使用访问令牌。
azureScope 令牌范围 用于请求令牌的 Microsoft Entra 范围字符串。
password 服务主体的客户端密码 适用于 AzureClientSecret 使用 AzureClientSecret 模式时,服务主体的机密/密码。
accessToken JWT 访问令牌 如果访问令牌是从外部获取的,可使用此参数提供。 在这种情况下,不允许使用 auth 参数。

示例 - 连接字符串

说明 JDBC 连接字符串
AzureDefault jdbc:trino://cluster1.pool1.region1.projecthilo.net
交互式浏览器身份验证 jdbc:trino://cluster1.pool1.region1.projecthilo.net?auth=AzureInteractive
使用令牌缓存 jdbc:trino://cluster1.pool1.region1.projecthilo.net?auth=AzureInteractive&azureUseTokenCache=true
具有机密的服务主体 jdbc:trino://cluster1.pool1.region1.projecthilo.net?auth=AzureClientSecret&azureTenant=11111111-1111-1111-1111-111111111111&azureClient=11111111-1111-1111-1111-111111111111&password=placeholder

通过 Java 代码使用 JDBC 驱动程序

找到 JDBC jar 文件并将其安装到本地 maven 存储库中:

mvn install:install-file -Dfile=<trino-jdbc-*.jar> -DgroupId=io.trino -DartifactId=trino-jdbc -Dversion=<trino-jdbc-version> -Dpackaging=jar -DgeneratePom=true

使用 JDBC 下载并解压缩连接到 Trino 的示例 java 代码。 有关详细信息和示例,请参阅包含的 README.md。

使用开源 Trino JDBC 驱动程序

还可以从外部获取访问令牌,并将其传递给开源 Trino JDBC 驱动程序,使用此身份验证的示例 java 代码包含在在 java 代码部分使用 JDBC 驱动程序中。