01. Taller Herramienta ETL - Kettle

download 01. Taller Herramienta ETL - Kettle

of 29

Transcript of 01. Taller Herramienta ETL - Kettle

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    1/29

    CONSORCIO

    Noviembre 09

    Consultora para la Construccin delSistema de difusin de los Censos

    Nacionales de Poblacin y Vivienda2007 y suministro de software

    Programa de Capacitaciones TcnicasTaller Herramienta ETL - Kettle

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    2/29

    2 / 29

    Data Integration (Kettle)

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    3/29

    Pentaho Data Integration (Kettle)

    3 / 29

    INTRODUCCIN................................................................................................................................4PENTAHO DATA INTEGRATION (KETTLE)......................................................................................5

    Spoon............................................................................................................................................5

    Kitchen..........................................................................................................................................5Pan ................................................................................................................................................5INSTALACION DE PENTAHO DATA INTEGRATION (KETTLE) .......................................................5

    Requisitos para la instalacin de PDI Kettle. ..............................................................................5Descarga de PDI Kettle.................................................................................................................5Instalacin de PDI Kettle. .............................................................................................................6Ejecucin de PDI Kettle. ...............................................................................................................6Transformations, Jobs, Steps y Hops. ........................................................................................7

    CREAR EL PRIMER EJEMPLO ETL.................................................................................................9Objetivo.........................................................................................................................................9Preparar el ambiente de trabajo ...................................................................................................9Crear la Transformation ...............................................................................................................9Identificando Steps.....................................................................................................................10

    Disear la Transformation..........................................................................................................10Configurar el comportamiento de los steps ..............................................................................11Configurar Text File Input ......................................................................................................11Configurar Modified Java Script Value ..................................................................................14Configurar XML Output ..........................................................................................................15

    Guardar la transformation ..........................................................................................................16Ejecutar la transformation..........................................................................................................16Ejecutar la transformation desde ventana de lnea de comandos ...........................................17Programar la ejecucin de la transformation ............................................................................17

    CREAR EL SEGUNDO EJEMPLO ETL...........................................................................................19Crear el Job.................................................................................................................................19Disear el Job .............................................................................................................................19Configurar el comportamiento de los steps ..............................................................................20

    Configurar Check if files exists..............................................................................................20Configurar Move Files ............................................................................................................20Configurar Transformation ....................................................................................................21

    Guardar el Job ............................................................................................................................21Ejecutar el Job ............................................................................................................................21Ejecutar el job desde ventana de lnea de comandos ...............................................................22Programar la ejecucin del job ..................................................................................................23

    UTILIZANDO VARIABLES ...............................................................................................................23Archivo de configuracin Kettle.properties ..............................................................................23Utilizando variables en Transformations y Jobs .......................................................................24Editar archivo de configuracin.................................................................................................25

    TRABAJANDO CON BASE DE DATOS ..........................................................................................25Crear Database Connection .......................................................................................................26

    Guardar registros en tabla de destino .......................................................................................28

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    4/29

    Pentaho Data Integration (Kettle)

    4 / 29

    INTRODUCCIN

    ETL. Son las siglas en inglsde Extraer, Transformar y Cargar (Extract, Transform and

    Load). Es el proceso que permite mover datos desde mltiples fuentes, reformatearlos ylimpiarlos, y cargarlos en otra base de datos, data mart, o data warehousepara 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 negocioo 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 triggersque 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.

    http://es.wikipedia.org/wiki/Idioma_ingl%C3%A9shttp://es.wikipedia.org/wiki/Base_de_datoshttp://es.wikipedia.org/wiki/Data_marthttp://es.wikipedia.org/wiki/Almac%C3%A9n_de_datoshttp://es.wikipedia.org/wiki/Proceso_de_negociohttp://es.wikipedia.org/wiki/Reglas_de_negociohttp://es.wikipedia.org/wiki/Trigger_%28base_de_datos%29http://es.wikipedia.org/wiki/Trigger_%28base_de_datos%29http://es.wikipedia.org/wiki/Reglas_de_negociohttp://es.wikipedia.org/wiki/Proceso_de_negociohttp://es.wikipedia.org/wiki/Almac%C3%A9n_de_datoshttp://es.wikipedia.org/wiki/Data_marthttp://es.wikipedia.org/wiki/Base_de_datoshttp://es.wikipedia.org/wiki/Idioma_ingl%C3%A9s
  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    5/29

    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/.

    http://java.sun.com/http://sourceforge.net/projects/pentaho/files/Data%20Integration/http://sourceforge.net/projects/pentaho/files/Data%20Integration/http://java.sun.com/
  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    6/29

    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 elarchivo 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

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    7/29

    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 transformationes 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 jobes 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 f lujo de ejecucin.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    8/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    9/29

    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 transformationque 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 trabajoAntes 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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    10/29

    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 StepsPallete.

    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 ModifiedJava 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 inputal rea de trabajo.

    Seleccionar la categora Scripting.

    Arrastrar el cono Modified Java Script Valueal rea de trabajo.

    Seleccionar la categora Output.

    Arrastrar el cono XML Ouput al rea de trabajo.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    11/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    12/29

    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 (loscampos 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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    13/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    14/29

    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, codprovy nombrelos 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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    15/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    16/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    17/29

    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

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    18/29

    Pentaho Data Integration (Kettle)

    18 / 29

    Ir a la solapa Programay 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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    19/29

    Pentaho Data Integration (Kettle)

    19 / 29

    CREAR EL SEGUNDO EJEMPLO ETL

    Para el segundo ejemplo ETL, se va a crear un jobel 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 STARTal rea de trabajo. Este step siempre debe ir en cada job

    que se cree.

    Seleccionar la categora Conditions

    Arrastrar el cono Check if file existsal 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:

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    20/29

    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 Filey 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 Fileo escribir la ruta del archivo origen Provincias.xml.

    Click en el botn Foldero escribir la ruta de la carpeta destino.

    Click en el botn Addpara agregar los datos ingresados al grid.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    21/29

    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 .kjbque 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 comoresultado el estado Success.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    22/29

    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.xmltiene 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

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    23/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    24/29

    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 Filesy 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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    25/29

    Pentaho Data Integration (Kettle)

    25 / 29

    Editar archivo de configuracin

    Mover las carpetas Input yOuput 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

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    26/29

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    27/29

    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).

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    28/29

    Pentaho Data Integration (Kettle)

    28 / 29

    Guardar registros en tabla de destino

    Desde Steps Pallette, seleccionar la categora Output.

    Arrastrar el cono Table outputal 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 datosdos 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 escribirProvincias.

    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.

  • 5/24/2018 01. Taller Herramienta ETL - Kettle

    29/29

    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.