Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 19 · Lección

EXPECT y observación

Contenido abierto

Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.

Lección 2 de 5

EXPECT y observación

Una cuarentena útil conserva la fila, procedencia, regla incumplida y versión para que pueda corregirse y reprocesarse.

Duración
17 min aprox.
Objetivo
Una cuarentena útil conserva la fila, procedencia, regla incumplida y versión para que pueda corregirse y reprocesarse.
Siguiente paso
Continuar con la siguiente lección
Ver detalles del módulo

Expectations, cuarentena y event logs

Haz visibles las decisiones de calidad y separa observación, descarte, fallo y remediación.

Al terminar podrás
  • Elegir EXPECT, DROP o FAIL
  • Diseñar una cuarentena trazable
  • Consultar métricas en event logs
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 2026
Nivel
Professional
Ruta relacionada
pipelines
Dominios blueprint
Data Transformation, Cleansing, and Quality · Monitoring
Estado
Revisión editorial interna
Fuentes principales
Manage data quality with pipeline expectations · Databricks · Pipeline event log schema · Databricks
Reportar un error
02
Implementación

EXPECT y observación

Una cuarentena útil conserva la fila, procedencia, regla incumplida y versión para que pueda corregirse y reprocesarse.

Mostrar prerrequisitos
Dificultad
Professional
Prerrequisitos
m18
Reportar un error en esta lección

Descartar con una expectation no crea automáticamente una tabla de cuarentena. El patrón explícito clasifica una vista común en salida válida e inválida. La rama inválida añade `failure_reasons`, timestamp, source file u offset y versión de pipeline; la rama válida aplica las mismas condiciones complementarias.

La cuarentena necesita política de acceso porque puede contener PII, retención y un flujo de remediación. Reinyectar datos corregidos directamente en silver salta trazabilidad; conviene publicar una nueva entrada con identidad estable o una tabla de correcciones que pase por las mismas reglas.

Modelo mental

Cuarentena no significa una carpeta donde los datos malos desaparecen; es un producto operativo con identidad, procedencia, causa, estado y ruta de reingreso. El patrón más explicable evalúa reglas una vez, añade un mapa o array de violaciones y divide el DataFrame en válido e inválido. La fila de cuarentena conserva payload original, campos parseados, fuente, coordenada, versión de contrato, tiempo de detección y nombres de reglas. Una reparación produce una nueva versión o evento, no modifica silenciosamente la evidencia. El reingreso utiliza la misma clave de negocio e idempotencia para evitar duplicar el target. Los datos pueden contener PII, por lo que cuarentena necesita controles de acceso y retención al menos tan estrictos como producción. Sus métricas revelan deuda: volumen entrante, edad, porcentaje corregido y causas recurrentes con owner.

Provenance

Metadatos que identifican origen, posición, versión y transformación mediante los cuales una fila llegó a la decisión de cuarentena.

Permite reproducir el fallo, localizar productores responsables y demostrar que una corrección corresponde al registro exacto.
Estado de remediación

Ciclo explícito de una anomalía, por ejemplo pendiente, investigada, corregida, descartada o reingresada con referencia a evidencia.

Convierte cuarentena en una cola gobernada y permite medir deuda y cumplimiento de tiempos de resolución.
Reingreso idempotente

Proceso que devuelve una fila corregida al flujo canónico sin crear más de una entidad o aplicar dos veces el mismo cambio.

Evita que solucionar calidad introduzca duplicados y conserva una historia auditable de la reparación.
PySparkClasificación con motivos de rechazo
from pyspark.sql import functions as F

classified = (
    spark.readStream.table("orders_bronze")
      .withColumn(
          "failure_reasons",
          F.array_compact(F.array(
              F.when(F.col("order_id").isNull(), F.lit("MISSING_ORDER_ID")),
              F.when(F.col("amount") < 0, F.lit("NEGATIVE_AMOUNT")),
              F.when(F.col("event_ts").isNull(), F.lit("INVALID_EVENT_TS")),
          ))
      )
)

valid = classified.where("size(failure_reasons) = 0")
quarantine = classified.where("size(failure_reasons) > 0")

Usa una función compartida para que la condición válida sea exactamente el complemento de la cuarentena.

Puntos clave

  • Válidos e inválidos deben derivarse de una única clasificación para evitar huecos.
  • Cada fila inválida conserva evidencia suficiente para diagnóstico y replay.
  • La remediación vuelve a entrar por una frontera gobernada y evita doble conteo.

Evita

  • Definir filtros independientes para válidos e inválidos y dejar filas que no caen en ninguna rama.
  • Guardar solo un conteo de errores, sin payload ni procedencia para repararlos.

Recuerdo activo

¿Qué propiedad evita perder o duplicar filas entre silver y cuarentena?

Borrador privado · solo en este navegador
5 lecciones pendientes

Fuente revisada · vista externa

Lakeflow Declarative Pipelines examples

Lakeflow Declarative Pipelines examples · commit 1d8b163

python/Retail Sales.py

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
Databricks
Licencia
No verificada
Formato
repository
Ver notebook en GitHub