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.
| Pilar | Definicion | Ejemplo de Fallo |
|---|---|---|
| Completitud | No faltan datos | Pipeline pierde 5% de transacciones |
| Unicidad | Sin duplicados | Duplicados inflan revenue |
| Consistencia | Coherente entre fuentes | Ventas en CRM vs warehouse difieren |
| Frescura | Datos actualizados | Dashboard con datos de hace 3 dias |
| Validez | Cumple reglas de negocio | Edades 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.
La calidad de datos no es un proyecto, es un proceso continuo.