Virtualização de dados com o PolyBase no SQL Server

Aplica-se a: SQL Server Not supported. Banco de Dados SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System)

O PolyBase é um recurso de virtualização de dados para o SQL Server.

O que é o PolyBase?

O PolyBase permite que sua instância do SQL Server consulte dados com T-SQL diretamente do SQL Server, do Oracle, do Teradata, do MongoDB, de clusters do Hadoop, do Cosmos DB e do armazenamento de objetos compatível com o S3 sem instalar separadamente o software de conexão do cliente. Você também pode usar o conector ODBC genérico para se conectar a provedores adicionais usando drivers ODBC de terceiros. O PolyBase permite que as consultas T-SQL ingressem os dados de fontes externas em tabelas relacionais em uma instância do SQL Server.

Um caso de uso importante para a virtualização de dados com o recurso PolyBase é permitir que os dados permaneçam em seu local e formato originais. É possível virtualizar os dados em uma instância do SQL Server para que ela possa ser consultada no local como qualquer outra tabela no SQL Server. Este processo minimiza a necessidade de processos de ETL para movimentação de dados. Este cenário de virtualização de dados é possível com o uso de conectores do PolyBase.

Produtos e serviços SQL compatíveis

O PolyBase fornece essas mesmas funcionalidades para os seguintes produtos SQL da Microsoft:

  • SQL Server 2016 (13.x) e versões posteriores (Windows)
  • SQL Server 2019 (15.x) e versões posteriores (Windows e Linux)
  • SQL Server Analytics Platform System (PDW)
  • Azure Synapse Analytics (para pools de SQL dedicadas)
    • A virtualização de dados no Azure Synapse Analytics está disponível em dois modos, PolyBase e nativo. Para obter mais informações, confira Usar tabelas externas com Synapse SQL.

Observação

A virtualização de dados também está disponível para a Instância Gerenciada de SQL do Azure, com escopo para consultar dados externos armazenados em arquivos no Azure Data Lake Storage (ADLS) Gen2 e no Armazenamento de Blobs do Azure. Acesse Virtualização de dados com a Instância Gerenciada de SQL do Azure para saber mais.

Aprimoramentos do PolyBase no SQL Server 2022

Novidades no SQL Server 2022 (16.x) Detalhes
Armazenamento de objetos compatível com o S3 O SQL Server 2022 (16.x) adiciona um novo conector, armazenamento de objetos compatível com o S3, usando a API REST do S3. Você pode usar OPENROWSET e CREATE EXTERNAL TABLE para consultar arquivos de dados no armazenamento de objetos compatível com S3.
Alguns conectores são separados dos serviços do PolyBase O conector de armazenamento de objetos compatível com o S3, bem como o ADSL Gen2 e o Armazenamento de Blobs do Azure, não são mais dependentes dos serviços do PolyBase. Os serviços do PolyBase ainda devem ser executados para dar suporte à conectividade com Oracle, Teradata, MongoDB e ODBC Genérico. O recurso PolyBase ainda precisa ser instalado em sua instância do SQL Server.
Formato de arquivo Parquet O PolyBase agora é capaz de consultar dados de arquivos Parquet armazenados no armazenamento de objetos compatível com o S3. Para obter mais informações, confira Virtualizar o arquivo Parquet em um armazenamento de objetos compatível com o S3 usando o PolyBase.
Formato de tabela delta O PolyBase agora é capaz de consultar dados (somente leitura) do formato de tabela delta armazenados no armazenamento de objetos compatível com o S3, no Azure Storage Account V2 e no Azure Data Lake Storage Gen2. Para obter mais informações, confira Virtualizar o formato de tabela delta
Criar tabela externa como SELECT (CETAS) O PolyBase agora pode usar o CETAS para criar uma tabela externa e, em seguida, exportar, em paralelo, o resultado de uma instrução Transact-SQL SELECT para o Azure Data Lake Storage Gen2, o Azure Storage Account V2 e o armazenamento de objetos compatível com o S3. Para obter mais informações, confira CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).

Para mais informações sobre os novos recursos do SQL Server 2022 (16.x), consulte Novidades no SQL Server 2022?

Dica

Para obter um tutorial dos recursos e capacidades do PolyBase no SQL Server 2022 (16.x), consulte Introdução ao PolyBase no SQL Server 2022.

Conectores do PolyBase

O recurso PolyBase fornece conectividade com as seguintes fontes de dados externas:

Fontes de dados externas SQL Server 2016–2019 com PolyBase SQL Server 2022 (16.x) com PolyBase APS PDW Azure Synapse Analytics
Oracle, MongoDB, Teradata Ler Ler Não Não
ODBC Genérico Leitura (apenas Windows) Leitura (apenas Windows) Não Não
Azure Storage Leitura/Gravação Ler/gravar Ler/gravar Leitura/Gravação
O Hadoop Leitura/Gravação Não Leitura/Gravação Não
SQL Server Ler Ler Não Não
Armazenamento de objetos compatível com o S3 Não Leitura/Gravação Não Não
  • O SQL Server 2022 (16.x) não é compatível com o Hadoop.
  • O SQL Server 2016 (13.x) introduziu o PolyBase com compatibilidade com conexões com o Hadoop e o Armazenamento de Blobs do Azure.
  • O SQL Server 2019 (15.x) introduziu conectores adicionais, incluindo o SQL Server, Oracle, Teradata e MongoDB.
  • O SQL Server 2022 (16.x) introduziu o conector do armazenamento compatível com o S3.
  • A atualização cumulativa 19 do SQL Server 2019 (15.x) introduziu compatibilidade com o TNS do Oracle.
  • A atualização cumulativa 2 do SQL Server 2022 (16.x) introduziu compatibilidade com o TNS do Oracle.

