(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo exportar datos de Warehouse a Lakehouse en Microsoft Fabric: paso a paso

João Barros 21 de August de 2026 5 min de lectura

Esta guía muestra cómo exportar datos de un Warehouse a un Lakehouse en Microsoft Fabric de forma controlada, manteniendo el esquema y aplicando transformaciones ligeras. Esta tarea es útil cuando necesita consolidar datos en un Lakehouse para análisis en Power BI, reducir costes de almacenamiento del Warehouse o preparar datos para pipelines ETL posteriores. El objetivo es tener un proceso fiable que preserve tipos, permisos y permita una validación simple tras la copia.

Requisitos previos

  • Cuenta con acceso a un workspace en Microsoft Fabric y permisos de lectura en el Warehouse y escritura en el Lakehouse. Idealmente la identidad usada tiene permisos RBAC mínimos por seguridad.
  • Un Warehouse con una tabla de ejemplo disponible (por ejemplo, 1M filas, ~500 MB) para probar antes de cargas mayores.
  • Un Lakehouse creado con espacio suficiente y permisos de escritura; verifique cuotas del espacio OneLake (por ejemplo, 100 GB libres para pruebas) y la ruta abfss donde se guardarán los archivos Parquet.
  • Conocimientos básicos de SQL/T-SQL y acceso al SQL Editor del Warehouse o Notebooks T-SQL para ejecutar consultas y scripts de carga.

Paso 1: Planificar el mapeo de esquema

Antes de copiar los datos, compare el esquema de la tabla en el Warehouse con la tabla destino en el Lakehouse. Haga un pequeño inventario: nombres de columnas, tipos (BIGINT vs INT, VARCHAR vs NVARCHAR), nullability y tipos de datos con precisión decimal. Decida si va a mantener el mismo nombre de columnas, cambiar tipos para compatibilidad (por ejemplo, convertir FLOAT a DECIMAL(18,4)), o añadir columnas de auditoría como load_timestamp, source_system o batch_id. Para tablas grandes, piense en particionar por fecha (por ejemplo, partition_date) para archivos Parquet más pequeños y consultas más rápidas.

Paso 2: Crear la tabla destino en el Lakehouse

Crear la tabla en el Lakehouse con el esquema deseado. En Microsoft Fabric, use el SQL Editor del Warehouse (o un Notebook T-SQL) apuntando a la ruta OneLake del Lakehouse. Un método sencillo es crear una tabla externa apuntando a un directorio del Lakehouse. Si prevé cargas incrementales, planifique particionado por una columna como load_date para reducir archivos y mejorar lectura en Power BI.

-- Exemplo T-SQL para criar uma tabela externa parquet no Lakehouse
CREATE EXTERNAL TABLE lakehouse_schema.target_table (
  id BIGINT,
  name VARCHAR(200),
  amount DECIMAL(18,2),
  load_timestamp DATETIME2
)
WITH (
  LOCATION = 'abfss://@.dfs.core.windows.net/lakehouse/path/target_table/',
  FILE_FORMAT = (TYPE = PARQUET)
);

Paso 3: Extraer y transformar datos del Warehouse

Ejecute una consulta en el Warehouse para seleccionar y transformar los datos. Aquí puede filtrar (por ejemplo, is_active = 1), agregar o convertir tipos para compatibilidad con el Lakehouse. Añada una columna de auditoría si es necesario. Para volúmenes medios (100k–1M filas) la transformación en memoria es rápida; para decenas de millones considere transformar por lotes (batch) para reducir uso de memoria. Ejemplos de transformaciones prácticas: normalizar texto con UPPER/LOWER, redondear decimales y convertir zonas horarias a UTC.

-- Exemplo de SELECT transformador no Warehouse
SELECT
  id,
  UPPER(name) AS name,
  CAST(amount AS DECIMAL(18,2)) AS amount,
  SYSUTCDATETIME() AS load_timestamp
FROM schema.source_table
WHERE is_active = 1;

Paso 4: Exportar los datos al Lakehouse

Existen dos formas comunes: (A) copiar directamente con INSERT INTO ... SELECT apuntando a la tabla externa del Lakehouse; (B) exportar a archivo Parquet y escribir en la ruta del Lakehouse usando utilidades. El método A es directo y simple para cargas únicas o recurrentes sencillas. Para cargas incrementales, considere INSERT INTO por partición o usar INSERT OVERWRITE en conjuntos particionados. Para grandes volúmenes, se recomienda probar con lotes de 100k–500k filas y verificar el tamaño medio de los archivos Parquet (idealmente 64–256 MB para un buen equilibrio entre I/O y paralelismo).

-- Método A: Inserir directamente na tabela externa do Lakehouse
INSERT INTO lakehouse_schema.target_table
SELECT
  id,
  UPPER(name) AS name,
  CAST(amount AS DECIMAL(18,2)) AS amount,
  SYSUTCDATETIME() AS load_timestamp
FROM schema.source_table
WHERE is_active = 1;

Paso 5: Validar escritura y gestionar permisos

Tras la inserción, verifique que los archivos Parquet se han escrito en la ruta del Lakehouse y ajuste permisos si es necesario. Garantice que las identidades (managed identity, service principal o usuario) tienen acceso a OneLake/Storage con los permisos necesarios (Write/List). Valide integridad con conteos: SELECT COUNT(*) en la tabla fuente vs tabla del Lakehouse y, si es necesario, muestras con CHECKSUM de las columnas críticas para detectar pérdidas o truncamientos. Para cargas de producción, registre la identidad usada y cree alertas para errores de permiso o cuotas.

-- Consulta de validação simples na tabela do Lakehouse
SELECT TOP 10 * FROM lakehouse_schema.target_table ORDER BY load_timestamp DESC;

Verificar el resultado

Confirme que: (1) el número de filas en la tabla destino corresponde a lo esperado (por ejemplo, 1.000.000 filas); (2) los tipos y formatos son correctos (decimales, fechas en UTC); (3) los archivos Parquet aparecen en el directorio del Lakehouse con tamaños razonables; (4) aplicaciones como Power BI pueden leer la tabla y responder a consultas en tiempo aceptable. Ejecute conteos por partición y muestras de valores críticos. Una verificación práctica: SELECT COUNT(*), MIN(load_timestamp), MAX(load_timestamp) para validar la ventana temporal.

Conclusión

Ahora dispone de un proceso sencillo y replicable para exportar datos de un Warehouse a un Lakehouse en Microsoft Fabric manteniendo esquema y aplicando transformaciones ligeras. Próximos pasos: automatizar con Pipelines en el Data Factory del Fabric, crear snapshots con Time Travel o implementar cargas incrementales con watermarking. Consejo práctico: registre siempre la identidad usada para escritura, defina límites de lote para grandes cargas y verifique cuotas antes de cargas masivas para evitar interrupciones.