Cargar la tabla entera cada noche funciona… hasta que la tabla tiene cien millones de filas. La carga incremental solo trae lo que cambió desde la última ejecución. Es más rápida, más barata y —bien hecha— mucho más robusta.
El patrón watermark
Un watermark es una marca que recuerda hasta dónde leíste la última vez: normalmente una columna de fecha de modificación o un id autoincremental. En cada ejecución lees solo las filas por encima de esa marca y, al terminar, la actualizas.
-- Última marca procesada para esta tabla
SELECT COALESCE(MAX(ultima_marca), '1900-01-01') AS wm
FROM control.watermarks
WHERE tabla = 'ventas'; Lee solo lo nuevo
Con la marca en la mano, parametriza la consulta de origen para traer únicamente lo modificado después de ella. Pasa la marca como parámetro del pipeline, nunca la incrustes en el código.
SELECT *
FROM origen.ventas
WHERE modificado_en > '@{pipeline().parameters.watermark}'; Usa mayor estricto (>) y no >= sobre la marca, o reprocesarás la última fila en cada ejecución. Y guarda la marca solo si el upsert terminó bien.
Upsert idempotente con MERGE
El destino se actualiza con MERGE: actualiza lo que ya existe, inserta lo nuevo. Así, reejecutar el pipeline tras un fallo no duplica nada —la propiedad que de verdad te salva a las 3 de la madrugada.
MERGE INTO silver.ventas AS t
USING staging.ventas AS s
ON t.venta_id = s.venta_id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *; Control de errores que no te deja a ciegas
- Envuelve la extracción y el upsert en una rama con manejo de fallo explícito.
- Actualiza el watermark solo en la rama de éxito.
- Registra cada ejecución (filas leídas, escritas, duración) en una tabla de control.
- Configura alertas: un pipeline que falla en silencio es peor que uno que no existe.
Con watermark, lectura incremental, MERGE idempotente y control de errores tienes una carga que se recupera sola. En el próximo artículo la conectamos al modelo semántico con DirectLake.
Kilian Baccaro Salinas
Arquitecto de Datos especializado en Microsoft Fabric.