Entre os exemplos de conectores externos estão:

* O PolyBase dá suporte a dois fornecedores Hadoop, HDP (Hortonworks Data Platform) e CDH (Cloudera Distributed Hadoop), por meio do SQL Server 2019. O suporte do SQL Server a fontes de dados externas do HDFS Cloudera (CDP) e do Hortonworks (HDP) será desativado e não será incluído no SQL Server 2022 (16.x). Para obter mais informações, confira Opções de Big Data na plataforma Microsoft SQL Server.

Para usar o PolyBase em uma instância do SQL Server:

  1. Instale o PolyBase no Windows ou Instale o PolyBase no Linux.
  2. Começando com o SQL Server 2019 (15.x), habilite o PolyBase em sp_configure, se necessário.
  3. Crie uma fonte de dados externa.
  4. Crie uma tabela externa.

Integração do Azure

Com a Ajuda subjacente do PolyBase, consultas T-SQL também podem importar e exportar dados do Armazenamento de Blobs do Azure. Além disso, o PolyBase permite que o Azure Synapse Analytics importe e exporte dados do Armazenamento de Blobs do Azure e do Azure Data Lake Store.

Por que usar o PolyBase?

O PolyBase permite que você una dados de uma instância do SQL Server com os dados externos. Antes de o PolyBase unir os dados com fontes de dados externas, você pode:

  • Transferir metade dos dados para que todos os dados estejam em uma só localização.
  • Consultar ambas as fontes de dados, então escrever lógica de consulta personalizada para ingressar e integrar os dados no nível do cliente.

O PolyBase permite que você simplesmente use o Transact-SQL para unir os dados.

O PolyBase não exige a instalação de software adicional no ambiente do Hadoop. Você pode consultar dados externos usando a mesma sintaxe do T-SQL usada para consultar uma tabela de banco de dados. As ações de suporte implementadas pelo PolyBase todos ocorrem de maneira transparente. O autor da consulta não precisa ter nenhum conhecimento sobre a fonte externa.

Usos do PolyBase

O PolyBase habilita os seguintes cenários no SQL Server:

  • Consulte os dados armazenados no Armazenamento de Blobs do Azure. O Armazenamento de Blobs do Azure é um lugar conveniente para armazenar dados para uso dos serviços do Azure. O PolyBase facilita o acesso aos dados com T-SQL.

  • Consultar os dados armazenados no Hadoop por meio de uma instância do SQL Server ou do PDW. Os usuários estão armazenando dados em sistemas escalonáveis e distribuídos mais econômicos, como o Hadoop. O PolyBase facilita a consulta dos dados com T-SQL.

  • Importe dados do Hadoop, do Armazenamento de Blobs do Azure ou do Azure Data Lake Store. Aproveite a velocidade das funcionalidades de análise e tecnologia de columnstore do Microsoft SQL, com a importação de dados do Hadoop, do Armazenamento de Blobs do Azure ou do Azure Data Lake Store em tabelas relacionais. Não é necessário ter uma ferramenta separada de ETL ou importação.

  • Exporte dados para o Hadoop, o Armazenamento de Blobs do Azure ou o Azure Data Lake Store. Arquive dados no Hadoop, no Armazenamento de Blobs do Azure ou no Azure Data Lake Store para obter um armazenamento econômico e mantê-los online para fácil acesso.

  • Integre com ferramentas de BI. Use o PolyBase com a business intelligence e a pilha de análise da Microsoft ou use as ferramentas de terceiros que são compatíveis com o SQL Server.

Desempenho

Não há um limite fixo para o número de arquivos ou a quantidade de dados que podem ser consultados. O desempenho da consulta depende da quantidade de dados, do formato dos dados, da maneira como os dados estão organizados e da complexidade das consultas e uniões.

Para obter mais informações sobre diretrizes e recomendações de desempenho para o PolyBase, consulte Considerações sobre desempenho no PolyBase para SQL Server.

Atualizar para o SQL Server 2022

A partir do SQL Server 2022 (16.x), o Hortonworks Data Platform (HDP) e o Cloudera Distributed Hadoop (CDH) não são mais compatíveis. Devido a essas alterações, é necessário descartar manualmente as fontes de dados externas do PolyBase criadas em versões anteriores do SQL Server que usam TYPE = HADOOP ou o Azure Storage antes de migrar para o SQL Server 2022 (16.x). O descarte de fontes de dados externas também requer o descarte dos objetos de banco de dados associados, como credenciais com escopo de banco de dados e tabelas externas.

Os conectores do Azure Storage devem ser alterados com base na tabela de referência abaixo:

Fonte de dados externa De Para
Armazenamento do Blobs do Azure wasb[s] abs
ADLS Gen 2 abfs[s] adls

Introdução

Antes de usar o PolyBase, você deverá instalar o PolyBase no Windows ou instalar o PolyBase no Linux e habilitar o PolyBase no sp_configure, se necessário.

Para obter um tutorial dos recursos e capacidades do PolyBase, consulte Introdução ao PolyBase no SQL Server 2022.

Para obter mais tutoriais sobre várias fontes de dados externas, consulte:

Virtualização de dados em outras plataformas

Recursos de virtualização de dados também estão disponíveis em outras plataformas: