Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se: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 você ainda não instalou o PolyBase, veja 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 do Oracle
Para consultar os dados de uma fonte de dados do Oracle, você precisa 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:
- CREATE DATABASE CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Crie uma credencial com escopo específico no 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 Conector ODBC do Oracle para PolyBase dá suporte apenas a autenticação básica, não a autenticação Kerberos.
Criar 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)Criar 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)Opcional: criar estatísticas em uma tabela externa.
É recomendável criar estatísticas em colunas de tabelas externas, especialmente aquelas usadas para junções, filtros e agregações, a fim de ter o 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 CREATE EXTERNAL TABLE comando para criar uma tabela que pode ser consultada sobre essa origem.
Próximas etapas
Para obter mais tutoriais sobre como criar fontes de dados externas e tabelas externas para uma variedade de fontes de dados, consulte Referência do PolyBase Transact-SQL.
Para obter mais informações e exemplos, consulte os seguintes artigos: