El día en que Pentaho Data Integration me ayudó con la EURO 2016
¡Hola amigos! Hoy voy a contaros cómo la herramienta Pentaho Data Integration (PDI) me ha ayudado en los problemas diarios frente al ordenador. En esta ocasión fue con un juego que hicimos entre compañeros de trabajo cuando se jugaba la EURO 2016.
Pentaho Data Integration
Pentaho Data integration es una herramienta multiplataforma que tiene su versión pagada y Open Source (community) de la empresa Pentaho. Es parte de una suite de aplicaciones para soluciones en temas de Inteligencia de negocios. PDI en concreto resuelve problemas de ETL (de las siglas en ingles Extracción Transformación y Carga), etapa previa en la construcción de un Data Warehouse.
PDI es un software en el que se generan transformaciones de datos que consisten en uno o mas pasos que son el núcleo de la ejecución de PDI. Estos pasos pueden ser de lectura de datos de distintas fuentes, filtro de registros, limpieza de datos, cálculos, carga de datos y más. Un paso o step es la unidad básica dentro de una transformación y se visualiza como una caja que puede ser unida a otro elemento mediante una relación o hop.
Por último, el job es un conjunto de transformaciones que se ejecutan secuencial o paralelamente. Tienen un comienzo y un final en éxito o fallo para informar que el proceso se ejecutó correctamente o no.Haré un post con mas detalle de la herramienta pero ahora me centraré en el ejemplo concreto para ver como nos ayuda en un caso de la vida real.
Caso de uso real
Todo comenzó cuando vimos el fixture de la Euro 2016, los 36 partidos de la fase de grupos y dijimos, "Veamos quien sabe mas de fútbol". Se envió entonces un Excel con los partidos a cada participante por correo y se pidió que llenaran la parte del resultado (valores destacados en rojo en la imagen).
Es ahí cuando parte una problemática, cuando iniciamos esto se hizo con poco tiempo y participamos 8 personas. Quizá con mas anticipación hubiese participado el doble. Entonces el problema era unificar y consolidar estas 8 plantillas de respuestas con sus 36 resultados en un solo archivo (288 registros). Lo primero que se me vino a la cabeza fue crear ese Excel "consolidador" y empezar a vaciar cada uno de las 8 plantillas en ella pero no me gustó la idea; primero por lo tedioso de estar copiando y pegando con la posibilidad de errores que esto podía traer y segundo porque el formato no era el mejor a la hora de posteriormente calcular los resultados cuando los partidos avanzaran. Entonces me acordé que en mi trabajo uso PDI; una navaja suiza podría hacer este trabajo de mejor manera. Fui guardando en una carpeta cada una de las plantillas respondidas y al descargarla cada una le ponía el nombre de la persona al Excel.Ya en PDI comencé con el paso Microsoft Excel input y lo bueno de esto es que puedo leer uno o varios Excel a la vez usando expresiones regulares para buscar archivos en una carpeta. Con esto ya había resuelto mi primer problema casi instantáneamente (imagina unificar 50 o mas archivos en uno solo en segundos). Además, este paso permite tomar el nombre del archivo y enviarlo como un registro en los datos. Mi archivo se llama "mujica.xlsx" y ahora lo veo en los 36 registros junto con mis resultados. En el campo participante con registro mujica.xlsx, como ven ahora el problema era quitar la extensión del archivo ".xlsx". Para eso existe otro paso que se llama "Replace in string" en el que se busca el texto a reemplazar y se reemplaza por texto vacío en este caso.
Luego depuré un poco los datos para que sean mas fácil de comparar los resultados. Es por eso que usé "concat fields" para unir por ejemplo 1-2 en resultados o clave primaria francia/rumania/mujica en los partidos. Finalmente seleccioné los campos necesarios con "select / rename values" y exportar todo esos datos a un nuevo Excel o una hoja de unos existente con "Excel writer".
El resto ya era gestión de calcular en Excel a medida que los resultados se iban dando. Como se ve en la foto, al menos agarré podio. Eso es todo, solo les puedo decir que esta herramienta es completísima y nos ayudará en problemas simples como el de la Euro hasta crear y mantener un Data Warehouse completo.
Autor invitado
Este artículo ha sido redactado para Geeky Theory por Cristóbal Mujica como autor invitado.