Virtualização de dados com o PolyBase no SQL Server
Aplica-se a: SQL Server 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:
- SQL Server
- Oracle
- Teradata
- MongoDB
- Hadoop*
- Armazenamento de objetos compatível com o S3
- CSV no Armazenamento de Blobs do Azure
* 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:
- Instale o PolyBase no Windows ou Instale o PolyBase no Linux.
- Começando com o SQL Server 2019 (15.x), habilite o PolyBase em sp_configure, se necessário.
- Crie uma fonte de dados externa.
- 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:
- Hadoop
- Armazenamento de Blobs do Azure
- SQL Server
- Oracle
- Teradata
- MongoDB
- Tipos genéricos de ODBC
- Armazenamento de objetos compatível com o S3
- CSV
- Tabela Delta
Virtualização de dados em outras plataformas
Recursos de virtualização de dados também estão disponíveis em outras plataformas:
- Usar tabelas externas com Synapse SQL
- Virtualização de dados com a Instância Gerenciada de SQL do Azure