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 資料庫,或想要連線到 SQL Server 的多個執行個體,您必須設定多個目錄,每個執行個體一個目錄。
若要新增另一個目錄,只需將另一個屬性檔案新增到 etc/catalog
,並使用不同的名稱(請確保它以 .properties
結尾)。例如,如果您將屬性檔案命名為 sales.properties
,Presto 會使用設定的連接器建立名為 sales
的目錄。
一般組態屬性¶
屬性名稱 |
描述 |
預設值 |
---|---|---|
|
其值為 JDBC 驅動程式使用者名稱的 |
|
|
其值為 JDBC 驅動程式使用者密碼的 |
|
|
不區分大小寫地比對資料集和資料表名稱。 |
|
|
將快取遠端資料集和資料表名稱的持續時間。設定為 |
|
查詢 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 Database。
Presto 支援下列 SQL Server 資料類型。下表顯示 SQL Server 和 Presto 資料類型之間的對應。
SQL Server 類型 |
Presto 類型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
完整的 SQL Server 資料類型清單。
目前不支援下列 SQL 陳述式