Вы находитесь на странице: 1из 29

CONSORCIO

Noviembre 09
Consultora para la Construccin del
Sistema de difusin de los Censos
Nacionales de Poblacin y Vivienda
2007 y suministro de software
Programa de Capacitaciones Tcnicas
Taller Herramienta ETL - Kettle
2 / 29
Data Integration (Kettle)
Pentaho Data Integration (Kettle)
3 / 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
Pentaho Data Integration (Kettle)
4 / 29
INTRODUCCIN
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).
Obtener nuevos valores calculados (por ejemplo, total_venta = cantidad * precio).
Unir datos de mltiples fuentes (por ejemplo, bsquedas, combinaciones, etc.).
Generacin de campos clave en el destino.
Carga. La fase de carga es el momento en el cual los datos de la fase anterior
(transformacin) son cargados en el sistema de destino. Este proceso puede abarcar una
amplia variedad de acciones diferentes. En algunas bases de datos se sobrescribe la
informacin antigua con nuevos datos, en otras se agrega a la informacin ya existente.
Todo depende del modelo y requerimientos del negocio.
La fase de carga interacta directamente con la base de datos de destino. Al realizar esta
operacin se aplicarn todas las restricciones y triggers que se hayan definido en sta (por
ejemplo, valores nicos, integridad referencial, campos obligatorios) y si estn bien definidos
contribuyen a que se garantice la calidad de los datos en el proceso ETL.
Pentaho Data Integration (Kettle)
5 / 29
PENTAHO DATA INTEGRATION (KETTLE)
Kettle es un proyecto Open Source de origen belga, que incluye un conjunto de
herramientas para realizar ETL. Ahora forma parte de la suite de Inteligencia de Negocios
Pentaho. PDI Kettle consiste principalmente de las siguientes aplicaciones:
Spoon
Es el componente ms utilizado. Es una herramienta grfica que permite disear Jobs y
Transformations ETL. Con est herramienta se podr conectar a diversos orgenes de datos
y transformarlos para cargarlos dentro de su estructura de su datawarehouse.
Kitchen
Es un programa que permite ejecutar jobs diseados en Spoon, permitiendo programarlos y
ejecutarlos en modo batch.
Pan
Permite ejecutar transformations diseados en Spoon, permitiendo ejecutarlos desde lnea
de comandos y ejecutarlos en modo batch.
INSTALACION DE PENTAHO DATA INTEGRATION (KETTLE)
Requisitos para la instalacin de PDI Kettle.
Kettle requiere de Java Runtime Edition (JRE) versin 1.5 (denominado a veces Java 5)
superior. JRE se puede obtener de la siguiente direccin: http://java.sun.com/
Descarga de PDI Kettle.
Se puede obtener la ltima versin estable de PDI Kettle y tambin las versiones anteriores
de la siguiente direccin: http://sourceforge.net/projects/pentaho/files/Data%20Integration/.
Pentaho Data Integration (Kettle)
6 / 29
Instalacin de PDI Kettle.
Para la instalacin simplemente se debe descomprimir el archivo descargado en un
directorio que usted elija. Por defecto se obtiene el directorio data-integration.
Ejecucin de PDI Kettle.
Como se mencion y como se puede observar en el directorio data-integration existen varias
herramientas, para iniciar simplemente se debe ejecutar la aplicacin Spoon, ejecutando el
archivo Spoon.bat (tambin se puede ejecutar el archivo Kettle.exe), y se muestra la
ventana de inicio de PDI Kettle.
Si se estuviera trabajando en plataforma Linux, se debe ejecutar el archivo spoon.sh, pero
previamente se debe asignar permiso de ejecucin a dicho archivo. Para eso, ejecutar el
siguiente comando ubicndose en el directorio data-integration: chmod +x *.sh
Pentaho Data Integration (Kettle)
7 / 29
La ventana de inicio permite conectarse a un repositorio predefinido o crear uno, En esta
oportunidad se elegir la opcin No Repository y se quitar el check para no volver a
mostrar esta ventana, luego de lo cual se muestra la ventana principal de PDI Kettle.
Transformations, Jobs, Steps y Hops.
Antes de continuar es importante entender el rol de las transformations, jobs, steps, hops y
otras estructuras que sern utilizadas en los proyectos ETL.
Una transformation es una herramienta PDI que permite realizar una variedad de tareas
con data movindolos de un lugar a otro. Su rol principal es extraer data de fuentes de
datos, transformar la data de una representacin a otra y cargar data en fuentes de salida
(output sources). Como se puede ver, realiza los pasos de extraccin (E), transformacin (T)
y carga (L).
Una transformation consiste de un nmero separado de acciones llamados steps cada uno
diseado para una funcin especfica, La representacin grfica del flujo de datos entres los
steps son llamados hops. Los hops son usados para transportar data de un step a otro.
Un job es un componente que crea una secuencia de actividades que brinda un orden de
ejecucin, por lo tanto los jobs son usados para un control de flujo y por lo general consiste
de una serie de transformations.
PDI Kettle usa hops para construir una secuencia de steps, tambin son usados para
enlazar steps de transformations y jobs, en ambos casos enlazan stops, sin embargo en las
transformations son usados para transportar data de un step a otro, mientras que en los jobs
son usados para brindar control en el flujo de ejecucin.
Pentaho Data Integration (Kettle)
8 / 29
En la imagen a continuacin se muestra una Transformation donde se pueden identificar los
steps, hops que lo componen.
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.
Pentaho Data Integration (Kettle)
9 / 29
CREAR EL PRIMER EJEMPLO ETL
Es momento de crear el primer ejemplo ETL, para eso se describir paso a paso la creacin
de una transformation que leer un archivo de texto y generar un archivo XML realizando
previamente un pequeo cambio en la informacin.
Objetivo
El origen es el archivo PROV.txt, con las columnas separadas por el carcter ; que
contiene la lista de todas las provincias junto a los cdigos de departamento y provincia.
El resultado que se obtendr es un archivo XML donde adems de mostrar los campos
originales, tendr un campo adicional con el mensaje: El cdigo de la provincia Amazonas
es 0100. Cambiando el mensaje segn corresponda por cada provincia.
Preparar el ambiente de trabajo
Antes de empezar, y solo por un tema de orden, crear la siguiente estructura de carpetas
que se muestra en la imagen siguiente. En la carpeta ETL se guardarn las Transformations
y Jobs que se creen, en la carpeta Input estar el archivo de origen y en la carpeta Output
se crear el archivo de salida.
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:
Men File -> New -> Transformation (CTRL + N)
En la barra de botones dar click en el cono New File y seleccionar Transformation.
En el panel izquierdo, seleccionar la opcin View. Luego click derecho en
Transformations y elegir New.
Pentaho Data Integration (Kettle)
10 / 29
Identificando Steps
A modo de aclaracin, un step es la unidad mnima
dentro de una transformation, una variedad de steps est
disponible dentro de categoras tales como Input, Output,
Flow, Scripting y otros, todos ubicados en el Steps
Pallete.
Continuando con el ejemplo, identificamos que la
transformation tiene que realizar lo siguiente:
Leer el archivo de texto.
Construir la concatenacin de campos
Grabar los datos en un archivo XML
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:
Desde Steps Pallette, seleccionar la categora Input.
Arrastrar el cono Text file input al rea de trabajo.
Seleccionar la categora Scripting.
Arrastrar el cono Modified Java Script Value al rea de trabajo.
Seleccionar la categora Output.
Arrastrar el cono XML Ouput al rea de trabajo.
Pentaho Data Integration (Kettle)
11 / 29
El rea de trabajo debe quedar de manera muy similar a la imagen siguiente:
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:
Seleccionar el primer cono, mantener presionada la tecla SHIFT y arrastrar el cursor
hasta el segundo cono.
Ubicarse sobre el primer cono, manteniendo presionado el tercer botn del Mouse (la
ruedita) arrastrar hasta el segundo cono.
Seleccionar los dos conos, click derecho sobre cualquiera de ellos y elegir New hop.
Utilizando cualquiera de los modos anteriores, enlazar Modified Java Script Value con XML
Output.
Configurar el comportamiento de los steps
Cada step presenta una ventana de configuracin. Estas ventanas varan de acuerdo a la
funcionalidad del step y la categora a la que pertenecen. Vamos a configurar cada uno de
los steps que se estn utilizando:
Configurar Text File Input
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.
Pentaho Data Integration (Kettle)
12 / 29
Reemplazar el nombre por defecto a Lista de Provincias.
En el campo File or directory, ingresar la ruta completa de la ubicacin del archivo
PROV.txt.
Click en el botn Add, para agregar el archivo al grid Selected files.
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 Content, aqu se especifica el tipo de archivo de texto (separado por
comas, longitud fija). el carcter que indica la separacin de columnas, se indica si el
archivo presenta encabezado, etc. Para este ejemplo, no se har ningn cambio.
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.
Pentaho Data Integration (Kettle)
13 / 29
Realizar una previsualizacin de los registros que se obtendrn, haciendo click en el
botn Preview rows.
Cerrar la ventana de preview y click en el botn OK para salir de la ventana de
configuracin del step Text file input.
Pentaho Data Integration (Kettle)
14 / 29
Configurar Modified Java Script Value
Doble click sobre el cono Modified Java Script Value.
Reemplazar el nombre por defecto a Concatenar campos.
El rea principal de la ventana de configuracin es para ingresar cdigo JavaScript. Al
lado izquierdo aparecen las funciones disponibles que se pueden utilizar.
Ingresar el siguiente cdigo
var mensaje;
mensaje = 'El codigo de la provincia '+ nombre + ' es ' + coddpto + codprov;
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.
Click en el botn OK para cerrar la ventana de configuracin.
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.
Pentaho Data Integration (Kettle)
15 / 29
Configurar XML Output
Doble click sobre el cono XML Output. Cambiar el nombre por defecto a Provincias
XML.
En el campo Filename ingresar el nombre Provincias.xml y la ubicacin donde se
crear el archivo.
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.
Click en el botn OK para cerrar la ventana de configuracin.
Pentaho Data Integration (Kettle)
16 / 29
Guardar la transformation
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
trf_provincias. El archivo generado tendr la extensin .ktr, si se revisa el contenido del
archivo en WordPad (o el editor de texto que prefiera) se podr ver que es un archivo XML.
Ejecutar la transformation
Una vez guardada la transformation, dar click en el botn Run de la barra de botones o
simplemente presionar F9. Aparece la ventana para opciones de ejecucin, dejar las
opciones por defecto y dar click en el botn Launch.
En el momento de ejecucin aparece en la parte inferior la ventana Execution Results, esta
ventana muestra logs y mtricas de la ejecucin actual.
En la solapa Step Metrics, se presenta informacin por cada step de la transformation,
segn los conceptos que se indican a continuacin:
R: Read. Nmero de registros ledos en el flujo de entrada.
W: Write. Nmero de registros escritos en el flujo de salida.
I: Input. Nmero de registros ledos de un archivo o una base de datos.
O: Ouput. Nmero de registros escritos en un archivo o en una base de datos.
U: Update. Nmero de registros actualizados en una base de datos.
E: Error. Nmero de registros errados.
En la solapa Logging, se muestra un log ms detallado, indicando la fecha y hora en que se
ejecut cada step. Presenta tambin por cada step la cantidad de registros que ingresan,
que salen, que se insertan, etc. El nivel de detalle que se muestre depender del tipo que se
elija al momento de la ejecucin: Minimal, Basic, Detailed.
Pentaho Data Integration (Kettle)
17 / 29
Ejecutar la transformation desde ventana de lnea de comandos
Para ejecutar una transformation desde lnea de comandos se utilizar la aplicacin Pan.
Entonces, desde una ventana de lnea de comandos ubicarse en la carpeta donde est
instalado PDI Kettle e ingresar el siguiente comando:
Programar la ejecucin de la transformation
En la unidad C, crear un archivo de texto, cuyo nombre sea TransformationBatch.bat, el
contenido del archivo ser el mismo que se escribi en la ventana de lnea de comandos.
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.
En el cuadro Ejecutar, ingresar la ruta y el nombre del archivo bat.
En el cuadro Iniciar en, ingresar la ruta donde est instalado PDI Kettle.
Ingresar la contrasea para su usuario.
C:\DATA\Pentaho\data-integration>Pan.bat /file "C:\Tutorial_PDI\ETL\trf_provincias.ktr"
/level:Minimal
Pentaho Data Integration (Kettle)
18 / 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.
Pentaho Data Integration (Kettle)
19 / 29
CREAR EL SEGUNDO EJEMPLO ETL
Para el segundo ejemplo ETL, se va a crear un job el cual verificar si existe el archivo
Provincias.xml, de no existir llamar a la transformation creada en el ejemplo anterior para
crear el archivo, pero si ya existe lo mover a otra ubicacin.
Crear el Job
Si es que no ha iniciado la herramienta Spoon, ejecute Spoon.bat o Kettle.exe para iniciarla.
Para crear un job puede seguir cualquiera de las siguientes opciones:
Men File -> New -> Job (CTRL + ALT + N)
En la barra de botones dar click en el cono New File y seleccionar Job
En el panel izquierdo, seleccionar la opcin View. Luego click derecho en Jobs y elegir
New.
Disear el Job
Seguir los siguientes pasos:
Desde Steps Pallette, seleccionar la categora General.
Arrastrar el cono START al rea de trabajo. Este step siempre debe ir en cada job
que se cree.
Seleccionar la categora Conditions
Arrastrar el cono Check if file exists al rea de trabajo.
Seleccionar la categora File management.
Arrastrar el cono Move Files al rea de trabajo.
Seleccionar la categora General.
Arrastrar el cono Transformation al rea de trabajo.
Enlazar los cada uno de los steps como se muestra en la imagen siguiente:
Pentaho Data Integration (Kettle)
20 / 29
Configurar el comportamiento de los steps
Vamos a configurar cada uno de los steps que se estn utilizando a excepcin del step
START.
Configurar Check if files exists
Cambiar el nombre por defecto a Existe provincias.xml.
Click en el botn File y ubicar la ruta del archivo Provincias.xml (creado en el ejemplo
anterior).
Dar click en el botn Add para agregar la ruta al grid.
Click en el botn OK para cerrar la ventana de configuracin.
Configurar Move Files
Cambiar el nombre por defecto a Mover Archivo.
En la solapa General, click en File o escribir la ruta del archivo origen Provincias.xml.
Click en el botn Folder o escribir la ruta de la carpeta destino.
Click en el botn Add para agregar los datos ingresados al grid.
Pentaho Data Integration (Kettle)
21 / 29
En la solapa Destination File marcar los checkbox como se muestra en la imagen
siguiente:
Click en el botn OK para cerrar la ventana de configuracin.
Configurar Transformation
Cambiar el nombre por defecto a Crear provincias.xml.
En el campo Transformation filename, dar click en el botn a la derecha y buscar la
ruta del archivo trf_provincias.ktr (La transformation creada en el ejemplo anterior).
Click en OK para cerrar la ventana de configuracin.
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.
En el ventana de ejecucin se observa que el step Existe provincia.xml tiene como
resultado el estado Success.
Pentaho Data Integration (Kettle)
22 / 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.
Ejecutar el job desde ventana de lnea de comandos
Para realizar esta manera de ejecucin se utilizar la aplicacin Kitchen. Entonces, abrir
una ventana de lnea de comandos, ubicarse en la carpeta donde est instalado PDI Kettle e
ingresar el siguiente comando:
C:\DATA\Pentaho\data-integration>Kitchen.bat /file "C:\Tutorial_PDI\ETL\job_ejemplo.kjb"
/level:Minimal
Pentaho Data Integration (Kettle)
23 / 29
Programar la ejecucin del job
En la unidad C, crear un archivo de texto, cuyo nombre sea JobBatch.bat, el contenido del
archivo ser el mismo que se escribi en la ventana de lnea de comandos.
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 windows: C:\Documents and Settings\Usuario\.kettle
En Linux: /home/usuario/.kettle
Editar el archivo desde Notepad y agregar las lneas como se muestra en la imagen.
Pentaho Data Integration (Kettle)
24 / 29
Para que se pueda reconocer la variable creada debe reiniciar PDI Kettle.
Antes de ver como se utilizan las variables dentro de las transformations y Jobs, se debe
crear una copia de los archivos creados en los ejemplos anteriores y renombrarlos como
sigue:
job_ejemplo.kjb => job_ejemplo_var.kjb
trf_provincias.ktr => trf_provincias_var.ktr
Utilizando variables en Transformations y Jobs
Desde PDI Kettle, abrir el archivo trf_provincias_var.ktr y editar el step Lista de
Provincias.
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.
Al hacer click en el botn Show filename(s), se muestra una ventana donde se ve el
valor real del registro que existe en el grid.
Cerrar la ventana de configuracin.
Editar el step Provincias XML.
En el campo Filename ingresar lo siguiente: ${TUTO_BASE}\Output\Provincias.
Cerrar la ventana de configuracin.
Pentaho Data Integration (Kettle)
25 / 29
Editar archivo de configuracin
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.
La variable debe quedar as: TUTO_BASE = C:\\Tutorial_PDI\\Variables
Reiniciar PDI Kettle, para que pueda reconocer el nuevo valor de la variable y ejecutar la
transformation.
Al ejecutar la transformation el resultado obtenido debe ser el mismo que cuando no se
utilizaron variables.
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.
TRABAJANDO CON BASE DE DATOS
En ejemplos anteriores solo se ha trabajado a nivel de archivos, lo que se har a
continuacin es crear una tabla que almacene el contenido del archivo origen PROV.txt.
Para realizar el ejemplo crear una copia y renombrar segn se indica el archivo siguiente:
trf_provincias_var.ktr => trf_provincias_bd.ktr
Pentaho Data Integration (Kettle)
26 / 29
Crear Database Connection
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.
En la ventana de configuracin se deben ingresar los datos, tal y como se muestran en
la imagen siguiente o la informacin que sea necesaria para la base de datos con la que
usted trabaje.
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.
Pentaho Data Integration (Kettle)
27 / 29
La conexin creada (cnOracle) se puede ver accediendo al panel View.
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).
Pentaho Data Integration (Kettle)
28 / 29
Guardar registros en tabla de destino
Desde Steps Pallette, seleccionar la categora Output.
Arrastrar el cono Table output al rea de trabajo.
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.
En el campo Connection debe estar seleccionada la conexin cnOracle.
En el campo Target table escribir 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.
Dar click en el botn Cancel para cerrar la ventana de exploracin.
Pentaho Data Integration (Kettle)
29 / 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.
Finalmente ejecutar la transformation para poblar la tabla y el archivo XML.