Como criar uma Foreign Table em Lakehouse no Microsoft Fabric
Este tutorial mostra como criar uma Foreign Table no Lakehouse do Microsoft Fabric para consultar dados externos (por exemplo, um ficheiro Parquet ou uma tabela externa). A Foreign Table permite expandir o Lakehouse com fontes externas sem copiar dados, útil para integrar sistemas e reduzir duplicação.
Pré-requisitos
- Conta com acesso ao Microsoft Fabric e permissões para editar um Lakehouse.
- Um Lakehouse existente no OneLake ou permissão para criar um novo.
- Fonte externa acessível (ex.: ficheiro Parquet no OneLake ou endpoint externo com credenciais).
- Conhecimentos básicos de T-SQL para executar comandos no Notebook ou Warehouse.
Passo 1: Preparar a fonte externa e obter o caminho
Identifique a fonte externa que pretende usar. Se for um ficheiro Parquet no OneLake, copie o caminho relativo no Lakehouse. Se for um endpoint externo, confirme o URL e as credenciais. A Foreign Table cria um apontador lógico para essa localização.
Passo 2: Abrir um Notebook ou Warehouse para executar T-SQL
Escolha onde vai executar os comandos: um Notebook com linguagem T-SQL ou um Warehouse (T-SQL). Abra o recurso e ligue-o ao Lakehouse onde vai criar a Foreign Table. Utilizar uma sessão T-SQL permite criar objetos e efectuar queries imediatas.
Passo 3: Criar um data source externo (opcional conforme necessário)
Algumas fontes exigem primeiro definir um data source externo com as credenciais ou configurações de acesso. Para OneLake/paths simples, pode não ser necessário. Exemplo de criação de data source para um endpoint suportado:
CREATE EXTERNAL DATA SOURCE MyExternalSource
WITH (
LOCATION = 'abfss://@.dfs.core.windows.net/folder/',
CREDENTIAL = MyCredential
);
Substitua MyCredential por uma credencial previamente criada no ambiente, se necessário.
Passo 4: Criar a Foreign Table com T-SQL
Use CREATE EXTERNAL TABLE ou CREATE FOREIGN TABLE conforme o suporte do Fabric para mapear a estrutura da origem. Aqui fica um exemplo genérico que aponta para um ficheiro Parquet num caminho do Lakehouse.
CREATE EXTERNAL TABLE dbo.ForeignSales (
SaleID bigint,
SaleDate datetime2,
Amount decimal(18,2)
)
WITH (
LOCATION = '/lakehouse/path/to/folder/sales.parquet',
DATA_SOURCE = MyExternalSource,
FILE_FORMAT = 'Parquet'
);
Se a sua origem for uma pasta com vários ficheiros Parquet, a LOCATION pode apontar para a pasta. Se não usou DATA_SOURCE, especifique apenas o LOCATION absoluto no OneLake.
Passo 5: Definir esquemas e tipos compatíveis
Confirme que os tipos T-SQL que definiu correspondem aos dados reais. Erros comuns: tipos incompatíveis (ex.: datetime vs string) ou campos nulos sem permitir NULL. Ajuste a definição da tabela conforme necessário.
Passo 6: Testar consultas e desempenho
Depois de criada a Foreign Table, execute queries para validar. Evite SELECT * em grandes volumes; filtre e limite para testar. Se necessário, crie vistas ou materializações no Lakehouse para melhorar o desempenho.
-- Teste simples
SELECT TOP 10 SaleID, SaleDate, Amount
FROM dbo.ForeignSales
ORDER BY SaleDate DESC;
-- Contagem para validar volume
SELECT COUNT(*) AS TotalRows FROM dbo.ForeignSales;
Verificar o resultado
Confirme que as queries retornam os dados esperados e que os tipos observados fazem sentido. Verifique a existência do objecto com um catalog lookup e inspecione metadados. Erros comuns incluem caminhos incorrectos, permissões e formatos de ficheiro. Se não houver resultados, valide o LOCATION e as permissões do data source.
Conclusão
Criar uma Foreign Table no Lakehouse do Microsoft Fabric permite consultar dados externos sem duplicar ficheiros, facilitando integração e economia de espaço. Passos seguintes: criar vistas que unam dados externos com tabelas internas, ou materializar resultados para optimizar o desempenho. Dica: ao testar, comece sempre com LIMIT/TOP para evitar surpresas de custo e desempenho — que fonte pretende ligar a seguir?