適用於: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)預設使用 Microsoft ODBC 驅動程式版本 18,適用於 PolyBase sqlserver 資料來源的 SQL Server。 此驅動程序支援 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 驅動程式創建的驅動程式 - 位於
ServerNodesap_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;