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

適用於:SQL Server

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

Prerequisites

如果您尚未安裝 PolyBase,請參閱 PolyBase 安裝

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

設定 Oracle 外部資料來源

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

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

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

    /*  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 的 Oracle 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 = 'oracle://<server address>[:<port>]',
    -- PUSHDOWN = ON | OFF,
    CREDENTIAL = credential_name)
    
  3. 使用 CREATE EXTERNAL TABLE 來建立外部資料表。

    /*
    * LOCATION: Three-part identifier indicating database & domain or only database, schema, and table name.
    * DATA_SOURCE: The data source created above.
    */
    CREATE EXTERNAL TABLE [T1] (
      [KEY] DECIMAL(38) NOT NULL,
      [RANDOM_INT] DECIMAL(38),
      [RANDOM_FLOAT] FLOAT(53))
    WITH (
      LOCATION = '[ORCLCDB.localdomain].SYS.T1',
      DATA_SOURCE = external_data_source_name)
    
  4. 選擇性: 在外部資料表上建立統計資料。

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

    CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN; 
    

重要

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

後續步驟

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

如需詳細資訊和範例,請參閱下列文章: