Como criar uma External Table em Warehouse do Microsoft Fabric: passo a passo
Este tutorial mostra como criar uma External Table num Warehouse do Microsoft Fabric para consultar dados armazenados num Lakehouse sem copiar os ficheiros. Criar uma External Table é útil para manter os dados centralizados em OneLake/Lakehouse e ter acesso T-SQL rápido a partir de um Warehouse.
Pré-requisitos
- Conta com acesso a um workspace no Microsoft Fabric e permissões para criar Warehouse e aceder a um Lakehouse.
- Um Lakehouse com uma tabela ou ficheiro (por exemplo, parquet) já carregado.
- Conhecimentos básicos de T-SQL no contexto do Warehouse do Microsoft Fabric.
Passo 1: Confirmar o path do Lakehouse e o formato dos ficheiros
Precisamos de saber o caminho (shortcuts ou path do OneLake) onde estão os ficheiros ou a tabela no Lakehouse. No Hub do Fabric, abra o Lakehouse, localize a tabela ou ficheiro e copie o path do directório ou o nome da tabela. Confirme também o formato (parquet, csv, delta).
Passo 2: Abrir o Warehouse e criar uma nova query T-SQL
Abra o Warehouse onde pretende criar a External Table. No Warehouse, utilize uma nova query T-SQL para criar a definição da tabela externa. A sintaxe usa CREATE EXTERNAL TABLE com a especificação do LOCATION apontando para o path do Lakehouse (Direct Lake/OneLake). Aqui fica um exemplo mínimo para ficheiros Parquet.
CREATE EXTERNAL TABLE dbo.ExternalSales
(
OrderID bigint,
CustomerID varchar(50),
OrderDate datetime2,
Amount decimal(18,2)
)
WITH (
LOCATION = 'OneLake:////Lakehouse//sales/',
DATA_SOURCE = 'FabricDirectLake',
FILE_FORMAT = 'Parquet'
);
Notas: DATA_SOURCE pode ser um nome lógico já existente; se não existir, crie-o no passo seguinte. LOCATION deve ser o path correcto para o ficheiro/parquet no Lakehouse.
Passo 3: Criar um EXTERNAL DATA SOURCE (se necessário)
Se o seu Warehouse não tiver um DATA_SOURCE que aponte para OneLake/Direct Lake, crie-o. Isto permite ao Warehouse perceber como aceder ao Lakehouse.
CREATE EXTERNAL DATA SOURCE FabricDirectLake
WITH (
LOCATION = 'OneLake:///',
TYPE = HADOOP
);
Substitua <TenantName> pelo seu identificador. TYPE = HADOOP é a opção comum para ligação a OneLake/Direct Lake no contexto do Warehouse.
Passo 4: Criar um FILE FORMAT (se necessário)
Se for necessário definir o formato do ficheiro (por exemplo CSV com separador específico), crie um FILE FORMAT. Para Parquet normalmente não é obrigatório, mas para CSV é importante.
CREATE EXTERNAL FILE FORMAT CsvFormat
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 1
)
);
Passo 5: Criar a External Table apontando para uma tabela Delta
Para Delta Lake (comum em Lakehouse), a LOCATION aponta para a pasta Delta. Use FILE_FORMAT = 'Delta' ou ajuste conforme necessário.
CREATE EXTERNAL TABLE dbo.ExternalDeltaOrders
(
OrderID bigint,
Status varchar(50),
ModifiedAt datetime2
)
WITH (
LOCATION = 'OneLake:////Lakehouse/delta/orders/',
DATA_SOURCE = 'FabricDirectLake',
FILE_FORMAT = 'Delta'
);
Passo 6: Testar consultas e lidar com erros comuns
Após criar a External Table execute SELECT simples. Erros comuns: permissões insuficientes (403/401), path incorrecto, ou DATA_SOURCE mal configurado. Para permissões, confirme o papel no Lakehouse e no workspace; para path, verifique capitalização e nome das pastas.
SELECT TOP (100) *
FROM dbo.ExternalSales
ORDER BY OrderDate DESC;
Se receber erro de formato, experimente criar/ajustar o EXTERNAL FILE FORMAT. Se o desempenho for lento, verifique partições no Lakehouse e se o ficheiro está em parquet/Delta.
Verificar o resultado
Confirme que a query retorna linhas e que os tipos de dados estão correctos. Verifique também no painel do Warehouse que a External Table aparece na lista de objectos. Para testes adicionais, compare contagens entre a External Table e a fonte original no Lakehouse:
SELECT COUNT(*) AS CountWarehouse FROM dbo.ExternalSales;
-- comparar com contagem no Lakehouse (por ex., abrir a tabela no Lakehouse UI)
Conclusão
Criar uma External Table num Warehouse do Microsoft Fabric permite consultar dados do Lakehouse sem duplicar, mantendo governação e performance conforme o formato (Parquet/Delta). Próximos passos recomendados: testar partições, criar views T-SQL sobre a External Table e monitorizar custos de egresso. Dica: se encontrar erros de permissão, confirme a integração entre o workspace e o OneLake e as roles do seu utilizador.