Calidad, idempotencia y reprocesos
Un pipeline serio asume que algo fallara: la fuente cambiara, llegaran duplicados, un fichero estara incompleto o una ejecucion se quedara a medias.
Calidad de datos
Los controles de calidad detectan datos invalidos antes de que contaminen capas posteriores.
Validaciones frecuentes:
- Columnas obligatorias.
- Tipos correctos.
- Rangos validos.
- Valores permitidos.
- Claves no nulas.
- Duplicados.
- Integridad referencial.
- Volumen esperado.
- Frescura del dato.
Ejemplo:
regla: importe >= 0
accion si falla: enviar fila a cuarentena
severidad: errorCuarentena
La cuarentena es una zona donde se guardan registros rechazados con el motivo del fallo.
Debe incluir:
- Payload original o fila rechazada.
- Regla incumplida.
- Fecha de ejecucion.
- Identificador del pipeline.
- Version del codigo o del flujo.
- Mensaje de error.
No descartes datos silenciosamente. Lo que hoy parece basura puede ser necesario para depurar una incidencia.
Idempotencia
Un pipeline es idempotente si puedes ejecutarlo varias veces con la misma entrada y obtener el mismo resultado final.
Tecnicas habituales:
- Usar claves naturales o ids de evento.
- Escribir por particion y reemplazar solo esa particion.
- Hacer
mergeen vez deappendciego. - Deduplicar antes de publicar.
- Registrar lotes procesados.
- Usar nombres de salida deterministas.
Ejemplo conceptual:
entrada: ventas del 2026-06-24
salida: curated.ventas partition fecha=2026-06-24
reproceso: reemplaza solo esa particionReintentos
No todos los fallos son iguales:
- Transitorios: timeout, red, API temporalmente caida.
- De datos: campo obligatorio vacio, tipo inesperado.
- De contrato: columna eliminada o semantica cambiada.
- De capacidad: falta de memoria, disco o cuota.
Los fallos transitorios pueden reintentarse. Los fallos de datos deben aislarse o bloquear la publicacion segun criticidad.
Reprocesos
Un reproceso debe ser una operacion normal, no una aventura.
Define:
- Que unidad se reprocesa: dia, hora, particion, lote, offset o id.
- Donde esta la entrada original.
- Como se borra o reemplaza la salida.
- Como se evitan duplicados.
- Que downstream debe recalcularse.
- Como se informa al consumidor.
Publicacion atomica
Evita que los consumidores lean datos a medio escribir.
Estrategias:
- Escribir en tabla temporal y renombrar.
- Escribir particion completa y publicar marcador de exito.
- Usar transacciones si el destino lo soporta.
- Separar zona interna de zona publicada.
Checklist
- Los errores de datos quedan guardados con causa.
- La ejecucion registra version, ventana y parametros.
- Repetir una ejecucion no duplica datos.
- Existe un procedimiento claro de reproceso.
- Los consumidores no ven resultados parciales.
- Hay reglas para decidir si se publica con rechazos o se bloquea.
