Compartilhar via


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. A partir do SQL Server 2025 (17.x), esse recurso está disponível no Linux.

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

No SQL Server 2022 (16.x) e nas versões anteriores, esse 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 uma credencial com escopo de banco de dados, você deve criar uma chave mestra.

Instalar o driver ODBC

Siga as instruções de instalação do seu sistema operativo.

O SQL Server 2025 (17.x) usa como padrão o Microsoft ODBC Driver versão 18 para SQL Server, para fontes de dados do PolyBase sqlserver . Esse driver dá suporte ao TDS 8.0 e inclui várias atualizações, recursos e algumas alterações significativas. Para usar o TDS 8.0, você deve usar uma nova opção de criptografia e instalar um certificado confiável em seu servidor.

Para obter mais informações sobre o Microsoft ODBC Driver versão 18 para SQL Server, consulte:

Para obter mais informações sobre o suporte ao SQL Server TDS 8.0, consulte TDS 8.0.

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.

Captura de tela dos grupos de expansão do PolyBase.

No exemplo anterior, o nome do driver é destacado 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 você deve criar alguns objetos para concluir a configuração.

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

  1. 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 de username. Substitua <password> por uma senha complexa.

    CREATE DATABASE SCOPED CREDENTIAL credential_name
        WITH IDENTITY = 'username', SECRET = '<password>';
    
  2. 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 porta 4444
    • Conectando-se com CData ODBC Driver For SAP 2015 – Este é o driver criado em Instalar o driver ODBC
    • No ServerNodesap_server_node porta 5555
    • 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',
        PUSHDOWN = ON,
        CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015};
            ServerNode = sap_server_node:5555',
        CREDENTIAL = credential_name
    );
    

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:

  1. Crie uma ou mais tabelas externas.

    Crie uma tabela externa. Você precisa referenciar a fonte de dados externa criada anteriormente usando o DATA_SOURCE argumento e especificar a tabela de origem como .LOCATION Você não precisa fazer referência a todas as colunas, mas precisa 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 (
        DATA_SOURCE = [<external_data_source_name>],
        LOCATION = '<sap_table_name>'
    );
    

    Observação

    Observe que você pode reutilizar os objetos dependentes para todas as tabelas externas usando essa fonte de dados externa.

  2. 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;