JDBC 驱动程序¶
可以使用 JDBC 驱动程序从 Java 访问 Presto。下载 presto-jdbc-0.289.jar 并将其添加到 Java 应用程序的类路径中。
驱动程序也可从 Maven Central 获取
<dependency> <groupId>com.facebook.presto</groupId> <artifactId>presto-jdbc</artifactId> <version>0.289</version> </dependency>
要求¶
Presto JDBC 驱动程序具有以下要求
Java 版本 8 或更高版本。
所有使用 JDBC 驱动程序连接到 Presto 的用户都必须被授予查询
system.jdbc
架构中表的权限。
连接¶
支持以下 JDBC URL 格式
jdbc:presto://host:port
jdbc:presto://host:port/catalog
jdbc:presto://host:port/catalog/schema
例如,使用以下 URL 连接到在 example.net
端口 8080
上运行的 Presto,并使用目录 hive
和架构 sales
jdbc:presto://example.net:8080/hive/sales
上面的 URL 可以按如下方式使用来创建连接
String url = "jdbc:presto://example.net:8080/hive/sales";
Connection connection = DriverManager.getConnection(url, "test", null);
连接参数¶
驱动程序支持各种参数,这些参数可以设置为 URL 参数或作为传递给 DriverManager
的属性。以下两个示例等效
// properties
String url = "jdbc:presto://example.net:8080/hive/sales";
Properties properties = new Properties();
properties.setProperty("user", "test");
properties.setProperty("password", "secret");
properties.setProperty("SSL", "true");
Connection connection = DriverManager.getConnection(url, properties);
// URL parameters
String url = "jdbc:presto://example.net:8443/hive/sales?user=test&password=secret&SSL=true";
Connection connection = DriverManager.getConnection(url);
这些方法可以混合使用;一些参数可以在 URL 中指定,而另一些参数可以使用属性指定。但是,同一个参数不能使用这两种方法指定。
参数参考¶
名称 |
描述 |
---|---|
|
用于身份验证和授权的用户名。 |
|
用于 LDAP 身份验证的密码。 |
|
SOCKS 代理主机和端口。例如: |
|
HTTP 代理主机和端口。例如: |
|
要使用的 HTTP 协议的逗号分隔列表。例如: |
|
附加到任何指定的 |
|
用于基于令牌的身份验证的访问令牌。 |
|
用于查询输出中时间戳列的时区。例如: |
|
禁用来自服务器的查询结果 HTTP 响应的压缩 |
|
对连接使用 HTTPS |
|
包含用于身份验证的证书和私钥的 Java 密钥存储文件的位置。 |
|
密钥存储的密码。 |
|
将用于验证 HTTPS 服务器证书的 Java 信任存储文件的位置。 |
|
信任存储的密码。 |
|
Presto 协调器 Kerberos 服务名称。此参数对于 Kerberos 身份验证是必需的。 |
|
身份验证到 Presto 协调器时使用的主体。 |
|
通过首先将主机名解析为 IP 地址,然后对该 IP 地址进行反向 DNS 查找,为 Kerberos 服务主体使用 Presto 协调器的规范主机名。默认情况下启用此功能。 |
|
Kerberos 配置文件。 |
|
Kerberos 密钥表文件。 |
|
Kerberos 凭证缓存。 |
|
用于连接到外部服务的额外凭证。extraCredentials 是一个键值对列表。例如: |
|
通过 JDBC 驱动程序注入的自定义标头。customHeaders 是一个键值对列表。例如: |
|
验证下一个 URI 中的主机和端口在查询执行期间不会更改。 |
|
禁用 Presto 客户端以安全措施的形式执行重定向。 |