Volver al curso

Data Engineering con Python: Pipelines y Big Data

leccion
10 / 12
advanced
32 horas
Data Engineering en Produccion y Carrera

Calidad de Datos y Testing de Pipelines

Lectura
45 min~1 min lectura

Calidad de Datos: El Problema Mas Caro

Segun Gartner, las organizaciones pierden USD 12.9 millones/ano por problemas de calidad de datos. En LATAM, donde muchas empresas estan en etapas tempranas de madurez, este problema es aun mas pronunciado.

PilarDefinicionEjemplo de Fallo
CompletitudNo faltan datosPipeline pierde 5% de transacciones
UnicidadSin duplicadosDuplicados inflan revenue
ConsistenciaCoherente entre fuentesVentas en CRM vs warehouse difieren
FrescuraDatos actualizadosDashboard con datos de hace 3 dias
ValidezCumple reglas de negocioEdades negativas, emails invalidos
import great_expectations as gx

context = gx.get_context()
datasource = context.sources.add_pandas('ventas_source')
asset = datasource.add_dataframe_asset('ventas')
batch = asset.build_batch_request(dataframe=df_ventas)

validator = context.get_validator(
    batch_request=batch,
    expectation_suite_name='ventas_quality'
)

# Tests de completitud
validator.expect_column_values_to_not_be_null('order_id')
validator.expect_column_values_to_not_be_null('amount')

# Tests de unicidad
validator.expect_column_values_to_be_unique('order_id')

# Tests de validez
validator.expect_column_values_to_be_between('amount', 0, 10000000)
validator.expect_column_values_to_be_in_set(
    'country', ['AR', 'MX', 'CO', 'BR', 'CL', 'PE'])

results = validator.validate()
if not results.success:
    raise Exception('Validacion de calidad fallo!')

🚀 Testing en CI/CD

Integra tests en CI/CD: dbt test para esquemas, Great Expectations para validaciones complejas, y Soda como alternativa ligera. Tests de datos deben correr ANTES de que lleguen a dashboards.

Monitoreo de datos

La calidad de datos no es un proyecto, es un proceso continuo.