Partilhar via


Configurar o PolyBase para acessar dados externos com tipos genéricos ODBC

Aplica-se a: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), esta funcionalidade está disponível no Linux.

Este artigo demonstra como criar a configuração da conectividade usando uma fonte de dados ODBC. As orientações fornecidas usam um driver ODBC específico como exemplo. Consulte seu provedor ODBC para obter exemplos específicos. Consulte a documentação do driver ODBC para 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 versões anteriores, esse recurso requer o SQL Server no Windows.

  • O PolyBase deve ser instalado e habilitado para sua instância do SQL Server instalação do PolyBase.

  • Antes de criar uma credencial com escopo de banco de dados, você deve criar uma chave mestra.

Instale o driver ODBC

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

O SQL Server 2025 (17.x) utiliza por defeito o Microsoft ODBC Driver versão 18 para SQL Server, para fontes de dados PolyBase sqlserver . Este driver suporta 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 no 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. Assim que o driver estiver instalado corretamente, pode visualizar e testar o driver a partir do Administrador de Origem de Dados ODBC .

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

No exemplo anterior, o nome do condutor está rodeado a vermelho. Use esse nome ao criar a fonte de dados externa.

Importante

Para melhorar o desempenho da consulta, habilite o pool de conexões. Isso pode ser feito a partir do Administrador de Origem de Dados ODBC.

Criar objetos dependentes no SQL Server

Para usar a fonte de dados ODBC, você deve primeiro criar alguns objetos para concluir a configuração.

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

  1. Crie uma credencial com escopo de 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 com 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 exemplo a seguir cria uma fonte de dados externa:

    • Nomeado external_data_source_name
    • Localizado no ODBC SERVERNAME e na porta 4444
    • Conectando-se com o CData ODBC Driver For SAP 2015 - Este é o driver criado em Instalar o driver ODBC
    • Na porta ServerNodesap_server_node5555
    • Configurado para processamento delegado ao servidor (PUSHDOWN = ON)
    • Usando 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ê pode criar uma tabela externa usando 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 fazer referência à 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

    Observação 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 um desempenho de consulta ideal, recomendamos a criação de 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;