HANA 连接器

HANA 连接器允许查询和创建外部 HANA 数据库中的表。 这可以用于在不同的系统之间(例如 HANA 和 Hive)或两个不同的 HANA 实例之间连接数据。

配置

要配置 HANA 连接器,请在 etc/catalog 中创建一个名为 hana.properties 的目录属性文件,以将 HANA 连接器作为 hana 目录挂载。

使用以下内容创建文件,根据您的设置替换连接属性

connector.name=hana
connection-url=jdbc:sap://[serverName[\instanceName][:portNumber]]
connection-user=root
connection-password=secret

连接安全性

JDBC 驱动程序和连接器自动使用传输层安全性 (TLS) 加密和证书验证。 这需要在您的 Hana 数据库主机上配置合适的 TLS 证书。

要在连接字符串中启用加密,请使用 encrypt 属性

connection-url=jdbc:sap://<host>:<port>?encrypt=true;

可以使用 connection-url 配置的其他 SSL 配置属性

SSL 配置属性

属性名称

描述

默认值

validateCertificate

指示应将服务器提供的 SSL 证书验证与指定的信任库进行比较。

true

trustStoreType

信任库文件的格式,例如 JKS

trustStore

信任库文件的路径。

trustStorePassword

信任库的密码。

使用信任库的连接字符串类似于以下示例

connection-url=jdbc:sap://<host>:<port>?encrypt=true&validateCertificate=true&trustStore=path/to/truststore.jks&trustStorePassword=password&trustStoreType=jks

多个 HANA 数据库或服务器

HANA 连接器只能访问 HANA 服务器中单个数据库中的数据。 如果您有多个 HANA 数据库,或者想要连接到多个 HANA 实例,则必须为每个实例配置多个目录。

要添加另一个目录,请在 etc/catalog 中添加另一个属性文件,并使用不同的名称(确保它以 .properties 结尾)。 例如,如果您将属性文件命名为 sales.properties,Presto 将使用配置的连接器创建一个名为 sales 的目录。

通用配置属性

属性名称

描述

默认值

user-credential-name

其值为 JDBC 驱动程序的用户名 extraCredentials 属性的名称。 请参阅 参数参考 中的 extraCredentials

password-credential-name

其值为 JDBC 驱动程序的用户密码 extraCredentials 属性的名称。 请参阅 参数参考 中的 extraCredentials

case-insensitive-name-matching

不区分大小写匹配数据集和表名称。

false

case-insensitive-name-matching.cache-ttl

远程数据集和表名称将缓存的持续时间。 设置为 0ms 以禁用缓存。

1m

查询 HANA

HANA 连接器提供对配置的数据库中指定用户可见的所有架构的访问。 对于以下示例,假设 HANA 目录为 hana

您可以通过运行 SHOW SCHEMAS 来查看可用的架构。

SHOW SCHEMAS FROM hana;

如果您有一个名为 web 的架构,则可以通过运行 SHOW TABLES 来查看此架构中的表。

SHOW TABLES FROM hana.web;

您可以使用以下任一方法查看 web 数据库中 clicks 表中的列列表

DESCRIBE hana.web.clicks;
SHOW COLUMNS FROM hana.web.clicks;

最后,您可以查询 web 架构中的 clicks 表。

SELECT * FROM hana.web.clicks;

如果您为目录属性文件使用了不同的名称,请在以上示例中使用该目录名称而不是 hana

HANA 连接器限制

以下 SQL 语句不支持