SQL Server 连接器¶
SQL Server 连接器允许查询和创建外部 SQL Server 数据库中的表。这可以用来连接不同系统(如 SQL Server 和 Hive)或两个不同的 SQL Server 实例之间的数据。
配置¶
要配置 SQL Server 连接器,请在 etc/catalog
中创建一个目录属性文件,例如名为 sqlserver.properties
,将 SQL Server 连接器安装为 sqlserver
目录。使用以下内容创建文件,根据您的设置替换连接属性
connector.name=sqlserver
connection-url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]]
connection-user=root
connection-password=secret
连接安全¶
JDBC 驱动程序和连接器会自动使用传输层安全 (TLS) 加密和证书验证。这需要在您的 SQL Server 数据库主机上配置适当的 TLS 证书。
要在连接字符串中禁用加密,请使用 encrypt
属性
connection-url=jdbc:sqlserver://<host>:<port>;databaseName=<databaseName>;encrypt=false;
其他可以使用 connection-url
配置的 SSL 配置属性
SSL 配置属性¶
属性名称 |
描述 |
默认值 |
---|---|---|
|
表示服务器证书不会自动信任,SSL 证书验证需要密钥库。 |
|
|
密钥库文件的格式,例如 |
|
|
指定服务器 SSL 证书中预期的 CN(公用名)。 |
|
|
密钥库文件的路径。 |
|
|
密钥库的密码。 |
使用密钥库的连接字符串类似于以下示例
connection-url=jdbc:sqlserver://<host>:<port>;databaseName=<databaseName>;encrypt=true;trustServerCertificate=false;trustStoreType=PEM;hostNameInCertificate=hostname;trustStore=path/to/truststore.pem;trustStorePassword=password
多个 SQL Server 数据库或服务器¶
SQL Server 连接器只能访问配置的数据库中的单个数据库。因此,如果您有多个 SQL Server 数据库,或者想要连接到 SQL Server 的多个实例,则必须为每个实例配置多个目录。
要添加另一个目录,只需将另一个属性文件添加到 etc/catalog
中,并使用不同的名称(确保它以 .properties
结尾)。例如,如果您将属性文件命名为 sales.properties
,Presto 将使用配置的连接器创建一个名为 sales
的目录。
通用配置属性¶
属性名称 |
描述 |
默认值 |
---|---|---|
|
|
|
|
|
|
|
不区分大小写匹配数据集和表名。 |
|
|
远程数据集和表名将缓存的持续时间。设置为 |
|
查询 SQL Server¶
SQL Server 连接器提供对配置数据库中对指定用户可见的所有架构的访问权限。对于以下示例,假设 SQL Server 目录为 sqlserver
。
您可以通过运行 SHOW SCHEMAS
来查看可用的架构。
SHOW SCHEMAS FROM sqlserver;
如果您有一个名为 web
的架构,您可以通过运行 SHOW TABLES
来查看此架构中的表。
SHOW TABLES FROM sqlserver.web;
您可以使用以下两种方法之一,查看 web
数据库中 clicks
表的列列表:
DESCRIBE sqlserver.web.clicks;
SHOW COLUMNS FROM sqlserver.web.clicks;
最后,您可以查询 web
架构中的 clicks
表
SELECT * FROM sqlserver.web.clicks;
如果您为目录属性文件使用了不同的名称,请在以上示例中使用该目录名称代替 sqlserver
。
SQL Server 连接器限制¶
Presto 支持连接到 SQL Server 2016、SQL Server 2014、SQL Server 2012 和 Azure SQL 数据库。
Presto 支持以下 SQL Server 数据类型。下表显示了 SQL Server 和 Presto 数据类型之间的映射。
SQL Server 类型 |
Presto 类型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SQL Server 数据类型 的完整列表。
以下 SQL 语句尚不支持