Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
PolyBase vs. servidores vinculados
A tabela a seguir destaca as diferenças entre o PolyBase e os recursos do servidor vinculado:
| PolyBase | Servidores Vinculados |
|---|---|
| Objeto com escopo de base de dados | Objeto com escopo por instância |
| Usa drivers ODBC | Utiliza fornecedores OLE DB |
| Suporta operações de leitura somente para todas as fontes de dados e operações de escrita em algumas fontes de dados externas | Suporta operações de leitura e gravação |
| As consultas à fonte de dados remota a partir de uma única conexão são escaláveis. | As consultas a uma fonte de dados remota com uma única conexão não podem ser escaladas horizontalmente |
| Filtragem de predicados é suportada | Filtragem de predicados é suportada |
| Nenhuma configuração separada necessária para o grupo de disponibilidade | Configuração separada necessária para cada instância no grupo de disponibilidade |
| Apenas autenticação básica | Autenticação básica e integrada |
| Adequado para consultas analíticas que processam um grande número de linhas | Adequado para consultas OLTP que retornam uma ou poucas linhas |
| Consultas que usam tabelas externas não podem participar numa transação distribuída | Consultas distribuídas têm capacidade de participar em transações distribuídas |
O que há de novo no PolyBase no SQL Server 2022?
O SQL Server 2022 (16.x) suporta ficheiros CSV, Parquet e Delta armazenados no Armazenamento do Azure Account v2, Azure Data Lake Storage Gen2 ou qualquer armazenamento de objetos compatível com S3, utilizando a API REST do S3, local ou na cloud.
O SQL Server 2022 (16.x) suporta CREATE EXTERNAL TABLE AS SELECT (CETAS), juntamente com comandos como OPENROWSET, CREATE EXTERNAL TABLE (CET) e as melhorias do T-SQL.
O SQL Server 2022 (16.x) não suporta fontes de dados externas Hadoop.
SQL Server 2022 (16.x) Atualização cumulativa 2 introduz suporte para ficheiros Oracle TNS. Para mais informações e exemplos, veja CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.
Para mais informações, consulte Virtualização de Dados com PolyBase para SQL Server 2022 e consulte as melhorias do SQL Server 2022 no PolyBase.
O que há de novo no PolyBase no SQL Server 2019?
O PolyBase no SQL Server 2019 (15.x) pode ler dados de múltiplas fontes. Pode armazenar os dados dessas fontes externas como tabelas externas na sua instância do SQL Server. O PolyBase também suporta computação em pushdown para essas fontes de dados externas, excluindo tipos ODBC genéricos.
Fontes de dados compatíveis
- SQL Server
- Oracle
- Teradata
- MongoDB
- Tipos genéricos ODBC compatíveis
SQL Server 2019 (15.x) A atualização cumulativa 19 introduz suporte para ficheiros Oracle TNS. Para mais informações e exemplos, veja CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.
Note
O PolyBase pode ligar-se a fontes de dados externas utilizando drivers ODBC de terceiros. O PolyBase não inclui estes drivers, e podem não funcionar como deveriam. Para obter mais informações, consulte Configurar o PolyBase para acessar dados externos com tipos genéricos ODBC.
O que CONNECTION_OPTIONS posso especificar para a ligação a fontes de dados de terceiros?
Consulte CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS as opções de ligação a fornecedores de dados suportadas para SQL Server, Oracle, Teradata, a API MongoDB para Cosmos DB e fornecedores genéricos de dados ODBC.
Como posso visualizar o plano de execução de consulta remota da computação pushdown do PolyBase?
Pode visualizar o plano de execução de consultas remotas usando métodos diferentes, dependendo da versão do SQL Server. Para mais informações, consulte PolyBase Troubleshooting - Para visualizar o plano de consulta PolyBase.
Como posso verificar se o processamento pushdown do PolyBase está a ocorrer?
Para obter mais informações, consulte Como saber se ocorreu um empurrão para baixo externo.
O PolyBase tem suporte no Banco de Dados SQL do Azure?
Não, mas podes consultar dados em ficheiros no Armazenamento de Blobs do Azure usando a OPENROWSET função, ou usar CREATE EXTERNAL TABLE para ler de um pool SQL serverless no Synapse Analytics. Para obter mais informações, consulte O SQL do Azure pode ler arquivos de armazenamento do Azure Data Lake usando tabelas externas Synapse SQL.
O PolyBase é suportado na Instância Gerenciada SQL do Azure?
A Instância Gerenciada SQL do Azure tem seus próprios recursos de virtualização de dados para o Azure Data Lake Storage (ADLS) e o Armazenamento de Blobs do Azure como fontes de dados. Para obter mais informações, consulte Virtualização de dados com a Instância Gerenciada SQL do Azure.
Que portas devo permitir através do meu firewall para PolyBase?
O próprio PolyBase não requer a abertura de quaisquer portas adicionais, exceto quando utiliza um grupo de expansão horizontal do PolyBase. Sem um grupo de expansão horizontal, o serviço PolyBase não precisa de regras de firewall.
Nos servidores Windows, o PolyBase utiliza as portas que a instância do SQL Server utiliza na secção IPAll das definições TCP/IP no Gestor de Configuração do SQL Server. Para mais informações, consulte Propriedades TCP/IP (separador de Endereços IP). Nos servidores Linux, o PolyBase usa esta network.tcpport definição. Para obter mais informações, consulte Porta TCP.
Para grupos de expansão do PolyBase em vários servidores Windows, consulte as informações de porta na próxima pergunta.
No entanto, deve permitir outras portas para comunicação com as várias fontes de dados externas que a PolyBase utiliza. Consulte a configuração ODBC, a configuração de recursos do Azure ou a documentação específica da fonte de dados. Por exemplo:
| Plataforma de origem | Reference |
|---|---|
| Microsoft SQL Server | Portas usadas pelo SQL Server |
| Hortonworks HDP | Administração do HDFS |
| Cloudera CDH | Portas usadas pelos componentes CDH |
Quais portas são usadas para o grupo de expansão do PolyBase?
Por predefinição, o serviço de movimentação de dados PolyBase estabelece ligação ao nó principal de um grupo de scale-out através de um intervalo de portas TCP entre 16450 e 16460 (tipicamente 16450-1645), bem como à porta 17001. A PolyBase usa estas portas apenas quando configuras um grupo escalonável, por isso permita-as passar pelos firewalls dos servidores. O SQL Server Setup cria automaticamente uma regra de firewall local que permite estas portas quando instala a funcionalidade. Para obter mais informações, consulte Configurar grupos de expansão do PolyBase no Windows.
Note
Os grupos de scale-out do SQL Server PolyBase foram removidos no SQL Server 2022 (16.x).