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

適用於:SQL Server

從 SQL Server 2019 開始的 PolyBase 可讓您使用 ODBC 連接器連線到 ODBC 相容的資料來源。

此文章示範如何使用 ODBC 資料來源來建立設定連線能力。 提供的指導會使用一個特定的 ODBC 驅動程式作為範例。 如需特定範例,請洽詢您的 ODBC 提供者。 參考您資料來源的 ODBC 驅動程式文件,以判斷適當的連接字串選項。 本文中的範例可能不適用於任何特定 ODBC 驅動程式。

必要條件

注意

這項功能需要 Windows 上的 SQL Server。

  • 您必須為 SQL Server 執行個體安裝並啟用 PolyBase 安裝 PolyBase

  • 在建立資料庫範圍認證之前,必須建立主要金鑰

安裝 ODBC 驅動程式

下載並安裝您要在每個 PolyBase 節點上連線之資料來源的 ODBC 驅動程式。 正確安裝好驅動程式之後,您就可以從 ODBC 資料來源管理員檢視及測試驅動程式。

PolyBase scale-out groups

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

重要

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

在 SQL Server 中建立相依物件

若要使用 ODBC 資料來源,您必須先建立幾個物件,才能完成設定。

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

  1. 建立資料庫範圍認證以存取 ODBC 來源。

    CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
    

    例如,下列範例會建立名為 credential_name 的認證,其具有 username 身分識別和複雜密碼。

    CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
    
  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',
    CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015};
    ServerNode = sap_server_node:5555',
    PUSHDOWN = ON,
    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 (
      LOCATION='<sap_table_name>',
      DATA_SOURCE= [<external_data_source_name>]
      )
      ;
    

    注意

    請注意,您可以使用此外部資料來源,針對所有外部資料表重複使用相依物件。

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

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

    CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN; 
    

後續步驟

若要深入了解 PolyBase,請參閱 SQL Server PolyBase 概觀

如需將外部資料來源和外部資料表建立到各種資料來源的更多教學課程,請參閱 PolyBase Transact-SQL 參考資料 (機器翻譯)。