Ir al contenido
  1. Posts/

Aseguramiento de la calidad de datos

··360 palabras·2 mins·

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

  1. 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"])
  1. 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 👇

También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano