Lección 2 de 6 · 2 min
Validar la extracción: completitud
Al terminar sabrás
10 min- Comparar conteos de filas entre origen y staging para detectar pérdidas
- Verificar que los filtros de extracción (fechas, estados) son correctos
- Detectar duplicados introducidos por reejecución del proceso
Construyes: El conjunto de controles de completitud para la extracción de un ETL.
El primer control: ¿llegó todo?
Antes de mirar si los datos están bien transformados, hay que confirmar que llegaron todos. La extracción lee del origen y deja los datos crudos en una zona intermedia llamada staging. El control más básico y potente: comparar conteos.
-- En el origen (con el criterio exacto de la extracción)
SELECT COUNT(*) FROM ventas
WHERE estado = 'pagada'
AND fecha::date = '2026-07-13';
-- En el staging
SELECT COUNT(*) FROM stg_ventas;
Si esos dos números no son iguales, tienes un bug de completitud: se perdieron o se colaron filas.
El corte de fecha: el bug clásico
-- ¿Se extrajo la última venta del día?
SELECT MAX(fecha) FROM stg_ventas; -- ¿coincide con la última del origen?
Duplicados por reejecución
Los ETL a veces se reejecutan (falló a mitad, se relanza). Un proceso bien hecho es idempotente: correrlo dos veces da el mismo resultado. Si no lo es, reejecutar duplica todo:
-- ¿Hay ventas duplicadas en staging?
SELECT venta_id, COUNT(*)
FROM stg_ventas
GROUP BY venta_id
HAVING COUNT(*) > 1;
Si esto devuelve filas, la carga no controla duplicados. Es uno de los bugs más frecuentes y más caros: infla todos los totales aguas abajo.
El checklist de completitud
- Conteo origen = conteo staging (con el mismo filtro).
- Bordes: la primera y última fila del período están presentes.
- Sin duplicados por la clave del negocio (id de venta, etc.).
- Sin filas de más: ¿se colaron estados o fechas que no correspondían?
Con la extracción validada, pasamos a lo más jugoso: verificar que las transformaciones aplicaron bien las reglas de negocio.
Comprueba lo aprendido en el quiz y escribe tus controles en el reto.
Compruébalo
0/3Responde sin mirar atrás. Verás la explicación al instante.
1. El origen tiene 100.000 ventas del día; el staging quedó con 99.850. ¿Qué buscas primero?
2. Corres el ETL dos veces por error y el staging queda con el doble de filas. ¿Qué falló?
3. ¿Cuál es el control de completitud más básico entre origen y staging?
Reto: controles de completitud
Un ETL extrae las ventas de ayer (estado 'pagada') a una tabla staging. Escribe las consultas que verifican: (1) que el conteo cuadra entre origen y staging, (2) que no hay duplicados en staging por id de venta.