Cómo crear una Foreign Table en Lakehouse en Microsoft Fabric
Este tutorial muestra cómo crear una Foreign Table en el Lakehouse de Microsoft Fabric para consultar datos externos (por ejemplo, un archivo Parquet o una tabla externa). La Foreign Table permite ampliar el Lakehouse con fuentes externas sin copiar datos, útil para integrar sistemas y reducir duplicación.
Requisitos previos
- Cuenta con acceso a Microsoft Fabric y permisos para editar un Lakehouse.
- Un Lakehouse existente en OneLake o permiso para crear uno nuevo.
- Fuente externa accesible (p. ej.: archivo Parquet en OneLake o endpoint externo con credenciales).
- Conocimientos básicos de T-SQL para ejecutar comandos en el Notebook o Warehouse.
Paso 1: Preparar la fuente externa y obtener la ruta
Identifique la fuente externa que quiere usar. Si es un archivo Parquet en OneLake, copie la ruta relativa en el Lakehouse. Si es un endpoint externo, confirme la URL y las credenciales. La Foreign Table crea un apuntador lógico a esa ubicación.
Paso 2: Abrir un Notebook o Warehouse para ejecutar T-SQL
Elija dónde va a ejecutar los comandos: un Notebook con lenguaje T-SQL o un Warehouse (T-SQL). Abra el recurso y conéctelo al Lakehouse donde va a crear la Foreign Table. Usar una sesión T-SQL permite crear objetos y efectuar consultas inmediatas.
Paso 3: Crear un data source externo (opcional según sea necesario)
Algunas fuentes requieren primero definir un data source externo con las credenciales o configuraciones de acceso. Para OneLake/rutas simples, puede no ser necesario. Ejemplo de creación de data source para un endpoint soportado:
CREATE EXTERNAL DATA SOURCE MyExternalSource
WITH (
LOCATION = 'abfss://@.dfs.core.windows.net/folder/',
CREDENTIAL = MyCredential
);
Reemplace MyCredential por una credencial previamente creada en el entorno, si es necesario.
Paso 4: Crear la Foreign Table con T-SQL
Use CREATE EXTERNAL TABLE o CREATE FOREIGN TABLE según el soporte de Fabric para mapear la estructura del origen. Aquí hay un ejemplo genérico que apunta a un archivo Parquet en una ruta del 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'
);
Si su origen es una carpeta con varios archivos Parquet, la LOCATION puede apuntar a la carpeta. Si no usó DATA_SOURCE, especifique solo la LOCATION absoluta en OneLake.
Paso 5: Definir esquemas y tipos compatibles
Confirme que los tipos T-SQL que definió coinciden con los datos reales. Errores comunes: tipos incompatibles (p. ej.: datetime vs string) o campos nulos sin permitir NULL. Ajuste la definición de la tabla según sea necesario.
Paso 6: Probar consultas y rendimiento
Tras crear la Foreign Table, ejecute consultas para validar. Evite SELECT * en volúmenes grandes; filtre y limite para probar. Si es necesario, cree vistas o materializaciones en el Lakehouse para mejorar el rendimiento.
-- Prueba simple
SELECT TOP 10 SaleID, SaleDate, Amount
FROM dbo.ForeignSales
ORDER BY SaleDate DESC;
-- Conteo para validar volumen
SELECT COUNT(*) AS TotalRows FROM dbo.ForeignSales;
Verificar el resultado
Confirme que las consultas devuelven los datos esperados y que los tipos observados tienen sentido. Revise la existencia del objeto con un catalog lookup e inspeccione metadatos. Errores comunes incluyen rutas incorrectas, permisos y formatos de archivo. Si no hay resultados, valide la LOCATION y los permisos del data source.
Conclusión
Crear una Foreign Table en el Lakehouse de Microsoft Fabric permite consultar datos externos sin duplicar archivos, facilitando la integración y el ahorro de espacio. Pasos siguientes: crear vistas que unan datos externos con tablas internas, o materializar resultados para optimizar el rendimiento. Consejo: al probar, empiece siempre con LIMIT/TOP para evitar sorpresas de coste y rendimiento — ¿qué fuente quiere conectar a continuación?