Partilhar via


Configurar o PolyBase para acessar dados externos no Oracle

Aplica-se a:SQL Server

O artigo explica como usar o PolyBase em uma instância do SQL Server para consultar dados externos no Oracle.

Pré-requisitos

Se ainda não instalaste o PolyBase, consulta instalação do PolyBase.

Antes de criar uma credencial com escopo de banco de dados, uma chave mestra deve ser criada.

Configurar uma fonte de dados externa Oracle

Para consultar os dados de uma fonte de dados Oracle, você deve criar tabelas externas para fazer referência aos dados externos. Esta seção fornece código de exemplo para criar essas tabelas externas.

Os seguintes comandos Transact-SQL são usados nesta seção:

  1. Crie uma credencial com escopo de banco de dados para acessar a origem 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

    O Oracle ODBC Connector for PolyBase suporta apenas autenticação básica, não autenticação Kerberos.

  2. Crie uma fonte de dados externa com 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. Crie uma tabela externa com 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. Opcional: Criar estatísticas em uma tabela externa.

    Recomendamos a criação de estatísticas em colunas de tabelas externas, especialmente aquelas usadas para junções, filtros e agregações, para um desempenho de consulta ideal.

    CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN; 
    

Importante

Depois de criar uma fonte de dados externa, você pode usar o comando CREATE EXTERNAL TABLE para criar uma tabela consultável sobre essa fonte.

Próximos passos

Para obter mais tutoriais sobre como criar fontes de dados externas e tabelas externas para uma variedade de fontes de dados, consulte PolyBase Transact-SQL referência.

Para obter mais informações e exemplos, consulte os seguintes artigos: