JDBC驱动

可以使用JDBC驱动从Java访问openLooKeng,并将其添加到Java应用的类路径中。

该驱动也可从Maven Central获得:

<dependency>
    <groupId>io.hetu.core</groupId>
    <artifactId>hetu-jdbc</artifactId>
    <version>010</version>
</dependency>

驱动名称

驱动类名为io.hetu.core.jdbc.OpenLooKengDriver。大多数用户不需要此信息,因为驱动是自动加载的。

连接

JDBC URL支持如下格式:

jdbc:lk://host:port
jdbc:lk://host:port/catalog
jdbc:lk://host:port/catalog/schema

例如,使用以下URL连接到运行于example.net端口8080的openLooKeng,其目录为hive,模式为sales

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

可以使用上面的URL创建连接,如下所示:

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

连接参数

该驱动支持各种参数,这些参数可以设置为URL参数或作为传递给DriverManager的属性。以下两个示例是等效的:

// URL parameters
String url = "jdbc:lk://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:lk://example.net:8080/hive/sales?user=test&password=secret&SSL=true";
Connection connection = DriverManager.getConnection(url);

这些方法可以混合使用;一些参数可以在URL中指定,而另一些参数则使用属性指定。但是相同的参数不可同时用两种方法指定。

参数参考

项目 描述
user 用于身份验证和授权的用户名。
password 用于LDAP身份验证的密码。
socksProxy SOCKS代理主机和端口。示例:localhost:1080
httpProxy HTTP代理主机和端口。示例:localhost:8888
applicationNamePrefix 添加到任何指定的ApplicationName客户端信息属性的前缀,该前缀用于设置openLooKeng查询的源名称。如果既没有设置该属性也没有设置ApplicationName,则查询的源将是presto-jdbc
accessToken 基于令牌身份验证的访问令牌。
SSL 使用HTTPS连接。
SSLKeyStorePath 包含用于身份验证的证书和私钥的JavaKeyStore文件的位置。
SSLKeyStorePassword KeyStore密码。
SSLTrustStorePath 用于验证HTTPS服务器证书的Java TrustStore文件的位置。
SSLTrustStorePassword TrustStore密码。
KerberosRemoteServiceName openLooKeng协调节点Kerberos服务的名称。Kerberos认证时,需要配置该参数。
KerberosPrincipal 向openLooKeng协调节点进行身份验证时使用的主体。
KerberosUseCanonicalHostname 通过首先将主机名解析为IP地址,然后对该IP地址执行反向DNS查找,从而使用Kerberos服务主体的openLooKeng协调节点的规范主机名。此参数默认启用。
KerberosServicePrincipalPattern openLooKeng协调节点Kerberos服务主体模式。默认值为${SERVICE}@${HOST}${SERVICE}替换为KerberosRemoteServiceName的值,${HOST}替换为协调节点的主机名(如果启用了规范化,则为规范化后的主机名)。
KerberosConfigPath Kerberos配置文件。
KerberosKeytabPath Kerberos keytab文件。
KerberosCredentialCachePath Kerberos凭证缓存。
extraCredentials 连接外部服务的额外凭证。ExtraCredentials是一个键值对列表。示例:foo:bar;abc:xyz将创建凭据abc=xyzfoo=bar