Trino JDBC 驱动程序

重要

AKS 上的 Azure HDInsight 已于 2025 年 1 月 31 日停用。 通过此公告了解更多

需要将工作负荷迁移到 Microsoft Fabric 或等效的 Azure 产品,以避免工作负荷突然终止。

重要

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

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

安装

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

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

Linux:~/lib/trino-cli

认证

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

参数 意义 必填 描述
认证 身份验证方法的名称 确定如何提供用户凭据。 如果未指定,请使用 AzureDefault
azureClient 服务主体/应用程序的客户端 ID AzureClientSecret, AzureClientCertificate是的。
azureTenant Microsoft Entra 租户 ID 对于 AzureClientSecret, AzureClientCertificate,是的。
azureCertificatePath 证书的文件路径 AzureClientCertificate是的。 包含证书的 pfx/pem 文件的路径。
Azure 使用令牌缓存 使用令牌缓存或不使用 如果提供,访问令牌将缓存并在 AzureDefault, AzureInteractive, AzureDeviceCode 模式下重复使用。
azureScope 令牌范围 用于请求令牌的 Microsoft Entra 范围字符串。
密码 服务主体的客户端机密 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 驱动程序。在“使用 JDBC 驱动程序的 Java 代码”部分 中包含了使用此身份验证的示例 Java 代码