Presto 使用JDBC驱动访问


1 下载JDBC驱动

您也可以通过下载JDBC驱动程序,来在JAVA中使用Presto。

下载presto-jdbc-0.264.jar,并将其添加到JAVA的路径下。

2 创建连接

Presto支持以下JDBC的URL格式:

jdbc:presto://host:port
jdbc:presto://host:port/catalog
jdbc:presto://host:port/catalog/schema

例如,使用以下URL连接到在具有Catalog和Schema的example.net端口8080上运行的 Presto:hivesales

jdbc:presto://example.net:8080/hive/sales

上面的URL可以用来创建连接:

String url = "jdbc:presto://example.net:8080/hive/sales";
Connection connection = DriverManager.getConnection(url, "test", null);

3 连接参数

驱动程序支持各种参数,这些参数可以设置为URL参数或其他形式。

以下两个示例是等效的:

// URL parameters
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);

// properties
String url = "jdbc:presto://example.net:8080/hive/sales?user=test&password=secret&SSL=true";
Connection connection = DriverManager.getConnection(url);

这些方法可以混合使用;某些参数可能在URL中指定,而其他参数则需要使用属性指定。但是,不能使用这两种方法指定相同的参数。

4 参数参考

参数名称

描述

user

用于身份验证和授权的用户名。

password

用于配置LDAP身份验证的密码。

socksProxy

SOCKS代理主机和端口。例子:localhost:1080

httpProxy

HTTP代理主机和端口。例子:localhost:8888

protocols

逗号划定要使用的HTTP协议列表。例子:protocols=http11。可接受的值:http11,http10,http2

applicationNamePrefix

附加到任何指定的ApplicationName客户端信息属性的前缀,用于设置 Presto查询的源名称。如果既未ApplicationName设置此属性,也未设置此属性,则查询的源将为presto-jdbc

accessToken

用于基于令牌的身份验证的访问令牌。

SSL

使用HTTPS进行连接

SSLKeyStorePath

包含用于身份验证的证书和私钥的Java KeyStore文件的位置。

SSLKeyStorePassword

密钥库的密码。

SSLTrustStorePath

将用于验证HTTPS服务器证书的Java TrustStore文件的位置。

SSLTrustStorePassword

TrustStore的密码。

KerberosRemoteServiceName

Presto协调器Kerberos服务名称。Kerberos身份验证需要此参数。

KerberosPrincipal

向Presto协调器配置身份验证时使用的主体。

KerberosUseCanonicalHostname

通过首先将主机名解析为 IP 地址,然后对该 IP 地址执行反向 DNS 查找,将 Presto 协调器的规范主机名用于 Kerberos 服务主体。这是默认启用的。

KerberosConfigPath

Kerberos 配置文件。

KerberosKeytabPath

Kerberos 密钥表文件。

KerberosCredentialCachePath

Kerberos 凭据缓存。

extraCredentials

用于连接到外部服务的额外凭据。extraCredentials 是一个键值对列表。示例: foo:bar;abc:xyz将创建凭据abc=xyzfoo=bar

customHeaders

要通过配置JDBC驱动程序注入的自定义标头。customHeaders 是一个键值对列表。示例: testHeaderKey:testHeaderValuetestHeaderKey 使用 value注入标头testHeaderValue。值应为百分比编码。