Saltar al contenido

Proyecto pipelines

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar progreso

Lección 3 de 5

Expectations y cuarentena

Calidad se diseña como rutas: observación para señales, cuarentena para filas reparables y fallo para invariantes que invalidan el target.

30 min aprox.

Detalles

Proyecto de pipeline declarativo

Construye una cadena declarativa con calidad, CDC, orquestación y operación documentada.

Reto observable

Entrega un pipeline declarativo productivo con calidad, CDC y operación, y demuestra despliegue, backfill, fallo controlado y recuperación.

Al terminar podrás
  • Entregar datasets incrementales fiables
  • Probar dependencias y reglas
  • Operar fallos y backfills
Prerrequisitos
m21
Última revisión
25 ago 2026
Nivel
Professional
Ruta relacionada
pipelines
Dominios blueprint
Production pipelines
Estado
Revisión editorial interna
Fuentes principales
Best practices for Spark Declarative Pipelines · Databricks · AUTO CDC APIs · Databricks
Reportar un error
03
Operación

Expectations y cuarentena

Calidad se diseña como rutas: observación para señales, cuarentena para filas reparables y fallo para invariantes que invalidan el target.

Pedidos sin ID van a cuarentena con archivo y motivo. Monedas desconocidas pueden observarse mientras negocio decide. Un importe negativo en una tabla financiera puede fallar la actualización. La clasificación compartida evita que una fila desaparezca entre filtros inconsistentes.

El event log alimenta un dashboard por update y flow. La aceptación incluye casos para cada acción, una tasa máxima y un procedimiento de reentrada. Proteger la cuarentena con permisos más estrictos evita convertir observabilidad en fuga de PII.

PySparkContrato crítico en silver
@dp.table(name="orders_silver")
@dp.expect("known_currency", "currency IN ('EUR', 'USD', 'GBP')")
@dp.expect_or_fail("non_negative_amount", "amount >= 0")
def orders_silver():
    return (
        spark.readStream.table("orders_classified")
          .where("size(failure_reasons) = 0")
          .drop("failure_reasons")
    )

La rama `orders_quarantine` materializa las filas donde `failure_reasons` no está vacía.

¿Qué evidencia demuestra que una regla de cuarentena funciona?

Profundiza

La calidad productiva se diseña como rutas y umbrales, no como una colección de constraints idénticas. Observación conserva y mide anomalías tolerables; cuarentena aísla filas reparables con procedencia; fail protege invariantes que harían inválido todo el target. Una misma regla puede evolucionar entre rutas después de medir impacto, pero el cambio se versiona. La arquitectura evalúa reglas comunes una vez y deriva flows coherentes, evitando que válido y cuarentena discrepen. Un umbral agregado puede escalar de drop a fallo cuando la tasa sugiere problema sistémico. El event log aporta métricas por expectation y una tabla operacional conserva tendencias y ownership. Para eventos con PII, muestras y cuarentena se enmascaran y gobiernan. Reingreso usa el mismo contrato y clave, y la salida final no se declara correcta hasta reconciliar filas válidas, descartadas y pendientes.

Ruta de observación

Tratamiento que conserva filas y publica métricas de una regla para calibrar riesgo sin alterar inmediatamente la salida procesada.

Permite introducir controles nuevos y estimar falsos positivos antes de decidir una acción destructiva o bloqueante.
Ruta de cuarentena

Tratamiento que aparta registros reparables del target canónico conservando payload mínimo, procedencia, reglas, owner y estado de remediación.

Protege consumidores sin perder capacidad de investigación, corrección y reingreso idempotente.
Invariante bloqueante

Propiedad cuya violación impide interpretar o reconciliar el conjunto completo y obliga a abortar la actualización afectada.

Justifica fail por impacto estructural y evita usarlo indiscriminadamente para cualquier anomalía opcional.
Resumen

Puntos clave

  • Regla, acción y remediación se prueban conjuntamente.
  • Cuarentena es un producto operado con retención y acceso, no un vertedero permanente.
  • Event log ofrece métricas; reconciliación externa valida completitud y exactitud.

Evita

  • Aplicar `expect_or_drop` y afirmar que existe cuarentena aunque no se conserve la fila.
  • Fallar por una regla reparable de baja severidad y consumir innecesariamente el SLO de frescura.

Fuente revisada · vista externa

Databricks Free Declarative Pipelines

Databricks Free Declarative Pipelines · commit a515370

docs/3-2-building-bronze-sql.md

Lectura en GitHub

Este notebook se abre desde su fuente revisada

El repositorio no permite republicar su contenido dentro de Lakehouse Lab. Conservamos la misma experiencia lateral, la ruta exacta y el commit auditado, y dejamos la lectura en GitHub para respetar la autoría.

Autor
andkret
Licencia
No verificada
Formato
project
Ver notebook en GitHub ↗

Módulo 22

Contenido del módulo