lunes, 20 de agosto de 2012

Pentaho: primeros pasos con ETL, Kettle, Spoon, PDI

Mis primeros pasos en BI con Pentaho no fueron de lo más fácil. Hay mucha información, es un tema nuevo para mi (estoy aprendiendo a la vez BI y Pentaho), el producto posee una edición Open Source y otra cerrada, y diferentes nombres para cosas parecidas (por ejemplo: Kettle, Spoon, PDI/Pentaho Data Integration).

Así que en este artículo compartiré los pasos que seguí para hacer andar las herramientas necesarias para realizar el proceso de ETL (el artículo de WikiPedia sobre Data Warehouse es una muy buena referencia para un vistazo general).

El mejor tutorial para darlos primeros pasos que encontré es PDI / Pentaho Data Integration / Kettle. Los 4 pasos están muy bien explicados, aunque me topé con algunos inconvenientes, por eso incluyo links a los 4 pasos del turorial, con algunos comentarios:

01. Installing Kettle - Comentarios: lo bajé de aquí: PDI / Kettle 4.3 (la más reciente versión al momento de escribir el artículo). Actualmente, la versión que está disponible es referenciada desde algunas páginas como "Kettle 4.3.0 including Big Data Components", y el archivo se llama "pdi-ce-4.3.0-stable.tar.gz" o "pdi-ce-4.3.0-stable.zip" (dependiendo si se quiera bajar como tar.gz o zip).

02. Spoon Introduction - Comentarios: luego de descomprimirlo y lanzar Spoon, se abrío una instancia de Firefox y una aplicación Java. Entre los links que veo en Firefox, creo que el más relevante es Spoon User Guide.

03. Hello World Example - Comentarios: este paso desarrollamos un ejemplo completo de ETL. Tuve problemas en "Modified JavaScript Value Step", ya que al parecer, la línea que contiene:

name.getString()

no funciona correctamente, pero lo pude arreglar usando:

name.toString()

Al llegar a probar el "pan", para obtener la lista de modificadores aceptados, hay que ejecutar:

./pan.sh

(sin ningún modificador... primero intenté con -h y --help, pero esto no funciona). Hay más información en la página de Pan User Documentation.

En el caso de Linux, para especificar los modificadores del programa se usa "-" en vez de "/":

./pan.sh -norep -file ../ejemplo1/tutorial.ktr

04. Refining Hello World - Comentarios: el igual que con "pan.sh", en Linux, para especificar los modificadores de kitchen.sh se usa "-" en vez de "/". Además, no seguí al pié de la letra las instrucciones; particularmente, prefiero evitar la parametrización a través de "kettle.properties", y en su lugar, utilicé para los paths, la variable ${Internal.Job.Filename.Directory}.

Finalmente, después de renegar un rato, pude ejecutar correctamente el job desde la línea de comando (usando kitchen).

Como resumem, puedo decir que seguir el tutorial me dejó claro varias cosas:

  • "Big Data components" se refiere al hecho de que pueden leerse y escribirse datos de/a Hadoop, Cassandra, etc., pero es algo que no usaremos inicialmente,
  • Spoon es la herramienta gráfica para diseñar procesos de ETL,
  • Pan y Kitchen permiten ejecutar los procesos de ETL desde la línea de comando (por lo tanto, sería una forma de automatizar estos procesos desde, por ejemplo, cron, aunque supongo que debe haber algún componente para realizar el scheduling de estas tareas),
  • Kettle es lo mismo que PDI, que significa "Pentaho Data Integration", que incluye a todo lo anterior: herramientas visuales, CLI, todas las librerías que implementan las funcionalidades que tan fácilmente se utilizan desde Spoon.

1 comentario:

Unknown dijo...

Por lo que sé Kettle ha pasado a llamarse Pentaho Data Integration (PDI), por esa razón se puede encontrar con los dos nombres.