Configurar o PolyBase para acessar dados externos com tipos genéricos ODBC
Aplica-se: SQL Server
O PolyBase a partir do SQL Server 2019 permite que você se conecte a fontes de dados compatíveis com ODBC usando o conector ODBC.
Este artigo demonstra como criar conectividade de configuração usando uma fonte de dados ODBC. As diretrizes fornecidas usam um driver ODBC específico como exemplo. Confira se há exemplos específicos com seu provedor ODBC. Confira a documentação do driver ODBC da sua fonte de dados para determinar as opções de cadeia de conexão apropriadas. Os exemplos neste artigo podem não se aplicar a nenhum driver ODBC específico.
Pré-requisitos
Observação
Este recurso requer o SQL Server no Windows.
É necessário instalar e habilitar o PolyBase para a instalação do PolyBase da sua instância do SQL Server.
Antes de criar um banco de dados de credencial no escopo, uma Chave Mestra deve ser criada.
Instalar o driver ODBC
Baixe e instale o driver ODBC da fonte de dados à qual você deseja se conectar em cada um dos nós do PolyBase. Depois que o driver estiver instalado corretamente, você poderá ver e testar o driver em Administrador da Fonte de Dados ODBC.
No exemplo acima, o nome do driver está circulado em vermelho. Use esse nome quando criar a fonte de dados externa.
Importante
Para aprimorar o desempenho da consulta, habilite o pool de conexões. Isso pode ser feito em Administrador da Fonte de Dados ODBC.
Criar objetos dependentes no SQL Server
Para usar a fonte de dados ODBC, primeiro é necessário criar alguns objetos para concluir a configuração.
Os seguintes comandos Transact-SQL são usados nesta seção:
Crie uma credencial no escopo do banco de dados para acessar a fonte ODBC.
CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
Por exemplo, o exemplo a seguir cria uma credencial chamada
credential_name
, com uma identidade deusername
e uma senha complexa.CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
Crie uma fonte de dados externa, usando CREATE EXTERNAL DATA SOURCE.
CREATE EXTERNAL DATA SOURCE [<external_data_source_name>] WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]', CONNECTION_OPTIONS = 'Driver={<Name of Installed Driver>}; ServerNode = <name of server address>:<Port>', -- PUSHDOWN = [ON] | OFF, CREDENTIAL = [<credential_name>] );
O seguinte exemplo cria uma fonte de dados externa:
- Chamada
external_data_source_name
- Localizada no
SERVERNAME
do ODBC e na porta4444
- Conectando-se com
CData ODBC Driver For SAP 2015
– Este é o driver criado em Instalar o driver ODBC - No
ServerNode
sap_server_node
porta5555
- Configurada para processar a propagação para os níveis interiores do servidor (
PUSHDOWN = ON
) - Usar a credencial
credential_name
CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'odbc://SERVERNAME:4444', CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015}; ServerNode = sap_server_node:5555', PUSHDOWN = ON, CREDENTIAL = credential_name );
- Chamada
Criar uma tabela externa
Depois de criar os objetos dependentes, você poderá criar tabelas externas usando o T-SQL.
Os seguintes comandos Transact-SQL são usados nesta seção:
Crie uma ou mais tabelas externas.
Crie uma tabela externa. Você precisará fazer referência à fonte de dados externa criada acima usando o argumento
DATA_SOURCE
e especificar a tabela de origem comoLOCATION
. Você não tem que fazer referência a todas as colunas, mas precisará garantir que os tipos sejam mapeados corretamente.CREATE EXTERNAL TABLE [<your_table_name>] ( [<col1_name>] DECIMAL(38) NOT NULL, [<col2_name>] DECIMAL(38) NOT NULL, [<col3_name>] CHAR COLLATE Latin1_General_BIN NOT NULL ) WITH ( LOCATION='<sap_table_name>', DATA_SOURCE= [<external_data_source_name>] ) ;
Observação
Observe que você pode usar novamente os objetos dependentes em todas as tabelas externas usando essa fonte de dados externa.
Opcional: criar estatísticas em uma tabela externa.
Para obter desempenho de consulta ideal, é recomendável criar estatísticas em colunas de tabelas externas, especialmente aquelas usadas para junções, filtros e agregações.
CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN;
Próximas etapas
Para saber mais sobre o PolyBase, consulte Visão geral do PolyBase do SQL Server.
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.