Konfigurera PolyBase för åtkomst till externa data i Oracle

gäller för:SQL Server

Artikeln beskriver hur du använder PolyBase på en SQL Server-instans för att fråga externa data i Oracle.

Förutsättningar

Om du inte har installerat PolyBase, se PolyBase-installation.

Innan du skapar en databasomfångad autentiseringsuppgift måste en huvudnyckel skapas.

Konfigurera en extern Oracle-datakälla

Om du vill köra frågor mot data från en Oracle-datakälla måste du skapa externa tabeller för att referera till externa data. Det här avsnittet innehåller exempelkod för att skapa dessa externa tabeller.

Följande Transact-SQL kommandon används i det här avsnittet:

  1. Skapa en databasomfattande autentiseringsuppgift för åtkomst till Oracle-källan.

    /*  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';
    

    Viktig

    Oracle ODBC Connector för PolyBase stöder endast grundläggande autentisering, inte Kerberos-autentisering.

  2. Skapa en extern datakälla med 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. Skapa en extern tabell med 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. Valfritt: Skapa statistik i en extern tabell.

    Vi rekommenderar att du skapar statistik för externa tabellkolumner, särskilt de som används för kopplingar, filter och aggregeringar, för optimal frågeprestanda.

    CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN; 
    

Viktig

När du har skapat en extern datakälla kan du använda CREATE EXTERNAL TABLE kommandot för att skapa en frågebar tabell över den källan.