適用於:SQL Server
從 SQL Server 2019 開始的 PolyBase 可讓您使用 ODBC 連接器連線到 ODBC 相容的資料來源。 從 SQL Server 2025 (17.x) 預覽版開始,此功能可在 Linux 上使用。
此文章示範如何使用 ODBC 資料來源來建立設定連線能力。 提供的指導會使用一個特定的 ODBC 驅動程式作為範例。 如需特定範例,請洽詢您的 ODBC 提供者。 參考您資料來源的 ODBC 驅動程式文件,以判斷適當的連接字串選項。 本文中的範例可能不適用於任何特定的 ODBC 驅動程式。
必要條件
注意
在 SQL Server 2022 (16.x) 和舊版中,此功能需要 Windows 上的 SQL Server。
您必須為 SQL Server 執行個體安裝並啟用 PolyBase 安裝 PolyBase。
建立資料庫範圍認證之前,您必須建立 主要密鑰。
安裝 ODBC 驅動程式
請遵循您的操作系統的安裝指引。
SQL Server 2025(17.x)預覽版預設使用適用於 SQL Server 的 Microsoft ODBC 驅動程式第 18 版,用於 PolyBase sqlserver
數據源。 此驅動程序支援 TDS 8.0,並包含各種更新、功能和一些重大變更。 若要使用 TDS 8.0,您必須使用新的加密選項,並在伺服器上安裝受信任的憑證。
如需 SQL Server Microsoft ODBC Driver 18 版的詳細資訊,請參閱:
如需 SQL Server TDS 8.0 支援的詳細資訊,請參閱 TDS 8.0。
下載並安裝您要在每個 PolyBase 節點上連線之資料來源的 ODBC 驅動程式。 正確安裝好驅動程式之後,您就可以從 ODBC 資料來源管理員檢視及測試驅動程式。
在上一個範例中,驅動程式的名稱會以紅色圓圈。 當您建立外部資料來源時,請使用此名稱。
重要
為改善查詢效能,請啟用連接共用。 這可在 ODBC 資料來源管理員中完成。
在 SQL Server 中建立相依物件
若要使用 ODBC 數據源,您必須先建立一些物件來完成設定。
本節中使用下列 Transact-SQL 命令:
建立資料庫範圍認證以存取 ODBC 來源。
CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', SECRET = '<password>';
例如,下列範例會建立名為
credential_name
的認證,其身分識別為username
。 請將<password>
取代為複雜密碼。CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', SECRET = '<password>';
使用 CREATE EXTERNAL DATA SOURCE 建立外部資料來源。
CREATE EXTERNAL DATA SOURCE [<external_data_source_name>] WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]', CONNECTION_OPTIONS = 'Driver={<Name of installed driver>}; ServerNode = <name of server address>:<Port>', -- PUSHDOWN = [ON] | OFF, CREDENTIAL = [<credential_name>] );
下列範例會建立外部資料來源:
- 名為
external_data_source_name
- 位於 ODBC
SERVERNAME
和連接埠4444
- 與
CData ODBC Driver For SAP 2015
連接 - 這是依據安裝 ODBC 驅動程式創建的驅動程式 - 位於
ServerNode
sap_server_node
連接埠5555
- 配置將處理程序推送至伺服器 (
PUSHDOWN = ON
) - 使用
credential_name
認證
CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'odbc://SERVERNAME:4444', PUSHDOWN = ON, CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015}; ServerNode = sap_server_node:5555', CREDENTIAL = credential_name );
- 名為
建立外部表格
建立相依物件之後,您就能使用 T-SQL 來建立外部表格。
本節中使用下列 Transact-SQL 命令:
建立一或多個外部表格。
建立外部資料表。 您必須參考先前使用 自變數建立的外部資料來源,
DATA_SOURCE
並將源數據表指定為LOCATION
。 您不需要參照所有欄位,但需要確保類型已正確映射。CREATE EXTERNAL TABLE [<your_table_name>] ( [<col1_name>] DECIMAL (38) NOT NULL, [<col2_name>] DECIMAL (38) NOT NULL, [<col3_name>] CHAR COLLATE Latin1_General_BIN NOT NULL ) WITH ( DATA_SOURCE = [<external_data_source_name>], LOCATION = '<sap_table_name>' );
注意
請注意,您可以使用這個外部數據源,針對所有外部數據表重複使用相依物件。
選擇性: 在外部資料表上建立統計資料。
為了取得最佳查詢效能,我們建議在外部表格資料行上建立統計資料 (尤其是用於聯結、篩選和彙總的資料行)。
CREATE STATISTICS statistics_name ON contact(FirstName) WITH FULLSCAN;