
Great Expectations – Aseguramiento de la calidad de datos#
Los datos defectuosos producen decisiones erróneas. Los analistas y los ingenieros de datos necesitan comprobaciones fiables y repetibles — detectar nulos inesperados, valores fuera de rango y violaciones de reglas de negocio — antes de que los datos lleguen a informes o modelos.
Great Expectations (GE) convierte la calidad de los datos en afirmaciones legibles y comprobables llamadas «expectations». Puedes crear expectations manualmente, generarlas a partir de muestras y ejecutar validaciones en notebooks, en CI, en pipelines programados o en trabajos por lotes.
Características clave#
- Escribir expectations legibles para la validación de datos
- Generar expectations automáticamente a partir de conjuntos de datos existentes
- Integración sencilla con herramientas como Airflow y dbt
- Crear reglas de validación personalizadas para dominios específicos
Ejemplos rápidos (Python)#
Instalación: pip install great_expectations
- Comprobaciones rápidas con pandas (útil para notebooks y validaciones rápidas)
# Ejemplo: validar un DataFrame de pandas con ge.from_pandas
import pandas as pd
import great_expectations as ge
df = pd.DataFrame({"age": [25, None, 40], "score": [80, 95, 102]})
gdf = ge.from_pandas(df)
gdf.expect_column_values_to_not_be_null("age")
gdf.expect_column_values_to_be_between("score", min_value=0, max_value=100)
results = gdf.validate()
print(results["statistics"]["successful_expectations"], results["statistics"]["successful_percentage"])- Validación en estilo producción con DataContext y Validator
# Ejemplo: usar DataContext + Validator (asume `ge init` o proyecto GE existente)
from great_expectations.data_context import DataContext
import pandas as pd
context = DataContext() # lee la configuración del proyecto Great Expectations local
df = pd.DataFrame({"id": [1,2,3], "value": [10, None, 30]})
batch_request = {
"runtime_parameters": {"batch_data": df},
"batch_identifiers": {"default_identifier": "batch_1"},
}
validator = context.get_validator(batch_request=batch_request, expectation_suite_name="default")
validator.expect_column_values_to_not_be_null("id")
validator.expect_column_values_to_be_between("value", min_value=0, max_value=100)
validator.save_expectation_suite()
result = validator.validate()
print("Validation success:", result["success"])La auto-generación de expectations y su ejecución como parte de checkpoints o CI/CD está soportada — consulta la documentación de Great Expectations para profilers, expectation suites y checkpoints.
Más información en el link 👇


