Nº16 · Gobierno
Great Expectations
Tests de calidad para tus datos: define expectativas y valida cada carga.
¿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
Noneo fuera del rango y.successpasa aFalse: 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éndbt
Transforma datos en tu warehouse con SQL, como si fuera código de software.
OpenMetadata
El catálogo abierto para descubrir y trazar el linaje de tus datos.
pandas
La navaja suiza para manipular y analizar datos tabulares en Python.
Nº16 · Actualizado 2026-06-26