Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
A virtualização de dados permite-lhe executar consultas Transact-SQL (T-SQL) sobre dados externos sem os carregar na sua base de dados. Defines uma fonte de dados externa, um formato de ficheiro opcional e uma tabela externa, e depois consultas a tabela externa como SELECT qualquer outra tabela.
Este guia ajuda-o a:
- Compreenda quais recursos PolyBase são suportados pela sua plataforma e versão de SQL.
- Escolha entre
OPENROWSET, tabelas externas, eBULK INSERTpara consultar ou ingerir dados. - Siga os links passo a passo para cenários comuns.
- Revise desempenho, resolução de problemas e boas práticas para cargas de trabalho em produção.
Suporte da plataforma
- PolyBase é uma funcionalidade do Microsoft SQL Database Engine que implementa virtualização de dados.
- O PolyBase é suportado no SQL Server 2016 e versões posteriores para Windows e no SQL Server 2019 e versões posteriores para Linux.
- O PolyBase não é suportado no SQL Server 2017 no Linux.
- O PolyBase não é suportado no Base de Dados SQL do Azure, mas o Base de Dados SQL do Azure oferece capacidades de virtualização de dados relacionadas através
OPENROWSETde tabelas externas. Para obter mais informações, consulte Virtualização de dados com o Banco de Dados SQL do Azure (Visualização). - O PolyBase não é uma funcionalidade no Azure SQL Managed Instance pelo nome, mas o Azure SQL Managed Instance tem funcionalidades de virtualização de dados que funcionam de forma semelhante. Para obter mais informações, consulte Virtualização de dados com a Instância Gerenciada SQL do Azure.
- O PolyBase não é suportado na base de dados SQL no Fabric, mas a base de dados SQL no Fabric fornece as suas próprias capacidades de virtualização de dados para dados no OneLake. Para mais informações, consulte virtualização de dados em base de dados SQL no Fabric.
- O PolyBase não é uma funcionalidade do Fabric Data Warehouse. Para virtualização de dados em Fabric Data Warehouse, considere Fabric Atalhos OneLake. Para artigos sobre carregamento de dados em Fabric Data Warehouse, veja Ingestão de dados com T-SQL e Modelação dimensional: Tabelas de carga.
Casos comuns de utilização
A tabela seguinte descreve possíveis cenários de utilização.
| Scenario | Utilização |
|---|---|
| Exploração ad-hoc de ficheiros | OPENROWSET(BULK ...) |
| Consulta de ficheiros reutilizáveis para BI ou relatórios | Tabelas externas sobre ficheiros |
| Consulta entre bases de dados (SQL Server, Oracle, Teradata, MongoDB, ODBC) | Conectores PolyBase com tabelas externas |
| Exportação dos resultados das consultas para ficheiros |
CREATE EXTERNAL TABLE AS SELECT (CETAS) |
| Ingestão em massa nas mesas |
BULK INSERT ou OPENROWSET(BULK ...) com INSERT ... SELECT |
- Para exploração ad hoc de ficheiros, use
OPENROWSET(BULK ...)para inspecionar ficheiros sem criar uma tabela reutilizável. - Para consultas de ficheiros reutilizáveis em BI ou cenários de relatórios, use tabelas externas em vez de ficheiros para persistir um esquema e partilhar resultados entre consultas.
- Para consultas entre bases de dados, utilize conectores PolyBase com tabelas externas para aceder a fontes do SQL Server, Oracle, Teradata, MongoDB ou ODBC.
- Para exportar resultados de consulta para ficheiros, use
CREATE EXTERNAL TABLE AS SELECT(CETAS) para escrever saídas Parquet ou CSV fora da base de dados. - Para a ingestão em massa em tabelas, use
BULK INSERTouOPENROWSET(BULK ...)comINSERT ... SELECTpara carregar dados de ficheiros em tabelas de base de dados.
Que funcionalidades estão disponíveis onde?
A tabela seguinte mostra quais as funcionalidades principais do PolyBase e virtualização de dados disponíveis em cada plataforma SQL a partir do SQL Server 2019. Para a disponibilidade de funcionalidades no SQL Server 2016 e no SQL Server 2017 no Windows, consulte funcionalidades e limitações do PolyBase. Use esta tabela para determinar o que pode fazer na sua plataforma antes de usar os guias detalhados.
| Feature | SQL Server 2019 | SQL Server 2022 | SQL Server 2025 | Base de Dados SQL do Azure | Azure SQL Managed Instance | Banco de dados SQL no Microsoft Fabric |
|---|---|---|---|---|---|---|
| Tabelas externas | Sim | Sim | Sim | Sim | Sim | Sim |
| OPENROWSET (BULK) | Sim 1 | Sim | Sim | Sim | Sim | Sim |
| CETAS (exportação) | No | Sim | Sim | No | Sim | No |
| CSV / ficheiros delimitados | Sim2 | Sim | Sim | Sim | Sim | Sim |
| Ficheiros Parquet | No | Sim | Sim | Sim | Sim | Sim |
| Tabelas do Delta Lake | No | Sim | Sim | No | No | No |
| Liga-te a outro SQL Server | Sim | Sim | Sim | No | No | No |
| Liga-te ao Base de Dados SQL do Azure ou Azure SQL Managed Instance | Sim 3 | Sim 3 | Sim 3 | No | No | No |
| Liga-te à Oracle / Teradata / MongoDB | Sim | Sim | Sim | No | No | No |
| Conectar-se ao Armazenamento de Blobs do Azure | Sim | Sim | Sim | Sim | Sim | No |
| Liga-te à ADLS Gen2 | Sim 5 | Sim | Sim | Sim | Sim | No |
| Liga-te a armazenamento compatível com S3 | No | Sim | Sim | No | No | No |
| Ligar-se ao OneLake (Fabric) | No | No | No | No | No | Sim |
| Cálculo por empurramento | Sim | Sim | Sim | No | No | No |
| Autenticação de Identidade Gerida | No | No | Sim 4 | Sim | Sim | No |
1 O SQL Server 2019 (15.x) suporta OPENROWSET(BULK...) caminhos de ficheiros locais e de rede. No SQL Server 2022 (16.x) e versões posteriores, OPENROWSET(BULK...) também suporta a leitura a partir de armazenamento na nuvem com FORMAT = 'PARQUET', FORMAT = DELTA, e FORMAT = 'CSV'.
Suporte a CSV 2 no SQL Server 2019 (15.x) requeria Hadoop. No SQL Server 2022 (16.x) e versões posteriores, o CSV é suportado nativamente sem Hadoop.
3 Utiliza o conector SQL Server (sqlserver://). A credencial com âmbito de base de dados tem como alvo o endpoint SQL. Use os mesmos passos que para ligar a outra instância do SQL Server.
4 A autenticação por Identidade Gerida é suportada para ligação ao Armazenamento de Blobs do Azure (ABS) e ADLS Gen2. Requer SQL Server habilitado com Azure Arc ou SQL Server numa VM Azure para SQL Server local. Está disponível nativamente no Base de Dados SQL do Azure e no Azure SQL Managed Instance.
5 versões do SQL Server 2019 CU11 e posteriores suportam o Azure Data Lake Storage Gen2 com o abfs prefixo ou.abfss No SQL Server 2022 e versões posteriores, use o adls prefixo.
- Tabelas externas são suportadas no SQL Server 2019, SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Microsoft Fabric.
-
OPENROWSET (BULK)é suportado no SQL Server 2019, SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Microsoft Fabric. O SQL Server 2019 suporta caminhos de ficheiros locais e de rede, enquanto o SQL Server 2022 e versões posteriores também suportam a leitura de armazenamento na nuvem comFORMAT = 'PARQUET',FORMAT = DELTA, eFORMAT = 'CSV'. - A exportação CETAS não é suportada no SQL Server 2019, Base de Dados SQL do Azure ou SQL Database no Microsoft Fabric. A exportação CETAS é suportada no SQL Server 2022, SQL Server 2025 e Azure SQL Managed Instance.
- Ficheiros CSV e delimitados são suportados no SQL Server 2019, SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Microsoft Fabric. O SQL Server 2019 requer Hadoop para suporte a CSV, enquanto o SQL Server 2022 e versões posteriores suportam CSV nativamente sem Hadoop.
- Os ficheiros Parquet não são suportados no SQL Server 2019. Os ficheiros Parquet são suportados no SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Microsoft Fabric.
- As tabelas Delta Lake não são suportadas no SQL Server 2019, Base de Dados SQL do Azure, Azure SQL Managed Instance ou SQL Database no Microsoft Fabric. As tabelas Delta Lake são suportadas no SQL Server 2022 e no SQL Server 2025.
- A ligação a outra instância do SQL Server é suportada no SQL Server 2019, SQL Server 2022 e SQL Server 2025. A ligação a outra instância do SQL Server não é suportada pelo Base de Dados SQL do Azure, Azure SQL Managed Instance ou base de dados SQL no Microsoft Fabric.
- A ligação ao Base de Dados SQL do Azure ou ao Azure SQL Managed Instance é suportada a partir do SQL Server 2019, SQL Server 2022 e SQL Server 2025, utilizando o conector SQL Server. A credencial com âmbito de base de dados visa o endpoint Base de Dados SQL do Azure ou Azure SQL Managed Instance, e os passos de configuração são os mesmos que para ligar a outra instância do SQL Server. Estas ligações não são suportadas pelo Base de Dados SQL do Azure, Azure SQL Managed Instance ou base de dados SQL no Microsoft Fabric.
- A ligação ao Oracle, Teradata ou MongoDB é suportada a partir do SQL Server 2019, SQL Server 2022 e SQL Server 2025. Estas ligações não são suportadas pelo Base de Dados SQL do Azure, Azure SQL Managed Instance ou base de dados SQL no Microsoft Fabric.
- A ligação ao Armazenamento de Blobs do Azure é suportada pelo SQL Server 2019, SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure e Azure SQL Managed Instance. A ligação ao Armazenamento de Blobs do Azure não é suportada a partir da base de dados SQL no Microsoft Fabric.
- A ligação ao ADLS Gen2 não é suportada nas versões do SQL Server 2019 anteriores ao CU11 nem a partir da base de dados SQL no Microsoft Fabric. A ligação ao ADLS Gen2 é suportada a partir do SQL Server 2019 CU11, e no SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure e Azure SQL Managed Instance.
- A ligação a armazenamento compatível com S3 não é suportada pelo SQL Server 2019, Base de Dados SQL do Azure, Azure SQL Managed Instance ou base de dados SQL no Microsoft Fabric. A ligação ao armazenamento compatível com S3 é suportada a partir do SQL Server 2022 e do SQL Server 2025.
- A ligação ao OneLake é suportada a partir da base de dados SQL no Microsoft Fabric. A ligação ao OneLake não é suportada no SQL Server 2019, SQL Server 2022, SQL Server 2025, Base de Dados SQL do Azure ou Azure SQL Managed Instance.
- A computação pushdown é suportada no SQL Server 2019, SQL Server 2022 e SQL Server 2025. A computação pushdown não é suportada no Base de Dados SQL do Azure, Azure SQL Managed Instance ou SQL Database no Microsoft Fabric.
- A autenticação de Identidade Gerida não é suportada no SQL Server 2019 ou no SQL Server 2022. A autenticação de Identidade Gerida é suportada no SQL Server 2025 para ligações ao Armazenamento de Blobs do Azure e ADLS Gen2, e requer SQL Server ou SQL Server ativados com Azure Arc numa máquina virtual Azure. A autenticação de Identidade Gerida também é suportada no Base de Dados SQL do Azure e no Azure SQL Managed Instance, mas não é suportada na base de dados SQL do Microsoft Fabric.
Observação
A partir do SQL Server 2025 (17.x), consultar ficheiros de dados (CSV, Parquet e Delta) no Armazenamento de Blobs do Azure, ADLS Gen2 ou armazenamento compatível com S3 é uma funcionalidade nativa do motor e já não requer instalar ou executar serviços PolyBase. Os conectores RDBMS (SQL Server, Oracle, Teradata, MongoDB, ODBC) ainda requerem que os serviços PolyBase estejam instalados e a funcionar. O SQL Server 2025 (17.x) também adiciona suporte Linux para estes conectores, que anteriormente estavam disponíveis apenas no Windows.
Interrogar dados externos
Antes de escolher um cenário específico, compreenda as três formas de consultar dados externos:
| Abordagem | Sintaxe | Utilizar quando | Authentication | Instalação do PolyBase necessária |
|---|---|---|---|---|
| Consultas ad hoc OLE DB | OPENROWSET(provider, connection, query) |
Quer uma consulta rápida e única sem objetos persistentes, ou precisa de autenticação com ID Microsoft Entra | Autenticação SQL, Autenticação Windows, Microsoft Entra ID (MSOLEDBSQL) | No |
| Consultas ad hoc em ficheiros | OPENROWSET(BULK ...) |
Quer explorar rapidamente os dados dos ficheiros ou testar esquemas antes de criar uma tabela | Token SAS, chave de acesso, Identidade Gerida, Microsoft Entra ID | SQL Server 2022: Sim 1 SQL Server 2025 e versões posteriores: Não Base de Dados SQL do Azure, Azure SQL Managed Instance e SQL Database in Fabric: Incorporado |
| Conectores de dados persistentes |
CREATE EXTERNAL TABLE com sqlserver://, oracle://, teradata://, etc. |
Precisa de acesso recorrente, governança, estatísticas e computação de otimização para produção | Somente autenticação SQL | Sim |
1 Para aceder a ficheiros cloud no SQL Server 2022 (16.x), deve instalar a funcionalidade PolyBase, mas os conectores de armazenamento Armazenamento de Blobs do Azure, ADLS Gen2 e compatíveis com S3 não dependem dos serviços PolyBase. O SQL Server 2025 (17.x) e versões posteriores têm suporte nativo para CSV, Parquet e Delta sem necessidade de instalar ou executar serviços PolyBase.
- As consultas ad hoc do OLE DB são usadas
OPENROWSET(provider, connection, query)para acesso rápido e único a uma fonte de dados remota sem criar objetos persistentes. Podem usar autenticação SQL, Windows authentication ou Microsoft Entra ID com MSOLEDBSQL. Este cenário não requer instalação de PolyBase. - Consultas ad hoc em ficheiros servem
OPENROWSET(BULK ...)para explorar rapidamente os dados do ficheiro ou testar um esquema antes de criar uma tabela. Podem usar tokens SAS, chaves de acesso, Managed Identity ou Microsoft Entra ID. O SQL Server 2022 exige a instalação da funcionalidade PolyBase para ficheiros cloud, mas não requer serviços PolyBase. O SQL Server 2025 e versões posteriores não requerem PolyBase para ficheiros na cloud. As consultas ad hoc de ficheiro estão integradas no Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Fabric. - Conectores de dados persistentes utilizam
CREATE EXTERNAL TABLEcomsqlserver://,oracle://,teradata://, e locais semelhantes para acesso recorrente, governação, estatísticas e computação pushdown em cargas de trabalho de produção. Exigem autenticação SQL e serviços PolyBase.
Guia de decisão
| Scenario | Recommendation |
|---|---|
| Precisa de autenticação Microsoft Entra ID para SQL remoto, ou quer evitar os serviços PolyBase. | Use OPENROWSET(MSOLEDBSQL, ...) (ad hoc, sem objetos persistentes). |
| Precisas de tabelas persistentes, estatísticas ou cálculo por empurrar para bases de dados remotas. | Use CREATE EXTERNAL TABLE com conectores PolyBase (sqlserver://, oracle://, teradata://, mongodb://, odbc://).
OPENROWSET Não suporta conectores. |
| Estás a explorar um novo ficheiro ou a testar um esquema. | Use OPENROWSET(BULK ...) (iteração rápida, sem objetos persistentes). |
| Estás a ingerir dados de ficheiros numa tabela com transformações. | Use INSERT ... SELECT a partir de OPENROWSET(BULK ...). |
| É necessário governar ou ter acesso partilhado para muitos utilizadores ou aplicações. | Use CREATE EXTERNAL TABLE para que as permissões e os metadados fiquem centralizados. |
| Estás a trabalhar em bases de dados SQL no Fabric. | Use OPENROWSET(BULK ...) para consultas OneLake ad hoc ou tabelas externas para acesso reutilizável; para armazenamento externo, use atalhos OneLake. |
- Se precisar de autenticação Microsoft Entra ID para SQL remoto ou quiser evitar os serviços PolyBase, utilize
OPENROWSET(MSOLEDBSQL, ...)consultas remotas ad hoc sem objetos persistentes. - Se precisar de tabelas persistentes, estatísticas ou cálculo pushdown para bases de dados remotas, use
CREATE EXTERNAL TABLEcom conectores PolyBase comosqlserver://,oracle://,teradata://,mongodb://, eodbc://.OPENROWSETNão suporta estes conectores. - Se estiveres a explorar um novo ficheiro ou a testar um esquema, usa
OPENROWSET(BULK ...)para iteração rápida e sem objetos persistentes. - Se estiver a ingerir dados de ficheiros numa tabela com transformações, use
INSERT ... SELECTfromOPENROWSET(BULK ...). - Se precisar de governação ou acesso partilhado para muitos utilizadores ou aplicações, use
CREATE EXTERNAL TABLEas permissões e metadados centralizados. - Se estiveres a trabalhar em base de dados SQL no Fabric, usa
OPENROWSET(BULK ...)consultas ad hoc no OneLake ou tabelas externas para acesso reutilizável, e usa atalhos do OneLake para armazenamento externo.
Escolha o seu cenário
Agora que compreende as três abordagens, utilize um dos seguintes guias para implementar o seu caso de uso específico.
Ficheiros de consulta (Parquet, CSV ou Delta)
Se os seus dados estiverem em ficheiros Parquet, CSV ou Delta no Armazenamento de Blobs do Azure, ADLS Gen2, armazenamento compatível com S3 ou OneLake, siga um destes guias:
| Scenario | Guia recomendado | Plataformas |
|---|---|---|
| Consulta rápida e ad hoc num ficheiro Parquet ou CSV | Utilize OPENROWSET. Não é necessária mesa externa |
SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance, SQL database in Fabric |
| Consultas repetidas em ficheiros Parquet com um esquema persistente | Crie uma mesa externa sobre Parquet | SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance, SQL database in Fabric |
| Consultar ficheiros CSV com uma tabela externa | Crie uma tabela externa com um formato de ficheiro para texto delimitado | SQL Server 2019 (15.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance, SQL database in Fabric |
| Consultar tabelas Delta Lake | Crie uma tabela externa com FILE_FORMAT = DeltaLakeFileFormat |
SQL Server 2022 (16.x) e versões posteriores |
| Exportar resultados de consulta para ficheiros Parquet ou CSV (CETAS) | Utilize CREATE EXTERNAL TABLE AS SELECT |
SQL Server 2022 (16.x) e versões posteriores, Azure SQL Managed Instance |
- Para uma consulta rápida e ad hoc num ficheiro Parquet ou CSV, use
OPENROWSET. Este método não requer uma mesa externa. O SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance e SQL Database no Fabric suportam este padrão. - Para consultas repetidas em ficheiros Parquet com um esquema persistente, use uma tabela externa sobre Parquet. O SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance e SQL Database no Fabric suportam este padrão.
- Para uma consulta em ficheiros CSV, use uma tabela externa com um formato de ficheiro para texto delimitado. SQL Server 2019 (15.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance e SQL database no Fabric suportam este padrão.
- Para uma consulta em tabelas Delta Lake, use uma tabela externa com
FILE_FORMAT = DeltaLakeFileFormat. O SQL Server 2022 (16.x) e versões posteriores suportam este padrão. - Para exportar resultados de consulta para ficheiros Parquet ou CSV, use
CREATE EXTERNAL TABLE AS SELECT. O SQL Server 2022 (16.x) e versões posteriores e o Azure SQL Managed Instance suportam este padrão.
Pode também seguir um destes tutoriais passo a passo:
| Tutorial | Descrição |
|---|---|
| Introdução ao PolyBase no SQL Server 2022 | Abrange OPENROWSET com Parquet e CSV, tabelas externas e navegação de pastas. |
| Virtualizar o ficheiro parquet num armazenamento de objetos compatível com S3 com o PolyBase | Tutorial para SQL Server 2022 (16.x) e versões posteriores. |
| Virtualizar ficheiro CSV com PolyBase | Tutorial para SQL Server 2022 (16.x) e versões posteriores. |
| Virtualize tabela delta com PolyBase | Tutorial para SQL Server 2022 (16.x) e versões posteriores. |
| Virtualização de dados com a Base de Dados SQL do Azure (Pré-visualização) | Base de Dados SQL do Azure guide para Parquet e CSV. |
| Virtualização de dados com a Instância Gerenciada SQL do Azure | Guia Azure SQL Managed Instance para Parquet, CSV e CETAS. |
| Virtualização de dados em base de dados SQL no Fabric | Guia da base de dados SQL em Fabric para ficheiros OneLake. |
Liga-te a outra instância SQL Server, Base de Dados SQL do Azure ou SQL Managed Instance
No SQL Server 2019 (15.x) e versões posteriores, o PolyBase pode consultar tabelas noutra instância do SQL Server, Base de Dados SQL do Azure ou Azure SQL Managed Instance, sem recorrer a servidores ligados.
Importante
O sqlserver:// conector não é suportado na base de dados SQL no Fabric. Os conectores RDBMS PolyBase usam autenticação SQL através CREATE DATABASE SCOPED CREDENTIAL e não suportam Microsoft Entra ID, Managed Identity ou autenticação de principal de serviço. Como a base de dados SQL no Fabric requer autenticação Microsoft Entra, não podes ligar-te a ela usando PolyBase.
| Step | O que fazer |
|---|---|
| 1. Instalar o PolyBase | Instale o PolyBase no Windows ou instale o PolyBase no Linux |
| 2. Criar uma credencial |
CREATE DATABASE SCOPED CREDENTIAL com o login alvo |
| 3. Criar uma fonte de dados externa | CREATE EXTERNAL DATA SOURCE ... WITH (LOCATION = 'sqlserver://<server>') |
| 4. Criar uma tabela externa | CREATE EXTERNAL TABLE ... WITH (LOCATION = '<db>.<schema>.<table>') |
| 5. Consulta | SELECT * FROM <external_table> |
-
- Instale o PolyBase no Windows ou Linux usando o Install PolyBase no Windows ou instale o PolyBase no Linux antes de configurar o acesso a dados SQL externos.
-
- Crie uma credencial com âmbito de base de dados com o login alvo usando
CREATE DATABASE SCOPED CREDENTIALpara que o motor possa autenticar-se no servidor remoto.
- Crie uma credencial com âmbito de base de dados com o login alvo usando
-
- Crie uma fonte de dados externa para o SQL Server remoto usando
CREATE EXTERNAL DATA SOURCE ... WITH (LOCATION = 'sqlserver://<server>').
- Crie uma fonte de dados externa para o SQL Server remoto usando
-
- Crie uma tabela externa usando
CREATE EXTERNAL TABLE ... WITH (LOCATION = '<db>.<schema>.<table>')para representar a tabela remota.
- Crie uma tabela externa usando
-
- Consulte a tabela externa usando
SELECT * FROM <external_table>.
- Consulte a tabela externa usando
Sugestão
O conector SQL Server (sqlserver://) também funciona para Base de Dados SQL do Azure e Azure SQL Managed Instance. Use os mesmos passos e defina LOCATION para o endpoint Base de Dados SQL do Azure ou Azure SQL Managed Instance (por exemplo, sqlserver://myserver.database.windows.net).
Para um guia detalhado, consulte Configurar PolyBase para aceder a dados externos no SQL Server.
Liga-te ao Oracle, Teradata ou MongoDB
SQL Server 2019 (15.x) e versões posteriores podem consultar Oracle, Teradata, MongoDB e Cosmos DB através de conectores PolyBase ODBC.
| Origem de dados | Guide | Requisitos |
|---|---|---|
| Oracle | Configure o PolyBase para aceder a dados externos no Oracle | SQL Server 2019 (15.x) e versões posteriores, drivers do cliente Oracle |
| Teradata | Configure o PolyBase para aceder a dados externos no Teradata | SQL Server 2019 (15.x) e versões posteriores, driver Teradata ODBC |
| MongoDB / Cosmos DB | Configure o PolyBase para aceder a dados externos no MongoDB | SQL Server 2019 (15.x) e versões posteriores, driver MongoDB ODBC |
| Qualquer fonte ODBC | Configure o PolyBase para aceder a dados externos com tipos genéricos ODBC | SQL Server 2019 (15.x) e versões posteriores (Windows) (Linux a partir do SQL Server 2025 (17.x)) |
- As fontes de dados Oracle utilizam o Configure PolyBase para aceder a dados externos no guia Oracle e requerem SQL Server 2019 (15.x) e versões posteriores, bem como drivers cliente Oracle.
- As fontes de dados Teradata utilizam o Configure PolyBase para aceder a dados externos no guia Teradata e necessitam do SQL Server 2019 (15.x) e versões posteriores, bem como do driver Teradata ODBC.
- As fontes de dados do MongoDB ou Cosmos DB utilizam o Configure PolyBase para aceder a dados externos no guia MongoDB e requerem versões do SQL Server 2019 (15.x) e posteriores, bem como o driver ODBC do MongoDB.
- Qualquer fonte ODBC pode usar o Configure PolyBase para aceder a dados externos com o guia de tipos genéricos ODBC e requer o SQL Server 2019 (15.x) e versões posteriores no Windows ou SQL Server 2025 (17.x) e versões posteriores no Linux.
Conectar-se ao Armazenamento de Blobs do Azure ou ADLS Gen2
| Plataforma SQL | Opções de autenticação | Guide |
|---|---|---|
| SQL Server 2022 (16.x) e versões posteriores | Token SAS, chave de acesso, Identidade Gerida (a partir do SQL Server 2025 (17.x)) | Configure o PolyBase para aceder a dados externos no Armazenamento de Blobs do Azure |
| SQL Server 2019 (15.x) | Chave de acesso (via conector Hadoop) | Configure o PolyBase para aceder a dados externos no Armazenamento de Blobs do Azure |
| Base de Dados SQL do Azure | SAS Token, Identidade Gerida, Microsoft Entra pass-through | Virtualização de dados com a Base de Dados SQL do Azure (Pré-visualização) |
| Azure SQL Managed Instance | Token SAS, Identidade Gerida | Virtualização de dados com a Instância Gerenciada SQL do Azure |
- O SQL Server 2022 e versões posteriores suportam autenticação Armazenamento de Blobs do Azure ou ADLS Gen2 através do uso de tokens SAS, chaves de acesso ou Identidade Gerida a partir do SQL Server 2025 (17.x). Para mais informações, consulte Configurar PolyBase para aceder a dados externos no Armazenamento de Blobs do Azure.
- O SQL Server 2019 suporta Armazenamento de Blobs do Azure ou ADLS Gen2 usando uma chave de acesso através do conector Hadoop. Para mais informações, consulte Configurar PolyBase para aceder a dados externos no Armazenamento de Blobs do Azure.
- Base de Dados SQL do Azure suporta Armazenamento de Blobs do Azure ou ADLS Gen2 utilizando tokens SAS, Identidade Gerida ou autenticação pass-through Microsoft Entra. Para obter mais informações, consulte Virtualização de dados com o Banco de Dados SQL do Azure (Visualização).
- O Azure SQL Managed Instance suporta Armazenamento de Blobs do Azure ou ADLS Gen2 utilizando tokens SAS ou Identidade Gerida. Para obter mais informações, consulte Virtualização de dados com a Instância Gerenciada SQL do Azure.
No SQL Server 2022 (16.x), os prefixos de URI mudaram. Ao migrar do SQL Server 2019 (15.x) ou versões anteriores:
-
Armazenamento de Blobs do Azure: Alterar
wasb[s]://paraabs:// -
ADLS Gen2: Mudança
abfs[s]://paraadls://
Para mais informações, consulte Configurar PolyBase para aceder a dados externos no Armazenamento de Blobs do Azure.
Liga-se a armazenamento de objetos compatível com S3
O SQL Server 2022 (16.x) e versões posteriores suportam armazenamento compatível com S3, como Amazon S3, MinIO e Ceph.
Para obter mais informações, consulte Configurar o PolyBase para acessar dados externos no armazenamento de objetos compatível com o S3.
Exportar dados com CREATE EXTERNAL TABLE AS SELECT (CETAS)
O CETAS exporta os resultados da consulta para ficheiros externos (Parquet ou CSV) no Armazenamento de Blobs do Azure, ADLS Gen2 ou armazenamento compatível com S3.
| Plataforma SQL | Suportado | Formatos de exportação | Notes |
|---|---|---|---|
| SQL Server 2022 (16.x) e versões posteriores. Exportar para ADLS Gen2 com CETAS requer SQL Server 2022 CU5 ou versão posterior. | Sim | Parquet, CSV | Requer configuração do servidor: permitir exportação de polybase. |
| Azure SQL Managed Instance | Sim | Parquet, CSV | Desativado por defeito |
| Base de Dados SQL do Azure | No | Nenhum | Não disponível |
| Banco de dados SQL no Fabric | No | Nenhum | Não disponível |
- O SQL Server 2022 e versões posteriores suportam CETAS e exportam ficheiros Parquet e CSV. A configuração do servidor: é necessária a definição de exportar do polybase . A exportação CETAS para ADLS Gen2 não está disponível nas versões do SQL Server 2022 anteriores ao CU5.
- Azure SQL Managed Instance suporta CETAS e exporta ficheiros Parquet e CSV. A orientação para desativados por defeito descreve o seu estado padrão.
- O Base de Dados SQL do Azure não suporta CETAS.
- A base de dados SQL no Fabric não suporta CETAS.
Para referência Transact-SQL, ver CREATE EXTERNAL TABLE AS SELECT (CETAS).
Exemplos de arranque rápido
Exemplo 1: Consulta ad hoc num ficheiro Parquet (OPENROWSET)
Não é necessária mesa externa. Funciona no SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL em Fabric.
SELECT TOP 10 *
FROM OPENROWSET (
BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet',
FORMAT = 'PARQUET'
) AS [result];
Exemplo 2: Tabela externa sobre CSV no Armazenamento de Blobs do Azure
Este exemplo funciona em todas as plataformas SQL que suportam tabelas externas sobre ficheiros CSV.
Passo 1: Crie uma chave mestra de base de dados (DMK). Este passo é necessário porque a credencial armazena um segredo de token SAS. No entanto, pode saltar este passo se usar Identidade Gerida ou autenticação Microsoft Entra.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';Passo 2: Crie uma credencial com um token SAS. Omita o
?inicial.CREATE DATABASE SCOPED CREDENTIAL MyStorageCred WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<your_SAS_token>'; -- omit the leading '?'Passo 3: Crie uma fonte de dados externa.
CREATE EXTERNAL DATA SOURCE MyAzureStorage WITH ( LOCATION = 'abs://mycontainer@mystorageaccount.blob.core.windows.net', CREDENTIAL = MyStorageCred );Passo 4: Crie um formato de ficheiro para o CSV.
CREATE EXTERNAL FILE FORMAT CsvFormat WITH ( FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS ( FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2 ) );Passo 5: Crie a tabela externa.
CREATE EXTERNAL TABLE dbo.SalesExternal ( OrderId INT, OrderDate DATE, Amount DECIMAL (18, 2), Customer NVARCHAR (100) ) WITH ( DATA_SOURCE = MyAzureStorage, LOCATION = '/data/sales/', FILE_FORMAT = CsvFormat );Passo 6: Consulta a tabela externa.
SELECT * FROM dbo.SalesExternal WHERE OrderDate >= '2025-01-01';
Exemplo 3: Consultar uma tabela noutro SQL Server
Este exemplo funciona no SQL Server 2019 (15.x) e versões posteriores.
Passo 1: Crie uma chave mestra da base de dados (necessária porque a credencial armazena uma palavra-passe).
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';Passo 2: Crie uma credencial para a instância remota do SQL Server.
CREATE DATABASE SCOPED CREDENTIAL RemoteSqlCred WITH IDENTITY = 'remote_user', SECRET = '<password>';Passo 3: Crie a fonte de dados externa.
CREATE EXTERNAL DATA SOURCE RemoteSqlServer WITH ( LOCATION = 'sqlserver://remote-server.contoso.com', PUSHDOWN = ON, CREDENTIAL = RemoteSqlCred );Passo 4: Crie a tabela externa (nome em três partes em
LOCATION).CREATE EXTERNAL TABLE dbo.RemoteCustomers ( CustomerId INT, CustomerName NVARCHAR (200) COLLATE SQL_Latin1_General_CP1_CI_AS ) WITH ( DATA_SOURCE = RemoteSqlServer, LOCATION = 'SalesDB.dbo.Customers' );Passo 5: Consulta entre servidores.
SELECT c.CustomerName, s.Amount FROM dbo.RemoteCustomers AS c INNER JOIN dbo.LocalSales AS s ON c.CustomerId = s.CustomerId;
Exemplo 4: Exportar resultados para Parquet com CETAS
Funciona no SQL Server 2022 (16.x) e versões posteriores, Azure SQL Managed Instance.
Passo 1: Ativar o CETAS (apenas SQL Server).
EXECUTE sp_configure 'allow polybase export', 1; RECONFIGURE;Passo 2: Criar credenciais e fonte de dados (reutilizar exemplos anteriores).
Passo 3: Criar um formato de ficheiro para exportação do Parquet.
CREATE EXTERNAL FILE FORMAT ParquetFormat WITH ( FORMAT_TYPE = PARQUET );Passo 4: Exportar os resultados da consulta.
CREATE EXTERNAL TABLE dbo.Sales2025Export WITH ( DATA_SOURCE = MyAzureStorage, LOCATION = '/exports/sales_2025.parquet', FILE_FORMAT = ParquetFormat ) AS SELECT * FROM Sales.Orders WHERE OrderDate >= '2025-01-01';
Blocos de construção T-SQL para PolyBase
Antes de implementar qualquer cenário, compreenda os objetos T-SQL centrais que a PolyBase utiliza e como eles se encaixam:
Diagrama que mostra os objetos PolyBase T-SQL e as suas relações, desde a autenticação (chave mestra da base de dados, credenciais) através de fontes de dados e formatos de ficheiro até métodos de consulta (External Table, OPENROWSET, BULK INSERT, CETAS).
- Para a sintaxe de fontes de dados externas, veja CREATE EXTERNAL DATA SOURCE.
- Para a sintaxe do formato de ficheiro externo, veja CREATE EXTERNAL FILE FORMAT.
- Para a sintaxe das tabelas externas, veja CREATE EXTERNAL TABLE.
- Para a sintaxe de acesso ad hoc a dados, veja OPENROWSET.
- Para a sintaxe CETAS, vejaCREATE EXTERNAL TABLE AS SELECT (CETAS).
Para uma referência Transact-SQL completa para todos os objetos, veja PolyBase Transact-SQL referência.
Importante
Verifique o mapeamento dos tipos de dados para o formato de ficheiro externo. Quando cria um formato de ficheiro externo, ou ficheiros de consulta usando OPENROWSET, o PolyBase mapeia automaticamente tipos de dados fonte (Parquet, CSV, Delta, Oracle, Teradata, MongoDB) para tipos de dados SQL Server. Tipos desajustados podem causar truncamento silencioso, perda de precisão ou erros de consulta. Por exemplo, um Parquet DECIMAL(38,18) mapeia para DECIMAL(18,0). Revise as tabelas de mapeamento antes de definir colunas externas ou uma WITH cláusula. Para referência completa, veja Mapeamento de Tipos com PolyBase.
Quando precisas CREATE MASTER KEY?
Uma chave mestra de base de dados (DMK) é criada usando CREATE MASTER KEY sintaxe. O DMK encripta os segredos armazenados nas credenciais com âmbito de base de dados. É exigido apenas quando a credencial contém um valor secreto, ou seja, quando armazena uma palavra-passe, token ou chave de acesso.
O DMK é obrigatório (a credencial guarda um segredo):
Tipo de autenticação IDENTITYvalorTem segredo DMK token de SAS 'SHARED ACCESS SIGNATURE'Sim Obrigatório Chave de acesso S3 'S3 ACCESS KEY'Sim Obrigatório Login SQL / autenticação básica '<username>'Sim Obrigatório Chave de acesso da conta de armazenamento '<storage_account_name>'Sim Obrigatório - Uma credencial de token SAS utiliza
IDENTITY = 'SHARED ACCESS SIGNATURE'e armazena um valor secreto, pelo que requer uma chave mestra da base de dados. - Uma credencial de chave de acesso S3 utiliza
IDENTITY = 'S3 ACCESS KEY'e armazena um valor secreto, pelo que requer uma chave mestra de base de dados.- Um login SQL ou credencial básica de autenticação usa
IDENTITY = '<username>'e armazena um valor secreto, pelo que requer uma chave mestra de base de dados.
- Um login SQL ou credencial básica de autenticação usa
- Uma credencial de chave de acesso de conta de armazenamento utiliza
IDENTITY = '<storage_account_name>'e armazena um valor secreto, pelo que requer uma chave mestra da base de dados.
- Uma credencial de token SAS utiliza
DMK não é obrigatório (sem segredo armazenado):
Tipo de autenticação IDENTITYvalorTem segredo DMK Identidade gerenciada 'Managed Identity'No Não obrigatório Microsoft Entra ID 'User Identity'ou'Managed Identity'No Não obrigatório - Uma credencial de Identidade Gerida não utiliza
IDENTITY = 'Managed Identity'nem armazena segredo, por isso não requer uma chave mestra de base de dados. - Uma credencial do Microsoft Entra ID não utiliza
IDENTITY = 'User Identity'ouIDENTITY = 'Managed Identity'não armazena segredos, por isso não requer uma chave mestra de base de dados.
- Uma credencial de Identidade Gerida não utiliza
Sugestão
Se a sua CREATE DATABASE SCOPED CREDENTIAL declaração não incluir um segredo, não precisa de DMK. Identidade gerida e autenticação Microsoft Entra ID delegam confiança à plataforma. A base de dados não armazena palavras-passe nem tokens.
Exemplos:
Nesta consulta de exemplo, é necessário o DMK (Credencial armazena um token SAS).
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
CREATE DATABASE SCOPED CREDENTIAL SasCred
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<your_SAS_token>';
Neste exemplo de consulta, o DMK não é obrigatório (Identidade Gerida, sem segredo).
CREATE DATABASE SCOPED CREDENTIAL ManagedIdentityCred
WITH IDENTITY = 'Managed Identity';
Neste exemplo de consulta, o DMK não é necessário (Microsoft Entra pass-through, sem necessidade de segredo).
CREATE DATABASE SCOPED CREDENTIAL EntraIdCred
WITH IDENTITY = 'User Identity';
Acesso remoto a dados com OPENROWSET e tabelas externas
O SQL Server oferece três abordagens distintas para consultar dados remotos. Pode escolher a abordagem certa quando compreender as diferenças na sintaxe, autenticação e arquitetura.
| Abordagem | Sintaxe | Conecta-se a | Authentication | Serviços PolyBase | Plataformas |
|---|---|---|---|---|---|
| Consultas OLE DB | OPENROWSET(provider, connection, query) |
Qualquer fonte OLE DB via MSOLEDBSQL, SQLOLEDB ou outros fornecedores | Autenticação SQL, Autenticação Windows, Microsoft Entra ID (MSOLEDBSQL) | No | SQL Server (todas as versões suportadas) |
| Consultas de ficheiros no SQL Server 2022 (16.x) e SQL Server 2019 (15.x) | OPENROWSET(BULK ...) |
Ficheiros em disco local, rede ou cloud (Azure Blob, ADLS, S3, OneLake) | Token SAS, chave de acesso, Identidade Gerida, Microsoft Entra ID | Sim para a cloud 1; Não para local | SQL Server 2022 (16.x) e SQL Server 2019 (15.x) |
| Consultas de ficheiros no SQL Server 2025 (17.x) e versões posteriores | OPENROWSET(BULK ...) |
Ficheiros em disco local, rede ou cloud (Azure Blob, ADLS, S3, OneLake) | Token SAS, chave de acesso, Identidade Gerida, Microsoft Entra ID | No | SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, Azure SQL Managed Instance, SQL database in Fabric |
| Conectores PolyBase |
CREATE EXTERNAL TABLE com CREATE EXTERNAL DATA SOURCE usando sqlserver://, oracle://, teradata://, mongodb://, odbc:// |
Fontes do Remote SQL Server, Oracle, Teradata, MongoDB, ODBC | Somente autenticação SQL | Sim | SQL Server 2019 (15.x) e versões posteriores (Windows); SQL Server 2025 (17.x) e versões posteriores (Linux) |
1 Para o acesso a ficheiros na nuvem no SQL Server 2022 (16.x), a funcionalidade PolyBase deve estar instalada.
- As consultas OLE DB são usadas
OPENROWSET(provider, connection, query)para se ligar a qualquer fonte OLE DB através de MSOLEDBSQL, SQLOLEDB ou outro fornecedor em todas as versões suportadas do SQL Server. Eles suportam autenticação SQL, Windows authentication e Microsoft Entra ID com MSOLEDBSQL, e não exigem que os serviços PolyBase sejam instalados. - As consultas de ficheiros são usadas
OPENROWSET(BULK ...)para ler ficheiros em disco local, partilhas de rede ou armazenamento na nuvem, como Armazenamento de Blobs do Azure, ADLS, S3 ou OneLake, utilizando um token SAS, chave de acesso, Managed Identity ou Microsoft Entra ID. São suportados para ficheiros locais e de rede no SQL Server 2005 e versões posteriores, para ficheiros cloud no SQL Server 2022 (16.x) e versões posteriores, e no Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no Fabric. As consultas de ficheiros não requerem serviços PolyBase para ficheiros locais ou para ficheiros cloud no SQL Server 2022 (16.x) e versões posteriores. - Os conectores PolyBase utilizam
CREATE EXTERNAL TABLEcomCREATE EXTERNAL DATA SOURCEe osqlserver://,oracle://,teradata://,mongodb://, ouodbc://localização para se ligar a fontes remotas SQL Server, Oracle, Teradata, MongoDB ou ODBC. Exigem autenticação SQL e serviços PolyBase no SQL Server 2019 (15.x) e versões posteriores para Windows e SQL Server 2025 (17.x) e versões posteriores para Linux. Para mais informações, vejaCREATE EXTERNAL DATA SOURCE (Transact-SQL).
Quando usar cada abordagem
Use OLE DB OPENROWSET para:
- Use o OLE DB
OPENROWSETpara consultas rápidas e pontuais, sem criar objetos persistentes. - Use o OLE DB
OPENROWSETpara autenticação do Microsoft Entra ID ou Managed Identity através do MSOLEDBSQL. - Use o OLE DB
OPENROWSETpara evitar dependências de serviços PolyBase. - Use o OLE DB
OPENROWSETpara se ligar a qualquer fonte de dados que tenha um fornecedor OLE DB.
Use o ficheiro OPENROWSET(BULK) para:
- Use ficheiros
OPENROWSET(BULK ...)para exploração de ficheiros ad hoc e descoberta de esquemas. - Usa o ficheiro
OPENROWSET(BULK ...)para transformações rápidas e pré-visualizações antes de te comprometeres com uma definição de tabela. - Use o ficheiro
OPENROWSET(BULK ...)para transformações flexíveis de colunas inline, como casting, filtragem e colunas computadas. - Use ficheiro
OPENROWSET(BULK ...)para dados que não mudam frequentemente e que não necessitam de metadados persistentes.
Utilize conectores do PolyBase com CREATE EXTERNAL TABLE para:
- Use conectores PolyBase com
CREATE EXTERNAL TABLEdefinições de tabelas persistentes e reutilizáveis que vários utilizadores ou aplicações acedam. - Use conectores PolyBase para
CREATE EXTERNAL TABLEcargas de trabalho de produção que exijam estatísticas e otimização do plano de consultas. - Utilize conectores PolyBase para
CREATE EXTERNAL TABLEcálculo por pressão para fontes remotas como Oracle e SQL Server. - Use conectores PolyBase com
CREATE EXTERNAL TABLEpara governação partilhada e segurança; após a criação da tabela, os utilizadores sóSELECTprecisam de permissão. - Use conectores PolyBase quando
CREATE EXTERNAL TABLEa autenticação SQL estiver disponível para a fonte remota.
OPENROWSET (OLE DB) - consultas remotas ad hoc (sem necessidade de serviços PolyBase)
A forma OLE DB de OPENROWSET liga-se a uma fonte de dados remota através de um fornecedor OLE DB, executa uma consulta pass-through e devolve os resultados como um conjunto de linhas. É uma alternativa pontual e ad hoc a um servidor ligado. Não são criados metadados persistentes. Esta sintaxe não requer serviços PolyBase, nem suporta ficheiros na cloud nem fontes de dados externas.
Esta consulta de exemplo liga-se a um SQL Server remoto via OLE DB (não PolyBase).
SELECT *
FROM OPENROWSET (
'MSOLEDBSQL',
'Server=remote-server;Database=AdventureWorks;Trusted_Connection=yes;',
'SELECT TOP 10 * FROM AdventureWorks.Sales.SalesOrderHeader'
);
OPENROWSET(BULK) - consultas baseadas em ficheiros (PolyBase)
A BULK forma de OPENROWSET lê dados diretamente de ficheiros. No SQL Server 2019 (15.x) e versões anteriores, lê a partir de caminhos de ficheiros locais ou UNC e requer um ficheiro de formatação. No SQL Server 2022 (16.x) e versões posteriores, pode ler do armazenamento na cloud usando os parâmetros DATA_SOURCE e FORMAT. Esta abordagem é a versão integrada no PolyBase, utilizada para virtualização de dados.
No contexto do PolyBase e da virtualização de dados, quando este guia menciona OPENROWSET, está a referir-se à sintaxe OPENROWSET(BULK ...) com uma cláusula FORMAT para consultas a ficheiros externos.
Exemplos:
Esta consulta de exemplo lê um ficheiro Parquet do Armazenamento de Blobs do Azure (SQL Server 2022 e versões posteriores).
SELECT TOP 10 *
FROM OPENROWSET (
BULK 'data/sales/*.parquet',
DATA_SOURCE = 'MyAzureStorage',
FORMAT = 'PARQUET'
) AS [result];
Esta consulta de exemplo lê um ficheiro Parquet com um caminho inline (Base de Dados SQL do Azure, Azure SQL Managed Instance).
SELECT TOP 10 *
FROM OPENROWSET (
BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet',
FORMAT = 'PARQUET'
) AS [result];
Quando usar OPENROWSET vs. tabelas externas
Tanto OPENROWSET(BULK ...) como as tabelas externas permitem consultar dados externos com T-SQL, mas foram criadas para diferentes casos de uso. A tabela seguinte resume as principais diferenças para o ajudar a decidir qual a abordagem que se adequa ao seu cenário.
| Capacidade | OPENROWSET(BULK ...) |
Tabela externa |
|---|---|---|
| Objetivo | Exploração ad hoc e consultas pontuais | Definição de tabela persistente e reutilizável |
| Metadados armazenados na base de dados | Não. Nada é guardado após a execução da consulta | Yes. A definição da tabela, a fonte de dados e o formato do ficheiro são armazenados como objetos da base de dados |
| Definição de esquema | Inferido automaticamente a partir do ficheiro (Parquet) ou especificado diretamente com uma |
Definido explicitamente na CREATE EXTERNAL TABLE afirmação |
| Permissões | Requer ADMINISTER BULK OPERATIONS ou ADMINISTER DATABASE BULK OPERATIONS |
Uma vez criada, a permissão padrão SELECT na tabela é suficiente |
| Colunas calculadas | Yes. Adicionar expressões e colunas calculadas na SELECT lista; funções de metadados como filename() e filepath() só estão disponíveis aqui. |
Não. Lista de colunas fixas; realizam transformações numa vista ou na consulta que lê a tabela externa |
| Estatísticas | Azure SQL Managed Instance: estatísticas manuais de coluna única via sys.sp_create_openrowset_statistics. Consulte as estatísticas do manual do OPENROWSET. SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure, SQL database em Fabric: autocriar estatísticas em predicados. Estatísticas manuais OPENROWSET não são suportadas no SQL Server. |
Suporte total CREATE STATISTICS em todas as plataformas, além de criação automática no SQL Server 2022 (16.x) e versões posteriores. Consulte Estatísticas manuais de tabela externa. |
| Empurrão | Apoio limitado. O motor pode empurrar filtros para a análise de ficheiros, mas não há pressão para fontes remotas de RDBMS | Yes. Suporta cálculo pushdown para conectores RDBMS (SQL Server, Oracle, Teradata, MongoDB) |
| Melhor para | Exploração de dados, descoberta de esquemas, consultas de prototipagem, cargas de dados únicas, transformações flexíveis | Cargas de trabalho em produção, consultas repetidas, acesso partilhado entre utilizadores, dashboards e relatórios |
-
OPENROWSET(BULK ...)é melhor para exploração ad hoc e consultas pontuais, enquanto uma tabela externa é melhor para definições de tabelas persistentes e reutilizáveis. -
OPENROWSET(BULK ...)não armazena metadados na base de dados após a execução da consulta, enquanto uma tabela externa armazena a definição da tabela, a fonte de dados e o formato do ficheiro como objetos da base de dados. -
OPENROWSET(BULK ...)infere o esquema automaticamente a partir de um ficheiro Parquet ou define o esquema em linha com umaWITHcláusula, enquanto uma tabela externa define explicitamente o esquema naCREATE EXTERNAL TABLEinstrução. -
OPENROWSET(BULK ...)requerADMINISTER BULK OPERATIONSouADMINISTER DATABASE BULK OPERATIONS, enquanto uma tabela externa pode ser consultada por utilizadores que só necessitam de permissão padrãoSELECTdepois de a tabela existir. -
OPENROWSET(BULK ...)suporta colunas computadas nas funções de consulta e metadados comofilename()efilepath(), enquanto uma tabela externa tem uma lista de colunas fixa e requer transformações numa vista ou na consulta que lê a tabela externa. -
OPENROWSET(BULK ...)tem suporte limitado para estatísticas: o Azure SQL Managed Instance pode ser usadosys.sp_create_openrowset_statisticspara estatísticas de coluna única, mas o SQL Server 2022 (16.x) e versões posteriores, o Base de Dados SQL do Azure e o SQL Database no Fabric criam automaticamente estatísticas sobre predicados. Estatísticas manuaisOPENROWSETnão são suportadas no SQL Server, Base de Dados SQL do Azure e SQL Database no Fabric. Uma tabela externa suporta capacidade totalCREATE STATISTICSem todas as plataformas, além de estatísticas automáticas no SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure e SQL Database no Fabric. Consulte estatísticas do manual OPENROWSET e Criar estatísticas do manual de tabelas externas. -
OPENROWSET(BULK ...)tem pushdown limitado e nenhum pushdown para fontes remotas de RDBMS, enquanto uma tabela externa suporta computação por pushdown para conectores RDBMS. -
OPENROWSET(BULK ...)é ideal para exploração de dados, descoberta de esquemas, prototipagem, cargas únicas e transformações flexíveis, enquanto uma tabela externa é ideal para cargas de trabalho de produção, consultas repetidas, acesso partilhado, dashboards e relatórios.
Usa o OPENROWSET quando precisares de flexibilidade
OPENROWSET Use para explorar um ficheiro, testar diferentes esquemas ou adicionar colunas computadas e transformações sem criar quaisquer objetos persistentes. Por exemplo, pode extrair o caminho do ficheiro como uma coluna, converter tipos de dados de forma integrada ou filtrar expressões calculadas numa única consulta.
Esta consulta de exemplo inclui colunas computadas e transformações:
SELECT result.filename() AS [FileName],
result.filepath(1) AS [Year],
result.filepath(2) AS [Month],
CAST (OrderDate AS DATE) AS OrderDate,
Amount,
OrderDate
FROM OPENROWSET (
BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*/*/*/*.parquet',
FORMAT = 'PARQUET'
) AS result
WHERE result.filepath(1) = '2025';
Sugestão
As funções filepath() e filename() estão disponíveis no Base de Dados SQL do Azure, Azure SQL Managed Instance e no SQL Server 2022 (16.x) e versões posteriores. Permitem-te filtrar partes do caminho do ficheiro (eliminação de partições) e expor o nome do ficheiro de origem como uma coluna, o que não é diretamente possível com tabelas externas.
Use tabelas externas quando precisar de persistência e governação
Use tabelas externas quando vários utilizadores ou aplicações precisam de consultar repetidamente os mesmos dados externos. Define o esquema, a fonte de dados e as credenciais uma vez e armazena-os na base de dados. Os consumidores só precisam SELECT de permissão na mesa.
Tabelas externas também suportam estatísticas, que o otimizador de consultas utiliza para construir melhores planos de execução. Pode criar estatísticas manualmente ou deixar o motor criá-las automaticamente (SQL Server 2022 (16.x) e versões posteriores).
Esta consulta de exemplo cria estatísticas numa tabela externa para melhores planos de consulta.
CREATE STATISTICS Stats_OrderDate
ON dbo.SalesExternal(OrderDate)
WITH FULLSCAN;
Para mais informações sobre estatísticas para ambas as abordagens, consulte Considerações de desempenho do PolyBase - Estatística.
BULK INSERT vs. OPENROWSET (BULK): Qual devo usar?
Tanto BULK INSERT quanto OPENROWSET(BULK ...) importam dados de ficheiros para o SQL Server usando o mesmo motor de carregamento em massa subjacente. No entanto, diferem na sintaxe, flexibilidade e no que pode fazer com os resultados. A tabela a seguir resume as principais diferenças:
Observação
A instrução autónoma BULK INSERT não é suportada na base de dados SQL no Fabric. Para ingerir dados, use INSERT ... SELECT contra OPENROWSET(BULK ...) o OneLake.
| Capacidade | BULK INSERT |
OPENROWSET(BULK ...) |
|---|---|---|
| Propósito básico | Carrega dados de um ficheiro diretamente para uma tabela de destino | Devolve um conjunto de linhas que usas numa SELECT instrução ou INSERT ... SELECT |
| Padrão de utilização | Declaração independente: BULK INSERT <table> FROM '<file>' |
Deve ser usado dentro de uma consulta: SELECT * FROM OPENROWSET(BULK ...) ou INSERT INTO <table> SELECT * FROM OPENROWSET(BULK ...) |
| Requer uma tabela de alvo? | Yes. Escreve sempre diretamente numa tabela | Não. Podes SELECT fazer isso sem inserir em lado nenhum, ou inserir em qualquer tabela ou tabela temporária |
| Transformações de coluna durante a carga | Apoio limitado. Os dados fluem do ficheiro para a tabela tal como estão (mapeamento controlado pelo ficheiro de formato ou pela ordem das colunas) | Apoio total. Pode adicionar expressões, CAST, WHERE filtros, JOIN outras tabelas e colunas computadas ao redor SELECT |
| Dicas para a tabela | A WITH cláusula inclui suporte para BATCHSIZE, CHECK_CONSTRAINTS, FIRE_TRIGGERS, KEEPIDENTITY, KEEPNULLS, TABLOCK, e mais |
Suporta dicas de tabela através da INSERT ... SELECT * FROM OPENROWSET(BULK ...) WITH (TABLOCK, IGNORE_CONSTRAINTS, ...) sintaxe |
| Importação de valor único para objetos grandes (LOB) | Não suportado | Yes. Suporta SINGLE_BLOB, SINGLE_CLOB, SINGLE_NCLOB para importar um ficheiro inteiro como um valor varbinary(max), varchar(max) ou nvarchar(max) |
| Ficheiros de formato | Yes. Suportado via (XML e não-XML) | Yes. Suportado (XML e não XML) |
| Acesso a ficheiros na nuvem |
DATA_SOURCEsuporta Armazenamento de Blobs do Azure no SQL Server 2017 (14.x) e versões posteriores, Base de Dados SQL do Azure e Azure SQL Managed Instance. O SQL Server 2019 CU11 e atualizações posteriores também suportam ADLS Gen2. Armazenamento compatível com S3 não é suportado. |
DATA_SOURCEsuporta Armazenamento de Blobs do Azure no SQL Server 2017 (14.x) e versões posteriores, ADLS Gen2 no SQL Server 2019 CU11 e versões posteriores, e armazenamento compatível com S3 no SQL Server 2022 (16.x) e versões posteriores. Base de Dados SQL do Azure e Azure SQL Managed Instance suportam Armazenamento de Blobs do Azure e ADLS Gen2. A base de dados SQL no Fabric suporta OneLake e armazenamento externo através de atalhos OneLake. |
| Arquivos de Parquet ou Delta | Não suportado. Apenas CSV/texto delimitado | Yes. SQL Server 2022 (16.x) e versões posteriores, suporte para Azure SQL Managed Instance e Base de Dados SQL do Azure FORMAT = 'PARQUET' e FORMAT = 'DELTA'; Suporte para base de dados SQL em FabricFORMAT = 'PARQUET', mas não DELTA. Para obter mais informações, consulte OPENROWSET BULK (Transact-SQL). |
| Permissão necessária |
ADMINISTER BULK OPERATIONS ou ADMINISTER DATABASE BULK OPERATIONS, mais INSERT na tabela alvo |
ADMINISTER BULK OPERATIONS ou ADMINISTER DATABASE BULK OPERATIONS |
| Registo mínimo | Yes. Suportado em modelos de recuperação simples ou logados em massa com TABLOCK |
Yes. Suportado quando usado com INSERT ... SELECT e TABLOCK |
-
BULK INSERTcarrega os dados de um ficheiro diretamente numa tabela de destino, enquantoOPENROWSET(BULK ...)devolve um conjunto de linhas que pode usar numaSELECTinstrução ou.INSERT ... SELECT -
BULK INSERTé uma instrução autónoma, enquantoOPENROWSET(BULK ...)deve ser usada dentro de uma consulta comoSELECT * FROM OPENROWSET(BULK ...)ouINSERT INTO <table> SELECT * FROM OPENROWSET(BULK ...). -
BULK INSERTescreve sempre diretamente numa tabela alvo, enquantoOPENROWSET(BULK ...)podeSELECTser inserido a partir de um ficheiro sem inserir em lado nenhum ou inserir em qualquer tabela ou tabela temporária. -
BULK INSERTtem suporte limitado para transformações de coluna porque os dados fluem do ficheiro para a tabela as-is, com o mapeamento controlado por um ficheiro de formato ou ordem de colunas.OPENROWSET(BULK ...)suporta expressões,CAST,WHEREfiltros,JOINs e colunas calculadas na área circundanteSELECT. -
BULK INSERTusa umaWITHcláusula paraBATCHSIZE,CHECK_CONSTRAINTS,FIRE_TRIGGERS,KEEPIDENTITY,KEEPNULLS,TABLOCK, , e outras dicas.OPENROWSET(BULK ...)suporta dicas de tabela através deINSERT ... SELECT * FROM OPENROWSET(BULK ...) WITH (TABLOCK, IGNORE_CONSTRAINTS, ...). -
BULK INSERTnão suporta importação de valor único para objetos grandes.OPENROWSET(BULK ...)suportaSINGLE_BLOB,SINGLE_CLOB, eSINGLE_NCLOBpara importar um ficheiro inteiro como um valor varbinary(max),varchar(max) ou nvarchar(max ), respetivamente. - Ambos
BULK INSERTsuportamOPENROWSET(BULK ...)ficheiros em formato XML e não XML. - Para acesso a ficheiros na cloud com
BULK INSERT, oDATA_SOURCEparâmetro suporta Armazenamento de Blobs do Azure no SQL Server 2017 (14.x) e versões posteriores, Base de Dados SQL do Azure e Azure SQL Managed Instance. O SQL Server 2019 CU11 e atualizações posteriores também suportam ADLS Gen2, masBULK INSERTnão suportam armazenamento compatível com S3. ParaOPENROWSET(BULK ...),DATA_SOURCEsuporta Armazenamento de Blobs do Azure no SQL Server 2017 (14.x) e versões posteriores, ADLS Gen2 no SQL Server 2019 CU11 e versões posteriores, e armazenamento compatível com S3 no SQL Server 2022 (16.x) e versões posteriores. Base de Dados SQL do Azure e Azure SQL Managed Instance suportam Armazenamento de Blobs do Azure e ADLS Gen2. A base de dados SQL no Fabric suporta OneLake e armazenamento externo através de atalhos OneLake. -
BULK INSERTnão suporta ficheiros Parquet ou Delta e suporta apenas CSV ou texto delimitado.OPENROWSET(BULK ...)suportaFORMAT = 'PARQUET'eFORMAT = 'DELTA'no SQL Server 2022 (16.x) e versões posteriores, Base de Dados SQL do Azure e Azure SQL Managed Instance. A base de dados SQL no Fabric suportaFORMAT = 'PARQUET', mas nãoFORMAT = 'DELTA'. Para obter mais informações, consulte OPENROWSET BULK (Transact-SQL). -
BULK INSERTrequerADMINISTER BULK OPERATIONSouADMINISTER DATABASE BULK OPERATIONSmaisINSERTpermissão na tabela alvo, enquantoOPENROWSET(BULK ...)requerADMINISTER BULK OPERATIONSouADMINISTER DATABASE BULK OPERATIONS. -
BULK INSERTsuporta registo mínimo sob o modelo de recuperação simples ou logada em massa comTABLOCK.OPENROWSET(BULK ...)suporta registos mínimos quando é usado comINSERT ... SELECTeTABLOCK.
Quando escolher BULK INSERT
Use BULK INSERT quando tiver um carregamento simples de ficheiro para tabela e não precisar de transformar, filtrar ou juntar dados durante a importação. Utiliza uma sintaxe mais simples para ficheiros CSV ou outros ficheiros delimitados:
Esta consulta de exemplo carrega um ficheiro CSV do Armazenamento de Blobs do Azure diretamente para uma tabela.
BULK INSERT Sales.Invoices
FROM 'invoices/inv-2025-01.csv'
WITH (
DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT = 'CSV',
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
Esta consulta de exemplo carrega um ficheiro local com um ficheiro de formato para mapeamento de colunas.
BULK INSERT dbo.Products
FROM 'C:\Data\products.csv'
WITH (
FORMATFILE = 'C:\Data\products.fmt',
FIRSTROW = 2,
TABLOCK
);
Quando escolher OPENROWSET(BULK)
Use OPENROWSET(BULK ...) quando precisar de uma ou mais das seguintes condições:
- Use
OPENROWSET(BULK ...)para consultar ou pré-visualizar dados de ficheiros sem criar uma tabela primeiro. - Use
OPENROWSET(BULK ...)para transformar, filtrar ou juntar dados durante a importação. - Uso
OPENROWSET(BULK ...)para carregar ficheiros Parquet ou Delta porqueBULK INSERTnão suporta estes formatos. - Use
OPENROWSET(BULK ...)para importar um ficheiro inteiro como um único valor LOB comSINGLE_BLOB,SINGLE_CLOB, ouSINGLE_NCLOB.
Esta consulta de exemplo pré-visualiza um ficheiro CSV do Armazenamento de Blobs do Azure sem inserir os dados em lado nenhum.
SELECT TOP 10 *
FROM OPENROWSET (
BULK 'invoices/inv-2025-01.csv',
DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT = 'CSV',
FIRSTROW = 2,
FIELDTERMINATOR = ','
) AS src;
Esta consulta de exemplo insere dados com transformação e filtragem.
INSERT INTO Sales.Invoices (InvoiceDate, Amount, Customer)
SELECT CAST (InvoiceDate AS DATE),
Amount * 1.1, -- Apply a 10% markup
UPPER(Customer)
FROM OPENROWSET (
BULK 'invoices/inv-2025-01.csv',
DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT = 'CSV',
FIRSTROW = 2
) WITH (
InvoiceDate VARCHAR (10),
Amount DECIMAL (18, 2),
Customer VARCHAR (100)
) AS src
WHERE Amount IS NOT NULL;
Esta consulta de exemplo carrega um ficheiro Parquet (não possível com BULK INSERT).
INSERT INTO Sales.Invoices
SELECT *
FROM OPENROWSET (
BULK 'data/invoices/*.parquet',
DATA_SOURCE = 'MyAzureStorage',
FORMAT = 'PARQUET') AS src;
Esta consulta de exemplo importa um ficheiro XML inteiro como um único valor varbinary(max ).
INSERT INTO dbo.XmlDocuments (DocContent)
SELECT BulkColumn
FROM OPENROWSET (
BULK 'C:\Data\catalog.xml',
SINGLE_BLOB
) AS x;
Sugestão
Uma abordagem é começar com OPENROWSET(BULK ...) em SELECT para explorar e validar dados de ficheiros, depois mudar para BULK INSERT para a carga de produção final, caso não necessite de transformações. Se precisar de suporte para Parquet ou Delta ou filtragem inline, permaneça com OPENROWSET.
Para mais informações, consulte os seguintes guias relacionados:
- O artigo Use BULK INSERT ou OPENROWSET(BULK...) para importar dados para o SQL Server fornece um guia detalhado lado a lado com considerações de segurança.
- O artigo Importação e Exportação em Massa de Dados (SQL Server) fornece uma visão geral de todos os métodos de movimentação de dados em massa, incluindo bcp,
BULK INSERT, eOPENROWSET. - O BULK INSERT artigo (Transact-SQL) fornece a referência T-SQL completa para
BULK INSERT. - O artigo OPENROWSET BULK (Transact-SQL) fornece a referência T-SQL completa para
OPENROWSET(BULK ...). - O artigo Exemplos de acesso em massa a dados no Armazenamento de Blobs do Azure fornece exemplos lado a lado que utilizam ambos os métodos com o Armazenamento do Azure.
- O artigo Bulk import large object data with OPENROWSET Bulk Rowset (SQL Server) fornece
SINGLE_BLOB,SINGLE_CLOB, eSINGLE_NCLOBexemplos. - O artigo Use a format file to bulk import data (SQL Server) explica o uso de ficheiros de formato com ambos os métodos.
- Para orientações sobre como preservar nulos ou aplicar valores predefinidos durante a importação em massa, veja Manter nulos ou valores predefinidos durante a importação em massa (SQL Server).
- Para orientações sobre como preservar valores de identidade durante a importação em massa, veja Manter valores de identidade ao importar dados em massa (SQL Server).
Funções úteis de metadados
Quando consulta ficheiros externos usando OPENROWSET ou tabelas externas, utilize as funções e procedimentos incorporados para inspecionar metadados de ficheiros, descobrir esquemas e implementar consultas conscientes de partições.
filepath() e filename()
As filepath() funções e filename() retornam partes do caminho do ficheiro ou do nome do ficheiro para cada linha do conjunto de resultados. São especialmente úteis para:
Eliminação de partições: Filtre por segmentos de pasta (por exemplo, partições ano/mês/dia) para que o motor leia apenas os ficheiros correspondentes em vez de analisar tudo.
Exposição dos metadados de origem: Inclua o nome ou caminho do ficheiro de origem como uma coluna nos resultados da consulta, o que é útil para auditoria ou depuração.
| Função | Devoluções | Exemplo |
|---|---|---|
filename() |
O nome do ficheiro (incluindo extensão) do ficheiro fonte para cada linha | sales_2025_01.parquet |
filepath(N) |
O n-ésimo segmento da pasta a partir do coringa (*) no caminho BULK, onde N começa em 1 |
Para o caminho sales/2025/01/*.parquet, filepath(1) retorna 2025, filepath(2) retorna 01 |
Aplica-se a: Base de Dados SQL do Azure, Azure SQL Managed Instance, SQL Server 2022 (16.x) e versões posteriores, base de dados SQL em Fabric.
Esta consulta de exemplo serve filepath() para eliminação de partições e filename() para identificar ficheiros fonte. Só lê ficheiros na /2025/ pasta e só lê ficheiros na /06/ subpasta.
SELECT result.filename() AS SourceFile,
result.filepath(1) AS [Year],
result.filepath(2) AS [Month],
*
FROM OPENROWSET (
BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*/*/*.parquet',
FORMAT = 'PARQUET'
) AS result
WHERE result.filepath(1) = '2025'
AND result.filepath(2) = '06';
Sugestão
Coloque filepath() filtros na WHERE cláusula em vez de numa subconsulta ou CTE. Quando o filtro está na WHERE cláusula, o motor de processamento pode eliminar partições ao nível da leitura de ficheiro, o que reduz significativamente a entrada/saída.
sp_describe_first_result_set - descobrir os tipos de colunas do OPENROWSET
Quando utiliza OPENROWSET com ficheiros Parquet, o motor de processamento infere automaticamente os tipos de dados das colunas (inferência de esquema). Os tipos inferidos podem ser maiores do que o necessário. Por exemplo, as colunas de caracteres são frequentemente inferidas como varchar(8000) porque os metadados do Parquet não incluem um comprimento máximo. Esta escolha pode degradar o desempenho e consumir mais memória.
sp_describe_first_result_set Use para inspecionar o esquema inferido antes de finalizar a sua consulta. Depois de veres os tipos inferidos, especifica tipos mais restritos numa WITH cláusula para melhorar o desempenho.
Passo 1: Inspecionar o esquema inferido.
EXECUTE sp_describe_first_result_set N' SELECT * FROM OPENROWSET( BULK ''abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet'', FORMAT = ''PARQUET'' ) AS result';A saída mostra o nome de cada coluna, tipo de dado inferido, comprimento máximo, precisão e escala. Se vires varchar(8000), onde um varchar(100) seria suficiente, anula-o.
Passo 2: Use tipos explícitos para melhor desempenho.
SELECT TOP 100 * FROM OPENROWSET ( BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet', FORMAT = 'PARQUET' ) WITH ( OrderId INT, OrderDate DATE, Amount DECIMAL (18, 2), Customer VARCHAR (100) -- much narrower than the inferred varchar(8000) ) AS result;
A inferência de esquema só funciona com ficheiros Parquet. Para ficheiros CSV, especifique sempre definições de coluna numa WITH cláusula (para OPENROWSET) ou na CREATE EXTERNAL TABLE instrução.
sp_describe_first_result_seté um SQL Server geral, Base de Dados SQL do Azure, Azure SQL Managed Instance e base de dados SQL no procedimento Fabric, mas é especialmente útil para OPENROWSET consultas. Para mais informações, consulte sp_describe_first_result_set.
Desempenho, resolução de problemas e melhores práticas
Depois de implementar a virtualização de dados, utilize estes guias para otimizar o desempenho, diagnosticar problemas e garantir a prontidão para produção:
| Area | Artigo | Detalhes |
|---|---|---|
| Desempenho do PolyBase | Considerações de desempenho no PolyBase para SQL Server | Estatísticas, pushdown, paralelismo e gestão de memória |
| Cálculo por empurramento | Cálculos de pushdown no PolyBase | Especifica quais operações são enviadas para a fonte remota |
| Como saber se houve um empurrão | Como saber se ocorreu um empurrão externo | Planos de consulta e Visões de Gestão Dinâmica (DMVs) |
| Troubleshooting | Monitorar e solucionar problemas do PolyBase | Erros comuns e resoluções |
| Conectividade Kerberos | Solucionar problemas de conectividade Kerberos do PolyBase | |
| Perguntas Frequentes | Perguntas frequentes da PolyBase | |
| Erros e soluções | erros do PolyBase e possíveis soluções |