Resumen
En este episodio los conductores conversan sobre Data Quality: qué significa, por qué importa y por qué suele quedar relegada en las empresas por falta de tiempo y de gobernanza de datos. Repasan una guía de métricas de calidad (precisión, confiabilidad de la fuente, semántica, estructura, completitud, consistencia, vigencia, tipos de dato, IDs duplicados) y la ilustran con anécdotas propias. Luego presentan Great Expectations, una librería de Python para definir "expectativas" sobre los datos, validarlas y recibir alertas cuando fallan. Un conductor hace una demo en vivo: instalación, inicialización del proyecto, conexión de datos, creación de suites de expectations con un profiler automático, Checkpoints y validaciones sobre un dataset de FIFA 17. Concluyen que la herramienta es simple de adoptar y útil, que conviene probarla en proyectos en producción y que la calidad de datos es un paso clave que consume gran parte del tiempo del data scientist.
Capítulos
- 00:00IntroPresentación del capítulo 19, dedicado a Data Quality y a la librería Great Expectations, que sirve para detectar cambios en los datos y alertar.
- 00:22Qué es Data QualitySe define como asegurar que los datos sean "buenos" según una métrica y que el sistema avise cuando dejan de serlo. Se cuenta que un gráfico no tenía sentido hasta que la contraparte corrigió los datos, y se menciona "garbage in, garbage out". Se subraya que hay que revisar los datos de forma constante y automática (por ejemplo, el comportamiento de clientes cambia en Navidad), y que el costo de tiempo y la falta de comprensión del negocio frenan esta práctica.
- 09:47Métricas importantes a medirRepaso de una guía de métricas. Precisión (accuracy): difícil de medir y poco accionable (ejemplo de una base de contactabilidad con 80% de acierto y del tráfico 3G/4G). Confiabilidad del origen: problemas de gobernanza de datos, data mesh y linaje. Semántica: valores como -999 que en realidad son nulos, etiquetas invertidas, ambigüedad en "ventas". Estructura: formatos de RUT, teléfonos, fechas de Excel y monedas. Completitud: columnas y filas con datos faltantes. Consistencia: varias fuentes con la misma información que difieren, y reglas ocultas en Excel. Vigencia y "timeline": frecuencia de actualización y entrega puntual. Tipos y tamaños de dato: un punto en una columna numérica convierte todo a string, y errores de unidad o magnitud. IDs duplicados: señal de alerta cuando los registros aumentan abruptamente.
- 43:16MemesSe comentan memes sobre Data Quality, entre ellos el de Excel que interpreta todo como fecha, y el deseo de tener Data Quality estándar en las empresas.
- 46:21Qué es Great ExpectationsHerramienta para medir la calidad de los datos y generar alertas con las pruebas que fallan. Se mencionan sus videos y documentación oficial, y que permite homogeneizar validaciones en distintas columnas y fuentes. Funciona con Python pero puede usarse junto a otros lenguajes. Se explican sus cuatro etapas: setup, conexión de datos, creación de expectations y validación.
- 49:30Instalación y setupSe crea un ambiente virtual (virtualenv u otra opción), se instala Great Expectations y se verifica la versión. Se inicializa el proyecto, lo que crea la carpeta `great_expectations` con configuración, expectations, checkpoints, plugins y la carpeta `uncommitted` (ignorada por git, adecuada para credenciales y variables de entorno).
- 01:02:44Conectar los datosCon el comando `datasource new` se genera un Jupyter Notebook temporal para definir la fuente (archivos locales leídos con pandas, aunque soporta Spark, bases de datos y S3). Se ejecuta con el dataset de FIFA 17 y el resultado queda en el archivo de configuración.
- 01:13:27Creando ExpectationsSe crea una suite con `suite new` usando un profiler automático que genera reglas sobre filas, columnas, tipos y estadísticas; se pueden excluir columnas del análisis. También se menciona que se puede editar la suite resultante.
- 01:20:11Output de validacionesSe revisa la visualización (Data Docs): número de filas esperado, columnas, nulos, mínimos y máximos (por ejemplo, edad de jugadores entre 16 y 40 años) y valores categóricos. Se explica que el profiler da una buena base que luego hay que ajustar, y cómo una categoría nueva dispararía una falla.
- 01:24:38CheckpointsUn checkpoint agrupa una o varias suites de expectations y se ejecuta en un punto del pipeline. Se crea uno, se corre contra un dataset recortado a la mitad y se ve que fallan la cantidad de filas y las estadísticas, mientras que columnas y tipos pasan (17 de 36 en una de las suites).
- 01:29:14AccionesTras una validación se pueden disparar acciones, como enviar un correo o una notificación a Slack, siguiendo la documentación.
- 01:30:00PreguntasSe explica cómo integrar un checkpoint dentro del código de un modelo (mediante una llamada a `checkpoint run`) y que la ejecución continúa aunque falle, salvo que el código revise los logs y decida detenerse. Se plantea la posibilidad de crear métricas propias con funciones de Python y se comenta que la configuración está en JSON pero se ejecuta en Python.
- 01:35:08CierreConclusiones: la herramienta es simple y su suite automática ahorra tiempo; se desea tener un área dedicada a calidad de datos. Un conductor quiere probarla en proyectos en producción, y se menciona otra herramienta recomendada por LinkedIn para revisar a futuro.