Qué es Spoon?

Spoon es el diseñador gráfico de transformaciones y trabajos del sistema de

ETTLs de Pentaho Data Integration (PDI), también conocido como Kettle (acrónimo recursivo: “Kettle Extraction, Transformation, Transportation, and Load Environment “). 

Está diseñado para ayudar en los procesos ETTLs, que incluyen la Extracción, Transformación, Transporte y Carga de datos. 

Spoon es una Interfaz Gráfica de Usuario (GUI), que permite diseñar transformaciones y trabajos que se pueden ejecutar con las herramientas de Kettle (Pan y Kitchen). 

Pan es un motor de transformación de datos que realiza muchas funciones tales como lectura, manipulación, y escritura de datos hacia y desde varias fuentes de datos. Kitchen es un programa que ejecuta los Trabajos diseñados por Spoon en XML o en un catálogo de base de datos. 

Los Trabajos normalmente se planifican en modo batch (por lotes) para ejecutarlos automáticamente en intervalos regulares. Las Transformaciones y Trabajos se pueden describir usando un archivo XML o se pueden colocar en un catálogo de base de datos de Kettle.

Luego Pan o Kitchen pueden leer los datos para ejecutar los pasos que se describen en la Transformación o ejecutar el Trabajo. En resumen, PDI facilita la construcción, actualización, y mantenimiento de Data Warehouses.

Fuente: Manuel de Pentaho

Ya sabemos lo que es, pero cómo podemos aprovechar todo su potencia y cuándo nos será útil. Esta herramienta cómo muchas super útiles y super completas, requiere de un conocimiento previo de la opciones y posibilidades, que en este caso entre la documentación oficial y un poco de dedicación se puede llegar a tener un manejo de la herramienta en poco tiempo.

Según lo visto hasta ahora y con los primero pasos que demos con la herramienta empezaremos por identificar  la división que hace entre, Job (trabajo) y Transformation (transformación). Un Job es un proceso que implica transformaciones o procesos sobre fuentes de datos, sin entrar en el manejo de los datos. ej: Copiar el fichero A a la carpeta X sería un Job.

En cambio una transformation será todos aquellos pasos que queramos realizar para cualquier tipo de tratamiento o modificación a los datos. ej: De dos columnas, Nombres y Apellidos, generar una tercera que sea la unión de las anteriores

En principio estas acciones parecen muy simples, y es que lo son; ahí radica el potencial de esta aplicación permite de forma muy fácil añadir funciones simples a nuestro proyecto (job o transformation) que podremos modificar y configurar según nuestras necesidades de una forma muy simple, desde el interfaz gráfico. La complejidad reside en unir muchas pequeñas acciones con el objeto de generar el proceso que nos sea necesario sin tener que programarlo.

Un ejemplo práctico para su uso, podría ser el siguiente trabajo que entre otras cosa ejecuta el siguiente procedimiento:

El objetivo: Actualizar los datos de un portal web mediante ficheros CSV que procesados, se puedan extraer los datos que serán cargados en la base de datos del portal.

Funcionamiento: Desde un servidor, se realiza mediante SCP una importación de un fichero ZIP, que se descomprime conteniendo ficheros CSV, tanto el fichero ZIP como los CSV, son procesados y archivados. El procedimiento continua verificando los ficheros CSV y lanzando una transformación para cada tipo de fichero CSV, que se reconoce de forman única mediante expresiones regulares, la transformación varía según el fichero. Una vez procesado se mueve a un directorio dónde es archivado añadiendole una marca temporal que indica su procesamiento. El sistema continua, envía por cada tipo de transformación un email confirmando la transformación y en caso de error adjunta el log correspondiente. Por último se ejecutan una serie de script de shell para hacer copias de base de datos, restauración y envío mediante SCP de la última copia de base de datos realizada.