共用方式為


設定 PolyBase 以存取具有 ODBC 泛型型別的外部資料

適用於: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 資料來源管理員檢視及測試驅動程式。

PolyBase 向外延展群組的螢幕快照。

在上一個範例中,驅動程式的名稱會以紅色圓圈。 當您建立外部資料來源時,請使用此名稱。

重要

為改善查詢效能,請啟用連接共用。 這可在 ODBC 資料來源管理員中完成。

在 SQL Server 中建立相依物件

若要使用 ODBC 數據源,您必須先建立一些物件來完成設定。

本節中使用下列 Transact-SQL 命令:

  1. 建立資料庫範圍認證以存取 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>';
    
  2. 使用 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 命令:

  1. 建立一或多個外部表格。

    建立外部資料表。 您必須參考先前使用 自變數建立的外部資料來源, 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>'
    );
    

    注意

    請注意,您可以使用這個外部數據源,針對所有外部數據表重複使用相依物件。

  2. 選擇性: 在外部資料表上建立統計資料。

    為了取得最佳查詢效能,我們建議在外部表格資料行上建立統計資料 (尤其是用於聯結、篩選和彙總的資料行)。

    CREATE STATISTICS statistics_name ON contact(FirstName) WITH FULLSCAN;