Curaduría open-source · Python-first · en español

El catálogo

Nº16 · Gobierno

Great Expectations

Tests de calidad para tus datos: define expectativas y valida cada carga.

Librería / frameworkIntermedioData Engineerpython

¿Qué es?

Great Expectations (GX) es un framework open-source de calidad y validación de datos en Python. Defines "expectativas" — reglas verificables como no nulos, valores en rango, unicidad o formato — y validas cada dataset o carga contra ellas, obteniendo un resultado claro de qué pasó y qué falló.

La idea central: tratar la calidad de los datos como se trata el código, con tests automáticos y reportes legibles en vez de revisiones manuales o sorpresas en producción.

¿Para qué sirve?

  • Tests automáticos en pipelines. Insertas una validación entre la ingesta y el consumo: si los datos no cumplen las reglas, el pipeline falla o alerta antes de propagar el problema.
  • Atrapar datos malos a tiempo. Detecta nulos inesperados, valores fuera de rango o duplicados antes de que rompan un dashboard, un modelo o un reporte downstream.
  • Documentación de datos. GX genera reportes de calidad legibles (Data Docs) que muestran qué reglas existen y cómo se comportaron las últimas cargas.
  • Contrato de datos. Las expectativas funcionan como un contrato explícito entre quien produce y quien consume un dataset.

¿Cuándo usarla / cuándo no?

Úsala cuando la confianza en los datos importa y hay pipelines de por medio: ingestas recurrentes, datos de terceros, tablas que alimentan decisiones o modelos. Su librería rica de expectativas y los reportes legibles brillan cuando la calidad es crítica.

Piénsalo dos veces para:

  • Casos chicos dentro de dbt. Si ya transformas con dbt, los tests integrados (dbt test: not_null, unique, accepted_values) suelen bastar y viven junto al modelo. GX aporta valor cuando necesitas reglas más ricas, reportes, o validar fuera de dbt.
  • Catálogo y linaje. GX no descubre activos ni mapea dependencias entre tablas — eso es trabajo de OpenMetadata. GX responde "¿estos datos cumplen las reglas?", no "¿qué datos existen y de dónde vienen?".

Empieza en 1 minuto

Valida un DataFrame de pandas con un par de expectativas usando la API moderna de GX.

pip install great_expectations
import pandas as pd
import great_expectations as gx

df = pd.DataFrame({
    "pais": ["PE", "CL", "AR"],
    "monto": [100, 80, 50],
})

batch = gx.get_context().data_sources \
    .add_pandas("ventas").read_dataframe(df)

# Expectativa 1: la columna 'pais' nunca es nula
print(batch.validate(
    gx.expectations.ExpectColumnValuesToNotBeNull(column="pais")
).success)  # True

# Expectativa 2: 'monto' está entre 0 y 1000
print(batch.validate(
    gx.expectations.ExpectColumnValuesToBeBetween(
        column="monto", min_value=0, max_value=1000)
).success)  # True

Cambia un valor a None o fuera del rango y .success pasa a False: ahí ves a GX atrapando el dato malo antes de que avance.

Trivia rápida — pon a prueba lo que acabas de leer.

¿Qué tanto sabes de Great Expectations?

Documentación oficial

La fuente de verdad vive ahí. Acá orientamos; la profundidad la pones tú.

Abrir documentación oficial

Qué aprender después

Ver también

Nº16 · Actualizado 2026-06-26