top of page

Great Expectations: ETL Automation y mucho más?

Hace un año aproximadamente me metí de lleno en ETL Testing, como Test Automation Lead/Manager. Lógicamente, una de mis primeras preguntas fue "qué herramientas/librerías/prácticas hay para ayudar en ETL desde el lado de Automation? Ahí fue que encontré, entre otras cosas muy interesantes, a esta librería de Python.


Así que hoy, gente, vamos a dedicarle un post que posteriormente se transforme en Test Drive en el canal seguramente!

Dashboard con datos
La importancia de testear la transformación de datos.

No es ningún secreto que, si hablamos de Data, lo primero que pensamos en términos de lenguajes de programación es Python. Si, se pueden hacer cosas interesantes con Groovy si tenés que usar Java, pero Python simplemente tiene sentido y no muchas vueltas. De ahí que me encontrase con este paquete para hacer Data Profiling, ETL Testing y mucho más con funciones predefinidas en forma de "Expectativas". Pero...qué son las expectativas? Qué hace este paquete?


A qué llamamos una expectativa en data?


Empecemos por acá. Una expectativa es un requerimiento para un campo básicamente. En el caso de este paquete, es una declaración que un sistema puede evaluar y que, por otro lado, está presentado en un lenguaje fácil de leer para una persona. Les suena? Si, es un poco la filosofía aplicada a BDD y un poco cómo se maneja Cucumber, Specflow y otros.


Recordemos que en el caso de data testing las cosas cambian. Ya no hay una "funcionalidad" que probar ni una API. Es data. Estos datos pueden fluir de A a B, o quizás de A y B se sumen y se les aplique una lógica para terminar en C. Entonces... qué son estas expectativas?


Volviendo al tema de Cucumber, podríamos decir que estas expectativas son la función que define un step definition de Cucumber. Es lo más cercano que se me ocurrió para explicárselos.


Recordemos que en Cucumber tenemos