Sei sulla pagina 1di 16
Jiveraramos@eamall.com pumiatanesbiogepat.com PENTAHO DATA INTEGRATION (KETTLE) PARTE 1 Pentaho Data Integration (Kettle) Jiveraramos@eamall.com pumietanesbiogapoteam INTRODUCCION PENTAHO DATA INTEGRATION (KETTLE) Spoon, Kitchen. Pan nnn on INSTALACION DE PENTAHO DATA INTEGRATION (KETTLE) Requisitos para la instalacién de PDI Kettle. Descarga de PDI Kettle... Instalacién de PDI Kettle., Ejecucién de PDI Kettle. Transformations, Jobs, Steps y Hops. CREAR EL PRIMER EJEMPLO ETL. Objetivo Preparar el ambiente de trabajo. Crear la Transformation Identificando Steps Disefiar la Transformation Configurar la funcionalidad de los steps Configurar Text File Input Configurar Modified Java Script Value Configurar XML Output Guardar la transformation Ejecutar la transformation... — — Ejecutar la transformation desde ventana de linea de comandos. Pagina 2 de 16 Jiveraramos@eamall.com pumietanesbiogapoteam Pentaho Data Integration (Kettle) INTRODUCCION ETL. Son las siglas en inglés de Extraer, Transformar y Cargar (Extract, Transform and Load). Es el proceso que permite mover datos desde multiples fuentes, reformatearlos y limpiarlos, y cargarlos en otra base de datos, data mart, o data warehouse para analizar, 0 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 mayoria de los proyectos de almacenamiento de datos fusionan datos provenientes de diferentes sistemas de origen. Por ejemplo la informacién del sistema de RRHH puede estar disponible en una base de datos SQL Server, mientras que la informacién de Ventas esté disponible en hojas de célculo. Transformar. La fase de transformacién aplica una serie de reglas de negocio o funciones sobre los datos extraidos para convertirlos en datos que seran cargados. Algunas fuentes de datos requeriran alguna pequefia manipulacién de los datos. No obstante en otros casos pueden ser necesarias aplicar algunas de las siguientes transformaciones: '* Seleccionar sélo ciertas columnas para su carga (por ejemplo, que las columnas con valores nulos no se carguen}. ‘* Traducir cédigos (por ejemplo, si la fuente almacena una destino tiene que guardar "1" para Hombre y"2" para Mujer). ‘+ Obtener nuevos valores calculados (por ejemplo, total_venta = cantidad * precio). ‘+ Unir datos de miltiples fuentes (por ejemplo, busquedas, combinaciones, etc). ‘© Generacién de campos clave en el destino. para Hombre y "M" para Mujer pero el Carga. La fase de carga es el momento en el cual los datos de Ia fase anterior (transformacién) 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 informacién antigua con nuevos datos, en otras se agrega a la informacién ya existente, Todo depende del modelo y requerimientos del negocio. La fase de carga interactia directamente con la base de datos de destino. Al realizar esta operacién se aplicarén todas las restricciones y triggers que se hayan definido en ésta (por ejemplo, valores tinicos, integridad referencial, campos obligatorios) y si estan bien definidos contribuyen a que se garantice la calidad de los datos en el proceso ETL. Pagina 3 de 16 lveraramos@eamall.com pumiatanesbiogepat.com Pentaho Data Integration (Kettle) 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 més utilizado. Es una herramienta gréfica que permite disefiar Jobs y Transformations ETL. Con esta herramienta se podra conectar a diversos origenes de datos y transformarlos para cargarlos dentro de su estructura del datawarehouse. kitchen Es un programa que permite ejecutar “jobs” disefiados en Spoon, permitiendo programarlos y ejecutarlos en modo batch, Pan Permite ejecutar “transformations” disefiados en Spoon, permitiendo ejecutarlos desde linea de comandos y ejecutarlos en modo batch. INSTALACION DE PENTAHO DATA INTEGRATION (KETTLE) Requisitos para la instalacién de PDI Kettle. Kettle requiere de Java Runtime Edition (JRE) versién 1.5 (denominado a veces Java 5) 6 superior. Se puede ‘obtener de la siguiente direccién: http://iava.com/en/download/index.sp Descarga de PDI Kettle. Se puede obtener la iltima versién estable de PDI Kettle y también las versiones anteriores de la siguiente direccién: http://sourceforge.net/projects/pentaho/files/Data%20Integration/ En el presente tutorial se utiliza la versién 4.2.1. Descargar el archivo pdi-ce-4,2.1-stable zip (pare Windows) 0 el archivo pai-ce-4,2.1-stable.tar.g2 (para Linux) Home / Data Integration /4.2.1-stable a Name * Modified * Size * 4 Parent folder pdi-ce-4.2 t-stable zip 2011-1025 247.3MB ou pdi-ce-4 2 t-stable taraz 2011-10-25 239.5 MB eo. pdi-ce-javadoc-4.2.1-stable zip 2011-1025 120 MB el pilice-sro4 2 t-stable15952.zip 2011-1025 175.8 MB e_ Totals: 4 Items 6745 MB Pagina 4 de 16 Pentaho Data Integration (Kettle) ‘Desarrollado por Jorge Rivera Ramos Jtveraramosgamalcom ipumialanesbiogepat.com Instalacién de PDI Kettle. Para la instalacién simplemente se debe descomprimir el archivo descargado en un directorio que usted elija. Por defecto se obtiene el directorio data-integration, 5) > Sefoare + Penahe + poi42i [Gatenresn p Compartir con © Nombre WD semnples UB sirnplenci bu Bicane Deatesh D emoose Bina cencesh D generateCusterschemash Bimpot Lipensh (READE NFOBRIGHT Deane uinux README. 08x ‘README. UNIX ASAO0 (Blu Aetlecuster example LS runsamplessh (Dsee-pentaho-env setpentaho-envsh pean [Bi spoon LS spoonsh Ejecucién de PDI Kettle. Graber Nueva carpeta Fecha de modi. aston 0340 2sm007011 0446 25107201 0846 sng 0339 25/10/2011 0338 2amrao120182. 2507011 0339 25/10/2011 0339 2sp.97011 0339 psnto7011 0339 25/10/2011 0339 2sjto7011 0339 25/10/2011 0339 2507011 0339, 25/10/2011 0339 25/10/2011 0338 2syto70n 0339 251972011 0339 2sjto7011 0339 asn.o7011 0339 2591972011 0339 25107011 0339 251072011 0339 25107011 0339 sno 0339 Tipo Cerpeta de archivos Cerpeta de orchivos Carpet de achivor Archiv por lots. Archivo SH Archive 08F Archiv por lots. Archivo SH Archive SH Archiv porlotes. Archivo SH Documenta XML Archivo SH Archiv perlotes. Archivo SH Documenta de tex. Dacumento dete Documents deter Documenta de tex Archivo por lots. Archivo SH Archiv por lots. Archiv por lots. Ione Imagen PNG Archivo SH Como se mencioné y como se puede observar en el directorio data-integration existen varias herramientas, para iniciar simplemente se debe ejecutar el archivo Spoon.bat. Sise estuviera trabajando en plataforma Linux, se debe ejecutar el archivo spoon.sh, pero previamente se debe asignar permiso de ejecucién a dicho archivo. Para eso, ejecutar el siguiente comando ubicéndose en el directorio data-integration: chmod + *.sh La ventana de inicio permite conectarse a un repositorio predefinido o crear uno, En esta oportunidad no se trabajard con repositorio y se quitard el check en “Show this dialog at startup” para no volver a mostrar esta ventana, luego de lo cual se muestra la ventana principal de PDI Kettle. Pagina 5 de 16 ‘Desarrollado por Jorge Rivera Ramos Hverramosgamalcom pmiatanesbiogepat.com Pentaho Data Integration (Kettle) © Feposten Cometon mel Show ths lg t start Transformations, Jobs, Steps y Hops. Antes de continuar es importante entender el rol de las transformations, jobs, steps, hops y otras estructuras ue serén utilizadas en los proyectos ETL. Una transformation es una herramienta PDI que permite realizar una variedad de tareas con data moviéndolos 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 extraccién (E), transformacion (T) y carga (L). Una transformation consiste de un niimero separado de acciones llamados steps cada uno disefiado para una funcion especifica, La representacidn gréfica 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 ejecucién, 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, también son usados para enlazar steps de transformations y jobs, en ambos casos enlazan stops, sin embargo en las transformations son usados para Pagina 6 de 16 lveraramoseeamall.com nipimiatanesDiogepat.com Pentaho Data Integration (Kettle) transportar data de un step a otro, mientras que en los jobs son usados para brindar control en el flujo de ejecucién. En la imagen a continuacién se muestra una Transformation donde se pueden identificar los steps y hops que lo componen <— note HOPS STEPS La imagen siguiente muestra un Job, como se indicé, en este caso los hops sirven para llevar el control del flujo de ejecucién, lamando a una Transformation, a otro Job (que a su vez puede contener una o mas transformations) y por Gitimo a un script SL > m3) m_ [73 AR Rie START Obtener_Archives __Setear Variaples y Cargar Update Pagina 7 de 16 liveraramos@amall.com pmiatanesbiogepat.com Pentaho Data Integration (Kettle) CREAR EL PRIMER EJEMPLO ETL Es momento de crear el primer ejemplo ETL, para eso se describira paso a paso la creacién de una transformation que leerd un archivo de texto y generar un archivo XMIL realizando previamente un pequefio cambio en la informacién Objetivo El origen es el archivo PROV.txt_ (lo pueden descargar del_— siguiente ink http://correo.ryrhermanos.com/home/irivera@ryrhermanos.com/Publico/PROV.txt), con las _columnas separadas por el cardcter ‘? que contiene la lista de todas las provincias junto a los cédigos de departamento y provincia, El resultado que se obtendra es un archivo XML donde ademas de mostrar los campos originales, tendré un ‘campo adicional con el mensaje: 'é! cédigo de la provincia Amazonas es 0100’. Cambiando el mensaje segiin corresponda por cada provincia “01 nombre» AMAZONAS haw > ~01 ~ cpombce> CHACHAPOYAS /oombre> “menssje>El ebdigo de la provincia CHACHAPOYAS es 0101 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 guardardn las Transformations y Jobs que se creen, en la carpeta Input estard el archivo de origen y en la carpeta Output se crearé el archivo de salida. En la carpeta Input debe estar ubicado el archive PROV.txt oma em Gret @ opr Crear la Transformation Si es que no ha inciado la herramienta Spoon, ejecute Spoon bat para & Vax PBR ini, steps Para crear una transformation puede seguir cualquiera de las siguientes @ Faoos Mend file> New-> Transformation (CTRL+ N) = En la barra de botones dar dlck en el icono New File y seleccionar Transformation, + Enel panel iqquierdo, seleccionar la opcién View. Luego click derecho en Transformations y elegir New. Pagina 8 de 16 Jiveraramoseeamall.com ipimiatanesDiogepat.com Pentaho Data Integration (Kettle) Identificando Steps ‘A modo de aclaracién, un step es la unidad minima dentro de una transformation, una variedad de steps esté disponible dentro de categorias 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 concatenacién de campos ‘© Grabar los datos en un archivo XML Para cada uno de los items a seguir, se utiizaran diferentes Steps que en este caso estan en diferentes categorias. A continuacion se deben identificar los que deben ser utilizados: 2. Constr conestnacion de campos. Ua step Moses ava Senst [i Wahi, bad na categorie ering Medfed Java Sei Vahie 3. Grabar los datos en un archivo XML. Utilizar el step XML Ouput, ubicado en la Bl categoria Output. YOM Output Disefiar a Transformation Una vez identificados los steps, empezamos el disefio de la Transformation, seguir los siguientes pasos: Desde Steps Pallette, seleccionar la categoria Input. ‘*Arrastrar el icono Text file input al area de trabajo, Seleccionar la categoria Scripting, ‘* Arrastrar el icono Modified Java Script Value al drea de trabajo. ‘+ Seleccionar la categoria Output, Arrastrar el icono XML Ouput al érea de trabajo. El rea de trabajo debe quedar de manera muy similar a la imagen siguiente: al s a Text file input Modified Java Script Value XML Output Ahora se debe enlazar Text file input con Modified Javo Script Value, para esto se debe crear un Hop siguiendo ‘cualquiera de las siguientes opciones: = Seleccionar el primer icono, mantener presionada la tecla SHIFT y arrastrar el cursor hasta el segundo fcono. * Ubicarse sobre el primer icono, manteniendo presionado el tercer botén del Mouse (Ia ruedita o track ball arrastrar hasta el segundo icone. ' Seleccionar los dos iconos, click derecho sobre cualquiera de ellos y elegir New hop. Pagina 9 de 16 Hever pumiatanesBiogepat.com smos@gmallcom Pentaho Data Integration (Kettle) Utilizando cualquiera de los modos anteriores, enlazar Modified Java Script Value con XML Output. f—-——_s}_-#] Text file input Modified Java Script Value XML Output Configurar la funcionalidad de los steps Cada step presenta una ventana de configuracién. Estas ventanas varian de acuerdo a la funcionalidad del step ya categoria a la que pertenecen. Vamos a configurar cada uno de los steps que se estan utilizando: Configurar Text File Input ‘© Doble click sobre el icono Text file input para mostrar la ventana de configuracién. Aqui se indicarén la uubicacién, el formato y el contenido del archivo de texto. ‘+ Reemplazar el nombre por defecto a Lista de Provin ‘+ Enel campo File or directory, ingresar la ruta completa de la ubicacién del archivo PROV txt. ‘© Click en el botén Add, para agregar el archivo al grid Selected file. ‘+ Click en el botén Show file content, se puede ver el contenido del archivo PROV. txt (los campos estan separados por el caracter ;) Pagina 10 de 16 liveraramos@eamall.com ipimiatanesbiogepat.com Pentaho Data Integration (Kettle) CJL] peversons_] ‘+ Ira la solapa Content, aqui se especifica el tipo de archivo de texto (separado por comas, longitud fija). el cardcter que indica la separacién de columnas, se indica si el archivo presenta encabezado, etc. Para este ejemplo, no se hard ningdn cambio. © Irala solapa Fields, dar click en el botén 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 demas campos. Pagina 11 de 16 Pentaho Data Integration (Kettle) smos@gmalLeom puimietanesbiogapotcam ee ‘© Realizar una previsualizacién de los registros que se obtendran, haciendo click en el botén Preview rows. costo URESSRSRagceessRagsees conporcancut ‘+ Cerrar la ventana de preview y click en el bot6n OK para salir de la ventana de configuracién del step Text file input, Configurar Modified Java Script Value ‘© Doble click sobre el icono Modified Java Script Value. ‘+ Reemplazar el nombre por defecto a Concatenar campos. © El area principal de la ventana de configuracién es para ingresar cédigo JavaScript. Al lado izquierdo aparecen las funciones disponibles que se pueden utilizar. ‘* Ingresar el siguiente cédigo var mensaje; Pagina 12 de 16 lveraramos@eamall.com puimizetanes blogspot.com Pentaho Data Integration (Kettle) mensaje "El codigo de la provincia + nombre + es' + coddpto + codprov; ‘© Lavariable creada pasara a ser un nuevo campo que debe pasar al archivo de salida, Para permitir esto dar lick en el botén Get variables, La variable mensaje sera agregada al grid Fields, Cs se ae ae) ‘© Click en el botén OK para cerrar la ventana de configuracién, ‘+ Eneste step se esté agregando un campo, adicional a los tres que venian del step anterior. Aprovechando este punto vamos a revisar las opciones 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 icono Modified Java Script Value y elegirla opcién 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 icono Modified Java Script Value y elegir la opcién Show output fields, se observa que los campos de salida son los mismos que ingresaron ademas del nuevo campo mensaje, Pagina 13 de 16 ‘Desarrollado por Jorge Rivera Ramos, Jveraramostamalcom pimiatanesDiogepat.com Pentaho Data Integration (Kettle) Show Input Files 1H Stel ane ther rin = - w - = ‘Step name: Concatenar campos Fields: Fednome Type 1 ceddpta Sting 2 eodproy Sting 3 nombre String : Lina de Provincise cma ListadeProvincias normal zi - Lista ae Provinee normal : ri i ‘Step origin Storage Mask Decimal Group Trim = Fiekiname Type Length Precision Stepvign Storage Mask Decimal Group Trim 1 codpto String 2 - Ustad Proviniss normal one 2 codpoy Suing 2 Ee Lista de Provincias normal : one 3 rombre Sting 5 Usa de Provincias normal ci none 4 mensaje Sing = : CConcstenar campos normal 5 one Configurar XML Output ‘+ Doble click sobre el icono XML Output. Cambiar el nombre por defecto a Provincias XML. ‘* Enel campo Filename ingresar el nombre la ruta donde se crearé el archivo Provincias.xml. step ame rove AL Donetcsteflestst Pas upto ene neue perfume! F Ineludedeten eae Incusetimein frome? Spcty Ditetneforat TR contr rat Flew Caton PRO Prone * Gomes) * ‘* Ira la solapa Fields y dar click en el botén Get Fields, esto agregars al grid los campos que seran grabados en el archivo xml, Se puede elegir qué campos se incluiran en la salida, para este ejemplo se dejan todos: los campos. Pagina 14 de 16 smos@gmalLeom imiatanesbiogepat.com Pentaho Data Integration (Kettle) deve ‘© Click en el botén OK para cerrar la ventana de configuracién, Guardar la transformation Habiendo disefiado 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. EI archivo generado tendré la cextensién .ktr, si se revisa el contenido del archivo en WordPad, Notepadt+ (o el editor de texto que prefiera) se podra ver el formato XML del archivo, Fjecutar la transformation Una vez guardada la transformation, dar click en el botén Run de la barra de botones o simplemente presionar F9, Aparece la ventana para opciones de ejecucién, dejar las opciones por defecto y dar click en el botén Launch, St—-~_y Execution Results canton 2 Log (FESRFUBTE. 2 Petar Gogh epee Cape Rest Wits byt Oupa—Upited ged en Ave Te En el momento de ejecucién aparece en la parte inferior la ventana Execution Results, esta ventana muestra logs y métricas de la ejecucién actual, En a solapa Step Metrics, se presenta informacién por cada step de la transformation, segtin los conceptos que se indican a continuacién: = R: Read, Niimero de registros leidos en el flujo de entrada. + W: Write. Numero de registros escritos en el flujo de salida, = IsInput. Nimero de registros leidos de un archivo o una base de datos. * 0; Ouput. Numero de registros escritos en un archivo o en una base de datos. =U: Update, Niimero de registros actualizados en una base de datos. Pagina 15 de 16 liveraramoseeamall.com puimicetaneobiogapotcam Pentaho Data Integration (Kettle) + E:Error, Numero de registros errados. En la solapa Logging, se muestra un log mas detallado, indicando la fecha y hora en que se ejecuté cada step. Presenta también por cada step la cantidad de registros que ingresan, que salen, que se insertan, etc. El nivel de detalle que se muestre dependers del tipo que se elija al momento de la ejecucién: Minimal, Basic, Detailed. Execution Results 1 Execution History (TPTBGBRB. 9? Step Metics) 2] Performance eu x 2012/07/23 002596 - Spoon - Launching transformation [te provincias) 2012/07/23 00:25:06 - Spoon - Started the transformation execution. aph 2012/07/23 00:25:06 -tf_provincias- Dispatching started for transformation [tefprovincias] 2012/07/23 00:25:06 - Transformation metadata - Natural sort of steps executed in0 ms @ time previous steps calculateé) 2012/07/23 00:25:06 - Provincias XMLO - Opening output stream in encoding: UTF-8 1203 O05 tad Province = Opening fie: CAT PONIngut PROV, 0, U=1, E=0) fi2/07/23 00:25:06 - Lista de Provincias - Finished processing 3012/07/23 00:25:06 - Concatenar campos.0- Optimization level set to 8 f012/07/23 00.2505 - Concstenae campos.0- Finished processing (1-0, O=0, R=220, W: f012/07/23 00:25.06 - Provincias XMLO- Finished processing (0, 2012/07/23 00:25:06 - Spoon - The transformation has finished! Ejecutar la transformation desde ventana de linea de comandos Para ejecutar una transformation desde linea de comandos se utilizaré la aplicacién Pan, Entonces, desde una ventana de linea de comandos ubicarse en la carpeta donde esta instalado PDI Kettle e ingresar el siguiente comando: BiB CAWindows\systems32\emd.exe toio EEROTSSONON TUTE NT ENC ECCS SS SC ae Ss CROC ESET SD EC Terao trs pre Mua CTS EL ttt i En este caso se tiene “instalada” la aplicacién en la siguiente ruta: E:\Software\Pentaho\PDI 4.2.1" Luego de la ejecucién se debe mostrar la siguiente imagen: BE CWindows\system32\emdexe cia eee PUR eee eC TENCE ee ee UOT PASTEN TER SCECNCTON EIT re eeree ce 2 S Ea eres ae erent meee eT Cre ee) re ete) ect eye eee ee io tr oy Oreo aerate conn ee es ce ech Pagina 16 de 16

Potrebbero piacerti anche