Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Noviembre 09
2 / 29
INTRODUCCIN................................................................................................................................4
PENTAHO DATA INTEGRATION (KETTLE)......................................................................................5
Spoon ............................................................................................................................................5
Kitchen ..........................................................................................................................................5
Pan ................................................................................................................................................5
INSTALACION DE PENTAHO DATA INTEGRATION (KETTLE) .......................................................5
Requisitos para la instalacin de PDI Kettle. ..............................................................................5
Descarga de PDI Kettle.................................................................................................................5
Instalacin de PDI Kettle. .............................................................................................................6
Ejecucin de PDI Kettle. ...............................................................................................................6
Transformations, Jobs, Steps y Hops. ........................................................................................7
CREAR EL PRIMER EJEMPLO ETL.................................................................................................9
Objetivo.........................................................................................................................................9
Preparar el ambiente de trabajo...................................................................................................9
Crear la Transformation ...............................................................................................................9
Identificando Steps.....................................................................................................................10
Disear la Transformation..........................................................................................................10
Configurar el comportamiento de los steps ..............................................................................11
Configurar Text File Input ......................................................................................................11
Configurar Modified Java Script Value..................................................................................14
Configurar XML Output ..........................................................................................................15
Guardar la transformation ..........................................................................................................16
Ejecutar la transformation..........................................................................................................16
Ejecutar la transformation desde ventana de lnea de comandos ...........................................17
Programar la ejecucin de la transformation ............................................................................17
CREAR EL SEGUNDO EJEMPLO ETL...........................................................................................19
Crear el Job.................................................................................................................................19
Disear el Job .............................................................................................................................19
Configurar el comportamiento de los steps ..............................................................................20
Configurar Check if files exists..............................................................................................20
Configurar Move Files ............................................................................................................20
Configurar Transformation ....................................................................................................21
Guardar el Job ............................................................................................................................21
Ejecutar el Job ............................................................................................................................21
Ejecutar el job desde ventana de lnea de comandos...............................................................22
Programar la ejecucin del job ..................................................................................................23
UTILIZANDO VARIABLES ...............................................................................................................23
Archivo de configuracin Kettle.properties ..............................................................................23
Utilizando variables en Transformations y Jobs.......................................................................24
Editar archivo de configuracin.................................................................................................25
TRABAJANDO CON BASE DE DATOS ..........................................................................................25
Crear Database Connection .......................................................................................................26
Guardar registros en tabla de destino .......................................................................................28
3 / 29
ETL. Son las siglas en ingls de Extraer, Transformar y Cargar (Extract, Transform and
Load). Es el proceso que permite mover datos desde mltiples fuentes, reformatearlos y
limpiarlos, y cargarlos en otra base de datos, data mart, o data warehouse para analizar, o
en otro sistema operacional para apoyar un proceso de negocio.
Extraer. La primera parte del proceso ETL consiste en extraer los datos desde los sistemas
de origen. La mayora de los proyectos de almacenamiento de datos fusionan datos
provenientes de diferentes sistemas de origen. Por ejemplo la informacin del sistema de
RRHH puede estar disponible en una base de datos SQL Server, mientras que la
informacin de Ventas est disponible en hojas de clculo.
Transformar. La fase de transformacin aplica una serie de reglas de negocio o funciones
sobre los datos extrados para convertirlos en datos que sern cargados. Algunas fuentes de
datos requerirn alguna pequea manipulacin de los datos. No obstante en otros casos
pueden ser necesarias aplicar algunas de las siguientes transformaciones:
Seleccionar slo ciertas columnas para su carga (por ejemplo, que las columnas con
valores nulos no se carguen).
Traducir cdigos (por ejemplo, si la fuente almacena una "H" para Hombre y "M" para
Mujer pero el destino tiene que guardar "1" para Hombre y "2" para Mujer).
4 / 29
5 / 29
6 / 29
La imagen siguiente muestra un Job, como se indic, en este caso los hops sirven para
llevar el control del flujo de ejecucin, llamando a una Transformation, a otro Job (que a su
vez puede contener una o ms transformations) y por ltimo a un script SQL.
8 / 29
Crear la Transformation
Si es que no ha iniciado la herramienta Spoon, ejecute Spoon.bat o Kettle.exe para iniciarla.
Para crear una transformation puede seguir cualquiera de las siguientes opciones:
9 / 29
Para cada uno de los tems a seguir, se utilizarn diferentes Steps que en este caso estn
en diferentes categoras. A continuacin se deben identificar en el Steps Pallete los que
deben ser utilizados:
1. Leer el archivo de texto. Utilizar el step Text file input, ubicado en la
categora Input.
2. Construir la concatenacin de campos. Utilizar el step Modified
Java Script Value, ubicado en la categora Scripting.
3. Grabar los datos en un archivo XML. Utilizar el step XML Ouput,
ubicado en la categora Output.
Disear la Transformation
Una vez identificados los steps, empezamos el diseo de la Transformation, seguir los
siguientes pasos:
10 / 29
Ahora se debe enlazar Text file input con Modified Java Script Value, para esto se debe
crear un Hop siguiendo cualquiera de las siguientes opciones:
Utilizando cualquiera de los modos anteriores, enlazar Modified Java Script Value con XML
Output.
Doble click sobre el cono Text file input para mostrar la ventana de configuracin. Aqu
se indicarn la ubicacin, el formato y el contenido del archivo de texto.
11 / 29
Click en el botn Show file content, se puede ver el contenido del archivo PROV.txt (los
campos estn separados por el carcter ;)
Ir a la solapa Fields, dar click en el botn Get Fields, para agregar la lista de las
columnas del archivo de texto al grid. Por defecto, los nombres se obtienen de los
headers (encabezados)
Revisar los campos Name, Type, Length, Trim Type y eliminar los valores que
aparezcan en los dems campos.
12 / 29
13 / 29
La variable creada pasar a ser un nuevo campo que debe pasar al archivo de salida.
Para permitir esto dar click en el botn Get variables. La variable mensaje ser
agregada al grid Fields.
En este step se est agregando un campo, adicional a los tres que venan del step
anterior. Aprovechando este punto vamos a revisar los Input Fields y Output Fields.
Los Input Fields son las columnas de data que recibe un step y los Output Fields son las
columnas de data que salen de un step.
Click derecho en el cono Modified Java Script Value y elegir la opcin Show input
fields, se observa que los campos de entrada son coddpto, codprov y nombre los cuales
provienen del step File text input.
Click derecho en el cono Modified Java Script Value y elegir la opcin Show output
fields, se observa que los campos de salida son los mismos que ingresaron adems del
nuevo campo mensaje.
14 / 29
Doble click sobre el cono XML Output. Cambiar el nombre por defecto a Provincias
XML.
Ir a la solapa Fields y dar click en el botn Get Fields, esto agregar al grid los campos
que sern grabados en el archivo xml. Se puede elegir qu campos se incluirn en la
salida, para este ejemplo se dejan todos los campos.
15 / 29
16 / 29
Lo que se debe realizar a continuacin es crear una tarea programada que ejecute el
archivo bat creado.
Ir a Configuracin -> Panel de Control -> Tareas Programadas y crear una nueva tarea.
Luego dar doble clic para editarla.
17 / 29
Ir a la solapa Programa y para este ejemplo programar la tarea para que se ejecute Solo
una vez y en Hora de Inicio ingresar un tiempo prudencial para la comprobacin de la
ejecucin.
18 / 29
En el panel izquierdo, seleccionar la opcin View. Luego click derecho en Jobs y elegir
New.
Disear el Job
Seguir los siguientes pasos:
Arrastrar el cono START al rea de trabajo. Este step siempre debe ir en cada job
que se cree.
Enlazar los cada uno de los steps como se muestra en la imagen siguiente:
19 / 29
Click en el botn File y ubicar la ruta del archivo Provincias.xml (creado en el ejemplo
anterior).
En la solapa General, click en File o escribir la ruta del archivo origen Provincias.xml.
20 / 29
Configurar Transformation
Guardar el Job
Habiendo diseado y configurado cada uno de los steps y hops, solo queda grabar la
transformation, guardarlo en la carpeta C:\Tutorial_PDI\ETL y poner como nombre
job_ejemplo. El archivo generado tiene la extensin .kjb que tambin es un archivo XML.
Ejecutar el Job
Al existir un step que indica una condicional (si existe un archivo), la ejecucin del job,
tendr dos comportamientos:
Cuando el archivo Provincias.xml ya exista, el flujo del job ir al step que mover el
archivo a la unidad D:\ asignndole como nombre Provincias_20091110_191157401.xml,
el nombre depender de la fecha y hora de ejecucin.
21 / 29
Cuando el archivo no exista, el flujo del job ir al step que llama a la Transformation del
primer ejemplo y crear el archivo.
En el log de ejecucin se observa que el step Existe provincia.xml tiene como resultado
el estado Failure.
22 / 29
Para programar la ejecucin peridica del archivo bat, se pueden seguir lo mismos pasos
que se utilizaron en el primer ejemplo para le ejecucin de la transfomartion.
UTILIZANDO VARIABLES
Basado en los ejemplos anteriores, vamos a revisar a continuacin el uso de variables.
Tanto los archivos de ingreso (Prov.txt), salida (Provincias.xml) y los archivo generados en
PDI Kettle (trf_provincias.ktr, job_ejemplo.kjb) se encuentran en una ruta determinada, si por
algn motivo la ruta donde se encuentran los archivos cambie, la ejecucin fallara o no se
obtendra el resultado esperado.
Para hacer que las transformations y jobs que se creen tengan una funcionalidad ms
dinmica, se har uso de las variables.
Archivo de configuracin Kettle.properties
La configuracin de variables se lleva a cabo en el archivo de configuracin kettle.properties,
Dicho archivo se ubica en la siguiente ruta:
En Linux: /home/usuario/.kettle
Editar el archivo desde Notepad y agregar las lneas como se muestra en la imagen.
23 / 29
Ubicarse en el campo File or directory, presionar las teclas Ctrl + Space y de la lista
que aparece, seleccionar la variable TUTO_BASE, la cual se muestra en el formato
siguiente: ${TUTO_BASE}, luego completar la ruta de las siguiente manera:
${TUTO_BASE}\Input\PROV.txt.
Agregar al grid Selected Files y eliminar el registro que se haba quedado del ejemplo
anterior.
24 / 29
Mover las carpetas Input y Ouput dentro de otra carpeta, para este ejemplo a la ruta
siguiente: C:\Tutorial_PDI\Variables.
Como est variando la ruta donde se encuentra el archivo origen (PROV.txt), se tiene
que realizar el cambio en el archivo de configuracin para actualizar el valor de la
variable TUTO_BASE.
Reiniciar PDI Kettle, para que pueda reconocer el nuevo valor de la variable y ejecutar la
transformation.
El uso de variable cobra mayor importancia cuando se trabaja con mayor cantidad de
jobs y transformations, dado que si se presentan cambios de ubicacin, renombramiento
de archivos, u otros parmetros, el cambio solo se realiza en el archivo de configuracin
kettle.properties.
25 / 29
Desde PDI Kettle, abrir el archivo trf_provincias_bd.ktr, y crear una conexin a base de
datos.
En la barra de botones dar click en el cono New File y seleccionar Database connection.
Para comprobar que la configuracin es correcta se realiza un Test, que mostrar los
parmetros de conexin (Hostname, Port, Database name) y la conformidad de la
misma.
26 / 29
Tener en cuenta que esta conexin puede ser utilizada por cualquier step que requiera
conectarse a la base de datos, pero solamente en la transformation donde ha sido
creada.
Para poder utilizar esta nica conexin en cualquier job y/o transformation se debe
activar la opcin Share (compartir).
Tener en cuenta que esta conexin puede ser utilizada por cualquier step que requiera
conectarse a la base de datos, pero solamente en la transformation donde ha sido
creada.
Para poder utilizar esta nica conexin en cualquier job y/o transformation se debe
activar la opcin Share (compartir).
27 / 29
Enlazar los steps Concatenar campos con Table output. Justo al terminar el enlace
aparece un mensaje de Warning indicando que desde un step se est enviando datos
dos steps y hay dos formas de hacer ese envo: Distribute y Copy. En este caso se
elegir la opcin Copy, pues se desea que todos los registros de provincias se graben en
la tabla y en el archivo XML.
Editar el step Table output, cambiando el nombre por defecto a: Tabla Provincias.
Esta tabla no existe en la base de datos, se puede corroborar haciendo click en el botn
Browse y revisando la lista de tablas existentes.
28 / 29
Para crear la tabla, se puede conectar directamente a la base de datos o dar click en el
botn SQL.
Se muestra una ventana de edicin SQL donde presenta un script para crear la tabla.
Dar click en el botn Execute. Si revisa desde su editor de base de datos observar que
la tabla ha sido creada.
29 / 29