Curso IntegraciĂłn de Datos con Pentaho Data Integration (PDI) Pentaho Community Edition 5.0
GuĂa del Estudiante
Richard Osmar Leon Ingaruca http://jrichardsz.weebly.com
Guía del Estudiante
Ejercicios Este curso incluye los siguientes ejercicios Ejercicio 1: Introducción al entorno de desarrollo de Pentaho. Ejercicio 2: Primer ETL Ejercicio 3: Conexión/Configuración a base de datos. Ejercicio 4: Pentaho Design Studio y Xactions Ejercicio 5: Pentaho BI Server: Configuración de Repositorios y Base de datos. Ejercicio 6: Pentaho BI Server: Ejecución, Programación y Monitoreo de Jobs Ejercicio 7: Variables, parámetros y Javascript. Ejercicio 8: Sentencias Lógicas para manipular los registros. Ejercicio 9: Manejo de Errores, logs y notificaciones por email.
Página 1
Guía del Estudiante
Abreviaturas Nombre Pentaho Data Integration Directorio PDI Pentaho Data Studio Material del Curso
Descripción IDE de desarrollo usado para desarrollar ETL. También conocido como SPOON Directorio donde se ha descomprimido el PDI IDE para el desarrollo de xactions Material suministrado por el instructor
Abreviatura PDI PDI_DIR PDS MATERIAL
Página 2
Guía del Estudiante
Instrucciones Se recomienda llevar a cabo todos los ejercicios, ya que la resolución de ejercicios posteriores dependerá de ello. El instructor suministrara un archivo comprimido con el material del curso. Descomprimirlo y guardarlo en disco.
Página 3
Guía del Estudiante
Contenidos Ejercicios ..................................................................................................................... 1 Instrucciones .............................................................................................................. 3 Breve descripción del Framework ............................................................................. 5 Ejercicio 1. Introducción al entorno de desarrollo de Pentaho. .............................. 7 Instrucciones para el ejercicio ........................................................................................ 8 Parte 1: Iniciar el entorno de desarrollo: PDI ................................................................ 8 Parte 2: Crear y Seleccionar un repositorio .................................................................. 9 Parte 3: Crear carpetas dentro del repositorio ........................................................... 10 Parte 4: Vista general de la interfaz.............................................................................. 11 Parte 5: Creación del ETL .............................................................................................. 11 Parte 6: Ejecución del ETL desde el PDI ..................................................................... 15 Parte 7: Logging del ETL ............................................................................................... 15 Lo que aprendiste ........................................................................................................... 18
Ejercicio 2. Primer ETL – Transformación .............................................................. 19 Instrucciones para el ejercicio ...................................................................................... 20 Parte 1: Configuración del Step de Input .................................................................... 20 Parte 2: Configuración del Step de Output ................................................................. 21 Parte 3: Ejecución de la Transformación .................................................................... 23 Lo que aprendiste ........................................................................................................... 24
Ejercicio 3. Conexión a base de datos .................................................................... 25 Instrucciones para el ejercicio ...................................................................................... 26 Parte 1: Configuración de la conexión: JDBC ............................................................ 26 Parte 2: Configuración de la conexión: JNDI .............................................................. 28 Parte 3: Creación del STEP: TABLE INPUT ................................................................. 30 Parte 4: Creación del STEP: TABLE OUTPUT ............................................................. 32 Lo que aprendiste ........................................................................................................... 35
Ejercicio 4. Pentaho Design Studio y Xactions....................................................... 36 Instrucciones para el ejercicio ...................................................................................... 37 Parte 1: Iniciar el DI Server ............................................................................................ 37 Parte 2: Creación del Proyecto que contendrá los xaction ....................................... 37 Parte 3: Referenciar al job sin Repositorio ................................................................. 39
Página 4
Guía del Estudiante
Breve descripción del Framework Pentaho es una herramienta de Business Intelligence desarrollada bajo la filosofía del software libre para la gestión y toma de decisiones empresariales. Es una plataforma compuesta de diferentes programas que satisfacen los requisitos de BI. Ofreciendo soluciones para la gestión y análisis de la información, incluyendo el análisis multidimensional OLAP, presentación de informes, minería de datos, ETL y creación de cuadros de mando para el usuario. La plataforma ha sido desarrollada bajo el lenguaje de programación Java y tiene un ambiente de implementación también basado en Java, haciendo así que Pentaho sea una solución muy flexible al cubrir una alta gama de necesidades empresariales. Pentaho usa las siguientes librerías, frameworks o tecnologías: Adaptx Ascsapjco3wrp Browserlauncher2 Commonslogging Dynamodb Ftp4che Gwtext Ifxjdbc Jakarta-regexp Javacup
Ant-contrib Asm Casandra
Apachecassandra Barbecue Com
Apache-cassandra-thrift Biz Commons-codec
Commons-vfs Eigenbase Georss-rome Gwt-fx Infobright Jakarta-taglibs Javadbf
Concurrent Elasticsearch Gnujaxp Hadoop Interbase Janino Javaparser
Dedupe Feed4j Gwt-dnd Hsqldb Itext Jars Javax
Jaybird Jcommon Jgoodiescommon Jsonpath Ldapjdk Mdx4j Monetdb
Jboss Jcommon-logging-log4jlog
Jcalendar Jexcelapi
Jcifs Jfree
Jgoodies-looks Jtds Libthrift Memcached Net
Jofc2 Jug-lgpl Log4j Metadatas Nickyb
Jsch Ktable Luciddb Metro Ofc4j
Ofcgwt Openjava Pentaho Rhino Secondstring Sun Trilead-ssh2
Olap4j Opensymphony Poi Rome Soap Svgsalamander Vaadin
Oopsconsultancy Org Postgresql Saaj-ri Splunk Svnant Weka
Openerp Palo Retroweaver Salesforce Sqlitejdbc Tigris Wsdl4j
Xerces
Xml-apis
Página 5
GuĂa del Estudiante
PĂĄgina 6
Guía del Estudiante
Ejercicio 1. Introducción al entorno de desarrollo de Pentaho. De qué trata este ejercicio El objetivo de este ejercicio es mostrar el uso del entorno de desarrollo de ETL del Pentaho: PDI.
Este ejercicio fue diseñado para permitirle
Desplegar el entorno de desarrollo con la herramienta PDI para desarrollar ETL. Conocer que es una Transformación y un Job. Identificar que artefactos genera el PDI. Identificar el área donde se muestran los resultados de la ejecución (logging). Conocer las opciones y configuraciones que brinda el PDI
Introducción Este ejercicio demuestra el uso del IDE desarrollo PDI o Pentaho Data Integration. Usando un formato de visita guiada, se le mostrara las características y/o funcionalidades de la herramienta de desarrollo.
Requerimientos
Sistema Operativo Windows Pentaho Data Integration
Página 7
Guía del Estudiante
A este IDE también se le conoce como: PDI, Spoon o Kettle
Instrucciones para el ejercicio Los siguientes pasos muestran el uso del entorno de desarrollo: PDI.
Parte 1: Iniciar el entorno de desarrollo: PDI a) Antes de iniciar el IDE, debemos descargarlo y descomprimirlo. Lo podemos hacer desde la página Oficial: community.pentaho.com
Información También se puede descargar desde su repositorio oficial en sourceforge: http://softlayerdal.dl.sourceforge.net/project/pentaho/Data%20Integration/5.0.1stable/pdi-ce-5.0.1.A-stable.zip
b) El directorio donde se descomprimirá el PDI, de ahora en adelante será llamado: PDI_DIR c) Iniciar el entorno de desarrollo PDI. Para ello abrir el directorio PDI_DIR y ejecutar el archivo Spoon.bat
Página 8
Guía del Estudiante
Tip Para monitorear o detectar errores de arranque, incidentes en la JVM, simplemente iniciar el PDI en modo debug, ejecutar el archivo: SpoonDebug.bat en cambio de Spoon.bat
Parte 2: Crear y Seleccionar un repositorio Al iniciar el PDI, nos solicita que seleccionemos un repositorio:
Kettle Database Repository: Usa una base de datos relacional para guardar la metadata de los ETL desarrollados.
Kettle File Repository: usa un archivo para guardar los ETL desarrollados. Con esta opción, las transformaciones y Jobs creados, solo se podrán guardar dentro de la carpeta especificada al inicio:
Defaul Repository: Los ETL desarrollados se pueden guardar en cualquier ruta del disco duro.
a) Creación de un Kettle File Repository
Clic en el icono
, seleccionar la opción kettle file repository y clic en el botón ok. Se mostrara la siguiente ventana. Ingresamos los siguientes datos:
Página 9
Guía del Estudiante
Después de guardar, ya podremos seleccionar este repositorio:
Parte 3: Crear carpetas dentro del repositorio a) Una vez creado el repositorio, las carpetas se pueden crear directamente usando el explorador de Windows:
Estas carpetas serán visibles desde el explorador de repositorios del PDI
b) Las carpetas también pueden ser creadas desde el explorador de repositorios del PDI: Tools > repository > explore
Página 10
Guía del Estudiante
Parte 4: Vista general de la interfaz
Descripción:
Barra de Menú.- Contiene todas las configuraciones del IDE. Principalmente, están las configuraciones de conexión a base de datos.
Paleta de diseño.- Contiene todos los steps del PDI como : table input, csv, input, table compare, null if, etc etc
Panel de diseño.- Es un panel drag and drop, en el cual se colocaran los steps arrastrados desde la paleta.
Panel de Ejecución de Resultados.- Aquí se podrá analizar y/o monitorear la ejecución de los steps, transformaciones y Jobs.
Parte 5: Creación del ETL El PDI nos permite crear 2 tipos de componentes:
Transformación (Transformation).Conjunto de pasos (steps) interconectados por medio de saltos (hops) que procesan registros a partir de un origen de datos y cuya salida son uno o más registros. Los steps dentro de una transformación se procesan de manera simultánea y asíncrona.
Página 11
Guía del Estudiante
Cada step nos permite realizar un proceso de entrada, transformación o salida de registros. PDI se puede conectar a prácticamente cualquier origen de datos, la siguiente imagen muestra los más utilizados:
Trabajo (Job).Conjunto de transformaciones, trabajos y pasos que se ejecutan de manera secuencial. El job en sí no maneja registros sino secuencias de tareas. La salida de cada job es un estado exitoso o fallido.
Página 12
Guía del Estudiante
Visto lo anterior, primero se ha de crear una o más transformaciones y luego uno o más jobs. b) Creación de una Transformación
Para crear una transformación click en File > New > Transformation
Arrastrar desde la paleta de diseño los steps que sean necesarios.
Finalmente click en File > Save o click en el icono
Para establecer la ruta de la transformación, hacemos click en el icono
.
y seleccionadmos una ruta:
Lo anterior genera un archivo con extensión .KTR c) Creación de un Step
Para crear un step, seleccionamos la pestaña diseño, seleccionamos uno y lo arrastramos al panel de diseño:
Para unir 2 steps : Página 13
Guía del Estudiante
o Seleccionamos el step o Presionamos la tecla shift y sin soltarla, con el clic izquierdo del mouse arrastramos en dirección al otro step :
o Al unirlos, seleccionamos la opción: Main ouput of step. La otra opción, será usada posteriormente, cuando tratemos el control de errores.
d) Creación de un Job
Para crear un Job click en File > New > Job
Arrastrar desde la paleta de diseño los steps que sean necesarios.
Finalmente click en File > Save o click en el icono
Los pasos para establecer la ruta de la transformación son los mismos para el job.
.
Lo anterior genera un archivo con extensión .KJB
Información El Job tiene una particularidad. Pueden contener a otros componentes como Transformaciones y otros Jobs. Si se arrastra un step al job creado, deberemos especificar la ruta de archivo step el cual debe tener extensión .ktr Para especificar la ruta, hacemos doble click en el icono de la transformación:
Página 14
Guía del Estudiante
Análogamente para un Job.
Tip Si no recordamos el nombre de un step, el PDI nos ofrece una búsqueda rápida:
Parte 6: Ejecución del ETL desde el PDI
Para ejecutar un job o una transformación click en Action > Run o click en el icono
En la ventana que aparece, click en launch.
Posteriormente En ejercicios posteriores se mostrara como ejecutar los ETL desde el servidor
Parte 7: Logging del ETL Durante la ejecución de una transformación o job, el PDI nos permite monitorearlos de distintas formas:
Execution History
Logging
Steps Metrics
Performace Graph
Metrics Página 15
Guía del Estudiante
Preview Data
Los más usados son logging y step metrics: a) Logging Esta opción nos mostrará el clásico logging de una aplicación:
Para configurar el nivel del logging, click en el icono
Para limpiar el logging, click en el icono
.
.
En este panel se podrá visualizar el logging generado por el framework y el logging cada step
Posteriormente En ejercicios posteriores se mostrara el uso del step de logging:
Página 16
Guía del Estudiante
b) Step Metrics Los ETL del PDI están conformados por “n” nodos a los que se les conoce como steps. Para monitorear a cada step, el PDI nos brinda esta opción:
Página 17
Guía del Estudiante
Lo que aprendiste Este ejercicio mostró como iniciar el PDI así como las operaciones más comunes con las que el desarrollador de ETL interactuara. Fin del ejercicio
Página 18
Guía del Estudiante
Ejercicio 2. Primer ETL – Transformación De qué trata este ejercicio El objetivo de este ejercicio mostrar la creación de un ETL y la facilidad con la que se puede transformar la data desde una fuente de datos a otra.
Este ejercicio fue diseñado para permitirle
Crear un ETL simple. Identificar cuán fácil es transformar la data con el PDI.
Página 19
Guía del Estudiante
Instrucciones para el ejercicio Parte 1: Configuración del Step de Input a) Iniciar el PDI y seleccionar el repositorio creado : curso-pentaho-etl b) Crear una transformación y guardarla con el nombre: csv-to-json y seleccionamos la ruta : /etl/ejercicio_02 c) Seleccionamos la pestaña diseño, expandimos la carpeta input y arrastramos el step : csv file input:
d) Doble clic en el icono de este step y seleccionamos la ruta del archivo csv:
Tip En un entorno más real, se recomienda que la rutas de archivos este en un archivos de configuración.
Este step nos brinda muchas configuraciones. Las más importantes son:
Delimiter.- Nos permite indicar que carácter es usado para separar columnas en el archivo .csv
Header row present.- Nos permite especificar si en el archivo csv está presente el header o los nombres de columnas.
Página 20
Guía del Estudiante
e) Para verificar que la configuración y/o ruta del archivo es correcta, presionamos el botón get fields:
f) Después de cargar los campos, podemos ajustar aún más la configuración, con un clic sobre las celdas:
Parte 2: Configuración del Step de Output a) Seleccionamos la pestaña diseño, expandimos la carpeta output y arrastramos el step : json output:
b) Unimos estos 2 steps:
c) Doble clic en el icono de este step y lo configuramos(ver imagen de la página siguiente) Página 21
Guía del Estudiante
En la pestaña general, configuramos : o tipo de operación: generar un archivo, generar un valor de salida o ambos. o ruta del archivo a generar. o Nr rows in a bloc: valor de cero para que todos los registros estén en el mismo bloque.
En la pestaña fields, presionamos el botón get fields y finalmente ok:
Página 22
Guía del Estudiante
Parte 3: Ejecución de la Transformación a) Ejecutamos la transformación. El resultado debe ser como:
b) El archivo generado debe contener:
Página 23
Guía del Estudiante
Lo que aprendiste Este ejercicio mostró como crear una transformación, steps y la facilidad con la que el PDI puede transformar la data entre fuentes de datos distintas. Fin del ejercicio
Página 24
Guía del Estudiante
Ejercicio 3. Conexión a base de datos De qué trata este ejercicio El objetivo de este ejercicio mostrar la conexión a una motor de base de datos desde un transformación.
Este ejercicio fue diseñado para permitirle
Identificar las diferentes formas de configurar la conexión a un motor de base de datos desde el PDI. Mostrar la facilidad con la que el PDI interactúa con los motores de base de datos.
Página 25
Guía del Estudiante
Instrucciones para el ejercicio
Para este ejercicio, por simplicidad usaremos el motor de base de datos mysql. En caso de no contar con alguno disponible, encontraremos un archivo credenciales-database.txt en la ruta: MATERIAL\Recursos Este archivo contiene los parámetros de conexión a una base de datos mysql remota (será necesaria una conexión a internet).
Parte 1: Configuración de la conexión: JDBC a) Iniciar el PDI , clic en : tools > repository > explore y seleccionar la pestaña Connecctions
b) Para crear una nueva conexión , clic en el icono
Página 26
Guía del Estudiante
Ingresamos un nombre para la conexión: jdbc_etl, los parámetros adecuados (host, contraseña, etc.).
c) Si testeamos la conexión obtendremos el siguiente error:
Este error indica que el PDI necesita el driver de conexión con mysql. Para ello, cancelamos y cerramos el PDI. Abrimos la carpeta PDI_DIR / lib y pegamos el jar de conexión a nuestra base de datos:
Página 27
Guía del Estudiante
g) Repetimos los pasos y al momento de testear la conexión veremos este mensaje:
h) Finalmente clic en ok.
Parte 2: Configuración de la conexión: JNDI
Si el Pentaho se desplegara en algún servidor de aplicaciones, podemos configurar para que se conecte a los Datasource suministrados por dicho servidor de aplicaciones.
a) Con el PDI cerrado, nos dirigimos a la ruta : PDI_DIR\simple-jndi En esta ruta encontraremos el archivo: jdbc.properties cuyo contenido es el siguiente:
Página 28
Guía del Estudiante
En este archivo podemos apreciar diferentes conexiones que usa el Pentaho para las demos. La sintaxis para definir el jndi es la siguiente:
SampleData: Nombre del jndi. type: Tipo de datasource. driver: Paquete y nombre de la clase dentro del driver de conexión. url: Cadena de conexión. user/password
b) Al final del archivo, agregamos los parámetros de nuestro jndi:
Estos parámetros son de la conexión remota provista por el instructor.
#DEMO_ETL JNDI / MYSQL REMOTO DEMO_ETL/type=javax.sql.DataSource DEMO_ETL/driver=com.mysql.jdbc.Driver DEMO_ETL/url=jdbc:mysql://db4free.org:3306/etlcurso DEMO_ETL/user=etluser DEMO_ETL/password=password
d) Iniciar el PDI , clic en : tools > repository > explore y seleccionar la pestaña Connecctions
e) Para crear una nueva conexión , clic en el icono
Página 29
Guía del Estudiante
La creación de una conexión jdbc o el registro de una conexión jndi se puede hacer desde los steps de table input y output. A modo de tip es recomendable registrarlas antes de iniciar el desarrollo.
Parte 3: Creación del STEP: TABLE INPUT a) Creamos y guardamos una transformación con el nombre table_input en la ruta: /etl/ejercicio_03/ b) Seleccionamos la pestaña diseño, expandimos la carpeta input y arrastramos el step : table input:
c) Doble clic en el icono de este step para seleccionar una de las conexiones registradas, ingresar la consulta sql, etc:
Página 30
GuĂa del Estudiante
c) Una vez configurado este step, podemos conectar cualquier otro step :
PĂĄgina 31
Guía del Estudiante
Parte 4: Creación del STEP: TABLE OUTPUT
a) Creamos y guardamos una transformación con el nombre table_output en la ruta: /etl/ejercicio_03/ b) Como fuente de datos usaremos el archivo csv del ejercicio número 2 (configurar de la misma forma). c) Seleccionamos la pestaña diseño, expandimos la carpeta input y arrastramos el step : table output:
d) Unir ambos y doble clic en el step output para configurarlo, seleccionando una conexión anteriormente registrada , esquema, tabla destino ,etc:
e) Para este ejemplo específico (mysql) sólo ingresaremos la tabla destino ya que no se cuenta con esquema. Para ello clic en el botón browse y seleccionar la tabla a usar:
Página 32
Guía del Estudiante
El siguiente paso es muy importante. Aquí se hará el match entre los datos provenientes de la fuente de datos csv con la tabla destino.
f) Hacemos clic en el checkbox specify database fields y seleccionamos la pestaña database fields:
g) Clic en el botón get fields y procedemos a relacionar las columnas de la fuente de datos csv con las columnas de la tabla destino:
Página 33
GuĂa del Estudiante
h) Finalmente clic en ok.
PĂĄgina 34
Guía del Estudiante
Lo que aprendiste Este ejercicio mostró como configurar las conexiones a un motor de base de datos ya sea usando una conexión nativa (jdbc) o JNDI. También se vio el uso de los steps table input y output. Fin del ejercicio
Página 35
Guía del Estudiante
Ejercicio 4. Pentaho Design Studio y Xactions De qué trata este ejercicio El objetivo de este ejercicio es mostrar el uso del IDE: Pentaho Design Studio
Este ejercicio fue diseñado para permitirle
Crear y configurar los xaction que permita ejecutar los ETL publicándolos en el servidor Pentaho BI Server.
Página 36
Guía del Estudiante
Simplificaremos el nombre del IDE. De Pentaho Design Studio a PDS
Instrucciones para el ejercicio
Parte 1: Iniciar el PDS a) Antes de iniciar el IDE, debemos descargarlo y descomprimirlo. Lo podemos hacer desde la página Oficial: community.pentaho.com
Información También se puede descargar desde su repositorio oficial en sourceforge: http://sourceforge.net/projects/pentaho/files/Design%20Studio/ Seleccionar la versión 4 para este ejercicio. b) El directorio donde se descomprimirá el PDS, de ahora en adelante será llamado: PDS_DIR c) Iniciar el entorno de desarrollo PDS. Para ello abrir el directorio PDS_DIR y ejecutar el archivo eclipse.exe
d) Seleccionar una ruta para el workspace y ok.
Parte 2: Creación del Proyecto que contendrá los xaction a) Creamos un proyecto. Clic en file > new > Project , seleccionamos general > Project y next:
Página 37
Guía del Estudiante
b) Ingresamos un nombre y finish. c) Ahora clic izquierdo sobre el proyecto creado y una vez más clic en new > other y seleccionamos New Action Sequence Wizard:
d) Ingresamos un nombre para el xaction y finish.
Para los siguientes pasos, necesitaremos un job o una transformación sin errores.
Página 38
Guía del Estudiante
Parte 3: Ejecutar ETL que no cuenta con Repositorio Para el caso que se no se use un repositorio tipo file ni database. a) Creamos un xaction con el nombre no_repository. b) Ingresamos un título y demás información. c) Para configurar el xaction, clic sobre la pestaña : define process:
d) Aquí se visualizan 3 opciones de configuración:
Process Inputs.- Parametros que recibirá el xaction
Process Actions.- Acciones que realiza el xaction una vez que es ejecutado.
Process Output.- Acciones a realizar después de la ejecución.
Para este ejemplo, no tendremos input, ni outputs, solo process actions.
e) En la sección de Process Actions , clic en el icono
y seleccionamos
Página 39
Guía del Estudiante
f) En la sección de Process Actions , clic en el icono
y seleccionamos
Página 40