Python Advanced Series — Data Contracts

15. Validaciones estrictas pre-producción

15. Strict Pre-Production Validations

Define reglas críticas obligatorias que tus datos deben cumplir antes de pasar a producción.

Define mandatory critical rules that your data must satisfy before moving into production.

⚠️ Advertencia de ciberseguridad y producción ⚠️ Cybersecurity and production warning

Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, APIs externas, portales con login, datos sensibles, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.

This exercise is for learning and testing only. Do not run scripts against real data, production environments, external APIs, login portals, sensitive data, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.

Objetivo del ejercicio

Exercise objective

Crear expectativas de calidad para validar rangos, valores nulos y reglas mínimas antes de aceptar un dataset.

Create quality expectations to validate ranges, nulls, and minimum rules before accepting a dataset.

Datos sintéticos

Synthetic data

id_nacionaledadstatus
A10025Active
A10117Active
44Inactive

Ejemplo base

Base example

import great_expectations as ge

df_ge = ge.from_pandas(df)
df_ge.expect_column_values_to_be_between("edad", 18, 80)
df_ge.expect_column_values_to_not_be_null("id_nacional")

Resultado esperado

Expected result

rulesuccess
edad between 18 and 80False
id_nacional not nullFalse
overallNeeds review

Script completo

Complete script

# ==========================================================
# Python Advanced Topic 15
# Strict Pre-Production Validations
# ==========================================================

# pip install great_expectations pandas

import pandas as pd
import great_expectations as ge

df = pd.DataFrame({
    "id_nacional": ["A100", "A101", None, "A103"],
    "edad": [25, 17, 44, 82],
    "status": ["Active", "Active", "Inactive", "Active"]
})

df_ge = ge.from_pandas(df)

results = []
checks = [
    df_ge.expect_column_values_to_be_between("edad", 18, 80),
    df_ge.expect_column_values_to_not_be_null("id_nacional"),
    df_ge.expect_column_values_to_be_in_set("status", ["Active", "Inactive"])
]

for check in checks:
    results.append({
        "expectation": check.expectation_config.expectation_type,
        "success": check.success
    })

report = pd.DataFrame(results)
report.to_csv("preproduction_validation_report.csv", index=False)
print(report)

Salida esperada en consola

Expected console output

                                 expectation  success
0       expect_column_values_to_be_between    False
1       expect_column_values_to_not_be_null   False
2       expect_column_values_to_be_in_set      True

Aplicaciones reales

Real-world applications

  • Validar archivos antes de cargar a producción.
  • Crear contratos de datos entre equipos.
  • Evitar reportes con campos críticos inválidos.
  • Documentar reglas de calidad.
  • Validate files before production loads.
  • Create data contracts between teams.
  • Prevent reports with invalid critical fields.
  • Document quality rules.

Recomendaciones

Recommendations

  • Definir reglas con el dueño del dato.
  • Separar errores críticos de advertencias.
  • No corregir automáticamente sin trazabilidad.
  • Guardar el reporte de validación.
  • Define rules with the data owner.
  • Separate critical errors from warnings.
  • Do not auto-fix without traceability.
  • Save the validation report.

Valor del tópico

Topic value

Las validaciones pre-producción evitan que datos malos entren a procesos oficiales y convierten la calidad en una regla verificable.

Pre-production validations prevent bad data from entering official processes and turn quality into a verifiable rule.