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=xyz和foo=bar
|
customHeaders
|
要通过配置JDBC驱动程序注入的自定义标头。customHeaders 是一个键值对列表。示例: testHeaderKey:testHeaderValue将testHeaderKey 使用 value注入标头testHeaderValue。值应为百分比编码。
|