共用方式為


設定 PolyBase 存取 Teradata 中的外部資料

適用於:SQL Server

本文說明如何在 SQL Server 執行個體上使用 PolyBase 查詢位於 Teradata 中的外部資料。

Prerequisites

如果您尚未安裝 PolyBase,請參閱 PolyBase 安裝。 安裝文章說明必要條件。

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

若要在 Teradata 上使用 PolyBase,需具備 VC++ 可轉散發套件。

設定 Teradata 外部資料來源

若要查詢來自 Teradata 資料來源的資料,您必須建立外部表格參考外部資料。 本節提供建立這些外部資料表的範例程式碼。

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

  1. 建立資料庫限定範圍的認證以存取 Teradata 來源。

    /*  specify credentials to external data source
    *  IDENTITY: user name for external source. 
    *  SECRET: password for external source.
    */
    CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'password';
    

    重要

    適用於 PolyBase 的 Teradata ODBC 連接器僅支援基本驗證,不支援 Kerberos 驗證。

  2. 使用 CREATE EXTERNAL DATA SOURCE 建立外部資料來源。

    /*  LOCATION: Location string should be of format '<vendor>://<server>[:<port>]'.
    * PUSHDOWN: specify whether computation should be pushed down to the source. ON by default.
    * CONNECTION_OPTIONS: Specify driver location
    * CREDENTIAL: the database scoped credential, created above.
    */  
    CREATE EXTERNAL DATA SOURCE external_data_source_name
    WITH (LOCATION = teradata://<server address>[:<port>],
    -- PUSHDOWN = ON | OFF,
    CREDENTIAL = credential_name);
    
  3. 使用 CREATE EXTERNAL TABLE 來建立外部資料表。

    /*
    * LOCATION: Two-part identifier indicating the database and the table name.
    * DATA_SOURCE: Data source created above.
    */
    CREATE EXTERNAL TABLE [TableC] (
      [MyKey] INT NOT NULL,
      [RandomInt] INT NOT NULL,
      [RandomFloat] DECIMAL(13, 2) NOT NULL)
    WITH (
      LOCATION = 'TD_SERVER_DB.TableC',
      DATA_SOURCE = external_data_source_name)
    
  4. 選擇性: 在外部資料表上建立統計資料。

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

    CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN; 
    

重要

當您建立外部資料來源之後,可以使用 CREATE EXTERNAL TABLE 命令透過該來源建立可查詢的資料表。

後續步驟

如需將外部資料來源和外部資料表建立到各種資料來源的其他教學課程,請參閱 PolyBase Transact-SQL 參考

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