Partilhar via


Configurar o PolyBase para acessar dados externos no SQL Server

Aplica-se a:SQL Server

Este artigo explica como usar o PolyBase em uma instância do SQL Server para consultar dados externos em outra instância do SQL Server.

Pré-requisitos

Se ainda não instalaste o PolyBase, consulta a instalação do PolyBase em . O artigo de instalação explica os pré-requisitos. Uma vez instalado, certifique-se também de ativar PolyBase.

A fonte de dados externa do SQL Server usa a Autenticação SQL.

Antes de criar uma credencial com escopo de banco de dados, uma Chave Mestra deve ser criada.

Configurar uma fonte de dados externa do SQL Server

Para consultar os dados de uma fonte de dados do SQL Server, 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.

Para um desempenho de consulta ideal, crie estatísticas em colunas de tabelas externas, especialmente para aquelas usadas para junções, filtros e agregações.

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 do SQL Server. O exemplo a seguir cria uma credencial para a fonte de dados externa com IDENTITY = 'username' e SECRET = 'password'.

    CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials
    WITH IDENTITY = 'username', SECRET = 'password';
    

    Importante

    O SQL ODBC Connector for PolyBase oferece suporte apenas à autenticação básica, não à autenticação Kerberos.

  2. Crie uma fonte de dados externa com CREATE EXTERNAL DATA SOURCE. O exemplo a seguir:

    • Cria uma fonte de dados externa chamada SQLServerInstance.
    • Identifica a fonte de dados externa (LOCATION = '<vendor>://<server>[:<port>]'). No exemplo, ele aponta para uma instância padrão do SQL Server.
    • Identifica se a computação deve ser enviada para a fonte (PUSHDOWN). PUSHDOWN é ON por padrão.

    Finalmente, o exemplo usa a credencial criada anteriormente.

    CREATE EXTERNAL DATA SOURCE SQLServerInstance
        WITH ( LOCATION = 'sqlserver://SqlServer',
        PUSHDOWN = ON,
        CREDENTIAL = SQLServerCredentials);
    
  3. Crie a tabela externa com CREATE EXTERNAL TABLE. A instrução requer ordenação e o local requer notação em três partes (<database>.<schema>.<table>).

    CREATE EXTERNAL TABLE DatabasesExternal (
        name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS)
      WITH (LOCATION = 'master.sys.databases',
      DATA_SOURCE = SQLServerInstance);
    
  4. Opcionalmente, crie estatísticas em uma tabela externa.

Para um desempenho de consulta ideal, crie estatísticas em colunas de tabelas externas, especialmente as usadas para filtros de junções e agregações.

  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.

Tipos compatíveis com o conector do SQL Server

Você também pode utilizar o conector do SQL Server (sqlserver://) para acessar o Banco de Dados SQL do Azure. Para realizar essa tarefa, siga as mesmas etapas listadas anteriormente. Certifique-se de que a credencial limitada ao âmbito do banco de dados, o endereço do servidor, a porta e a cadeia de localização estejam correlacionados com a fonte de dados do Banco de Dados SQL do Azure à qual pretende ligar-se.

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 saber mais sobre o PolyBase, consulte Visão geral do SQL Server PolyBase.