Configurare PolyBase per l'accesso a dati esterni in Oracle

Si applica a: SQL Server

L'articolo illustra come usare PolyBase in un'istanza di SQL Server per eseguire query sui dati esterni in Oracle.

Prerequisiti

Se PolyBase non è stato installato, vedere Installazione di PolyBase.

Prima di creare credenziali con ambito database, è necessario creare una chiave master.

Configurare un'origine dati Oracle esterna

Per eseguire query sui dati da un'origine dati Oracle, è necessario creare tabelle esterne per fare riferimento ai dati esterni. In questa sezione è disponibile codice di esempio per creare queste tabelle esterne.

In questa sezione vengono usati i comandi Transact-SQL seguenti:

  1. Creare le credenziali con ambito database per l'accesso all'origine 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';
    

    Importante

    Il connettore ODBC Oracle per PolyBase supporta solo l'autenticazione di base e non l'autenticazione Kerberos.

  2. Creare un'origine dati esterna con 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. Crea una tabella esterna con 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. Facoltativo: Creare statistiche per una tabella esterna.

    Per garantire prestazioni ottimali delle query, è consigliabile creare le statistiche sulle colonne delle tabelle esterne, in particolare quelle usate per join, filtri e aggregazioni.

    CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN; 
    

Importante

Dopo aver creato un'origine dati esterna, è possibile usare il comando CREATE EXTERNAL TABLE per creare una tabella disponibile per query su tale origine.

Passaggi successivi

Per altre esercitazioni sulla creazione di origini dati esterne e tabelle esterne in un'ampia gamma di origini dati, vedere le Informazioni di riferimento su Transact-SQL per PolyBase.

Per altre informazioni ed esempi, vedere gli articoli seguenti: