pdi kettle

Upload: gustavo-alvarado-rodriguez

Post on 14-Jul-2015

787 views

Category:

Documents


2 download

TRANSCRIPT

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

El Rincon del BIDescubriendo el Business IntelligenceInicio I. DESCUBRIENDO EL BI (Microstrategy) II. BI OPENSOURCE CON PENTAHO. III. BI con SAP Sobre mi Colaboraciones

CategoriasBases de Datos (5) Business Intelligence (67) Data Mining (4) Data Profiling (2) Datos Publicos (5) ETL (24) Formacion (8) Gestion de Proyectos (1) IBM Cognos (1) Kettle (13) Microsoft (1) Microstrategy (19) Modelado de Datos (4) Mysql (2) OpenSource (21) Oracle (3) Pentaho (20) Sap (7) Talend (11)

Archivos

Posts Ms Vistos16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integration). ETLs: Talend Open Studio vs Pentaho Data Integration (Kettle). Comparative.

1 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

Aplicaciones para gestin de Incidencias y Bugs. Productos OpenSource. 12. Proceso ETL para la carga de la Dimensin Tiempo. Ejemplo de uso de la ETL Talend. 17.1. Instalacin y configuracin de la plataforma BI de Pentaho. 16.4. Comparativa ETL Talend vs Pentaho Data Integration (Kettle). 15.2.Kimball vs Inmon. Ampliacin de conceptos del Modelado Dimensional. I. DESCUBRIENDO EL BI (Microstrategy) 11. Herramientas ETL. Que son, para que valen?. Productos mas conocidos. ETLs Open Source. 2.2. Cubos OLAP (On-Line Analytic Processing).

Estadsticas del Blog370,549 Visitas

AYUDANOS A MEJORAR.Todos los contenidos de este blog se elaboran de forma gratuita y desinteresada. Ayudanos con tu aportacin a mejorar el sitio y los contenidos que ofrecemos.

Blogroll1KEYDATA.COM Definiciones DW ANALYSE THIS Howto y Analisis Pentaho ANIBAL GOICOCHEA Interesante Blog sobre el mundo BI Sap BEYENETWORK.ES Recursos globales BI y DW para expertos BI AND DW DIRECTORY Directorio de BI y DW BI BLOGS Recopilacin Blogs sobre BI BI DIARIO Noticias sobre BI BI FACIL Business Intelligence Fcil BI REFLECTIONS Reflexiones sobre BI BI-SPAIN.COM Portal en espaol sobre BI BIDW.ORG BUSINESS INTELLIGENCE BLOG Blog BI de Jose Maria Arce BWSAP Blog sobre Sap BW de Joaquin Casas CATALOGO OPENSOURCE Repositorio de proyectos OpenSource clasificados por categorias. DATAPRIX.COM Comunidad conocimiento BI, DW, BD, etc. DATAWAREHOUSE INFORMATION CENTER Conceptos de BI y que cosas tener en cuenta. HACIENDO CUBOS Blog de Adrian Ceballos sobre BI INFORMATION MANAGEMENT BLOG Blog de Josep Curto sobre BI INFORMATION-MANAGEMENT.COM Revista digital sobre BI y Datawarehouse INTEGRACION Y CALIDAD DE DATOS Articulos sobre ETL e Integracin de Datos IT.TOOLBOX.COM Knowledge Sharing Communities JUMMPS BLOG Reflexiones BI y TIC RECURSOS BI DE LA UOC Recursos sobre BI de la Universitat Oberta de Catalunya REDOPENBI.COM Blog de la red OpenSource BI SISTEMAS DECISIONALES Blog de Jorge Fernndez Gonzlez con info interesante sobre BI y

2 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

consultoria. SOURCEFORGE.NET Repositorio proyectos Open Source SQLSERVERSI.COM Blog de Salvador Ramos sobre BI y DW con Microsoft TDWI.COM Recursos sobre BI Tdwi TODOBI.COM Blog sobre BI realizado por la gente de StrateBI y Emilio Arias XAVIER MARTINEZ Blog de Xavier Martinez Compartiendo experiencia y conocimiento BI

Suscripcin por correo electrnicoIntroduce tu direccion de email para suscribirte a este blog y recibir por email las notificaciones de nuevas publicaciones nete a otros 60 seguidores

Mi TwitterRT @bifacil: Qu es un modelo dimensional y qu tiene que ver con los cubos? http://t.co /Fz2NHXX5 1 day ago Parametros de usuario y valores en memoria #SAP. http://t.co/cNRx7EHA #SAPTIPS 3 days ago RT @SantiagoRamGlve: @recojochatarra @pedroj_ramirez Los que bajamos cosas ilegalmente de la red, debemos asumir que hacemos algo prohib ... 3 days ago RT @ToniMaPuche: Condenados a gustar (en Facebook), condenados a seguir (en Twitter) http://t.co/w79QcTNx va @el_pais 3 days ago @SAP_Gsupport Cuenta twitter del Soporte Sap donde podemos ver ultimas noticias, notas importantes, cambios legales, etc. 1 week agoSeguir @respinosamilla

16.2. Definicin Area Stage. Tecnicas ETL. 16.3.1. ETL Dimensin Tiempo con PDI.

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integration).Publicado por Roberto Espinosa en 10 mayo 2010 4 Votos Antes de empezar el desarrollo de los procesos ETL con Pentaho Data Integration (Kettle), vamos a dar un repaso a la interfaz de usuario y a las caractersticas mas importantes del producto. Igualmente, veremos las herramientas de las que disponemos para las diferentes tareas a realizar. Existe una variada documentacin del producto (mucha de ella en castellano): Documentacin en castellano en la web de Pentaho: se ha traducido gran parte de la documentacin original del ingles al castellano. Por ejemplo, tenemos el Manual de Usuario de Spoon, Documentacin de usuario de Pan, Kitchen y Carte, Lista de funcionalidades, etc.3 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

Documentacin en ingles: ademas de los elementos anteriores, podemos destacar la documentacin de los Pasos Steps (ver 3.1 y ver 3.2), Trabajos Jobs (ver 3.1 y ver 3.2), lista de plugins disponibles, Pentaho Data Integration Home Page (News, Downloads, Forums, Bug tracking etc.), Getting Started, Pentaho Data Integration Case Studies, Pentaho Data Integration Recorded Demos, Pentaho Data Integration Screenshots, Pentaho Data Integration Articles, Pentaho Data Integration (Kettle) Tutorial, Monitorizacin de rendimiento, Tecnical Tips, Faq, Special database issues and experiences o Special Operating System issues and experiences. Libros: Pentaho Solutions: Business Intelligence and Data Warehousing with Pentaho and MySQL, Pentaho 3.2 Data Integration- Beginners Guide. Blogs: Roland Boumans, Matt Casters, Nicholas Goodman, Samatar Hassan. Otros recursos: manual, grupo PDI en redopenbi.com, ejemplos online.

Historia de Kettle.En el ao 2001, el belga Matt Casters empezo el desarrollo de una herramienta para uso personal, consciente de las dificultades que habia tenido durante su experiencia laboral como constructor de Data Warehouse para la integracin de sistemas. Durante los siguientes aos, fue desarrollando la herramienta, primero utilizando Java y su librera grfica AWT, para finalmente pasar a SWT. La herramienta fue aadiendo funcionalidades, acceso a bases de datos, tratamiento de ficheros y componentes hasta llegar a 2004 con la versin 1.2. El proyecto fue subido a Javaforge, donde la gente poda descargarselo y utilizarlo. En la versin 2.0 se incluyo un sistema de plugins para permitir el desarrrollo de conectores de Kettle con otros sistemas (como Sap) y en 2005 fue liberado el cdigo y puesto a disposicin de todos en Javaforge. El proyecto creci con rapidez y la comunidad se involucro en su desarrollo con mucha actividad, hasta entrar dentro de la orbita de Pentaho (al ser vendido por el autor), que lo incluyo como herramienta ETL en su suite de productos. Matt Caster ha estado desde entonces trabajando en Pentaho y desarrollando su arquitectura como parte del equipo de Pentaho, interveniendo en las diferentes versiones hasta llegar a la 3.2 (y el desarrollo de la nueva versin 4.0, que saldr durante 2010). El nombre de Kettle viene de KDE Extraction, Transportation, Transformation and Loading Environment, pues originariamente la herramienta iba a ser escrita para KDE, el famoso escritorio de Linux. El producto ha sido renombrado como Pentaho Data Integration y a partir de ahora nos referiremos a el como PDI.

Programas que forman la herramienta.PDI esta formado por un conjunto de herramientas, cada una con un proposito especfico. Spoon: es la herramienta grfica que nos permite el diseo de las transformaciones y trabajos. Incluye opciones para previsualizar y testear los elementos desarrollados. Es la principal herramienta de trabajo de PDI y con la que construiremos y validaremos nuestros procesos ETL. Pan: es la herramienta que nos permite la ejecucin de las transformaciones diseadas en spoon (bien desde un fichero o desde el repositorio). Nos permite desde la linea de comandos preparar la ejecucin mediante scripts. Kitchen: similar a Pan, pero para ejecutar los trabajos o jobs. Carte: es un pequeo servidor web que permite la ejecucin remota de transformaciones y jobs.

Trabajando con ficheros Xml o repositorio.Cuando trabajamos con Spoon, tenemos dos formas de guardar los elementos que vamos diseando: Repositorio: disponemos de una base de datos, con una estructura especial, donde son guardadas las4 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

transformaciones y trabajos construidos. Puede ser til para el trabajo en equipo y para disponer de un lugar centralizado donde se va registrando todo lo realizado. Ficheros: las transformaciones y trabajos son guardados a nivel del sistema de ficheros, en archivos xml (con extensin .ktr para las transformaciones y .kjb para los jobs). Cada transformacin y trabajo tiene un fichero asociado, que incluye en formato Xml el metadata que define su comportamiento.

Seleccin de repositorio al trabajar con PDI Aunque seleccionemos uno u otro tipo de repositorio, siempre tendremos la opcin de convertir de uno a otro modo utilizando componentes de PDI. Veremos un ejemplo de conversin del repositorio cuando terminemos el diseo de los procesos ETL. No se puede trabajar simultaneamente con los dos mtodos, por lo que siempre habr que elegir uno en concreto.

Concepto de transformacin.La transformacin es el elemento bsico de diseo de los procesos ETL en PDI. Una transformacin se compone de pasos o steps, que estan enlazados entre si a travs de los saltos o hops. Los pasos son el elemento mas pequeo dentro de las transformaciones. Los saltos constituyen el elemento a travs del cual fluye la informacin entre los diferentes pasos (siempre es la salida de un paso y la entrada de otro). En el ejemplo de la imagen, en el primer paso estamos recuperando registros de una tabla de la base de datos, y los registros recuperados van siendo transmitidos a los siguientes pasos a travs del salto, y se van realizando operaciones sobre los datos con los diferentes pasos incluidos.

5 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

PDI - Ejemplo de transformacin Tenemos un amplio repertorio disponible de pasos que nos permiten abordar casi cualquier necesidad en el diseo de nuestros procesos de integracin de datos. Los pasos estan agrupados por categoras y cada uno de ellos esta diseado para cumplir una funcin determinada. Cada paso tiene una ventana de configuracin especifica, donde se determina los elementos a tratar y su forma de comportamiento. Una transformacin no es ningn programa ni un ejecutable, simplemente es un conjunto de metadatos en XML que le indican al motor de PDI las acciones a realizar.

Concepto de trabajo o job.Un trabajo o job es similar al concepto de proceso. Un proceso es un conjunto sencillo o complejo de tareas con el objetivo de realizar una accin determinada. En los trabajos podemos utilizar pasos especificos (que son diferentes a los disponibles en las transformaciones) como para recibir un fichero via ftp, mandar un email, ejecutar un comando, etc. Adems, podemos ejecutar una o varias transformaciones de las que hayamos diseado y orquestar una secuencia de ejecucin de ellas. Los trabajos estaran en un nivel superior a las transformaciones.

PDI - Ejemplo de Job

6 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

Los saltos o hops entre los componentes de un job indican el orden de ejecucin de cada uno de ellos ( no empezando la ejecucin del elemento siguiente hasta que el anterior no ha concluido). El paso de un componente del job a otro tambin puede ser condicional, segn si el resultado de ejecucin ha sido correcto o no (tal y como vemos en el ejemplo de la imagen). Al igual que las transformaciones, un job no es ningun programa, es tambin un conjunto de metadatos en XML, que le describen al motor de PDI la forma de realizar las diferentes acciones.

Interfaz de usuario.La interfaz de usuario es muy sencilla, disponiendo de dos perspectivas. Una de visualizacin (view), donde vemos los componentes que forma el job o la transformacin, y otra de diseo (Design), donde vemos los pasos disponibles. Segn estemos trabajando con transformaciones o con trabajos, los steps disponibles irn cambiando. En la imagen, podeis ver la perspectiva Diseo. A la izquierda tenemos los diferentes pasos que iremos arrastrando a la seccin de la derecha (grid de diseo). Los pasos tanto de transformaciones como de trabajos los iremos enlanzando con los correspondientes saltos.

Interfaz de usuario de PDI ver 3.2 - Perspectiva de Diseo En la imagen siguiente,vemos la perspectiva Vista o View. En forma de arbol visualizamos los diferentes elementos utilizados en el diseo de la transformacin o trabajo. Tambin observamos las conexiones a base de datos (que podrn ser propias de un solo trabajo o transformacin), o compartidas por todos. Haciendo doble click en cada uno de los elementos podemos acceder a la configuracin de sus propiedades.

7 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

Interfaz de usuario de PDI ver 3.2 - Perspectiva de Vista En la parte derecha de la pantalla (la cuadricula), tambin podemos acceder a las propiedades de cada elemento con doble click o bien con el menu contextual del botn derecho del ratn. Todo de una forma muy sencilla e intuitiva.

Steps disponibles para las transformaciones.Disponemos de un amplio conjunto de pasos para las transformaciones. Las categoras y pasos disponibles son los siguientes:

InputAccess Input CSV Input De-serialize from file Excel Input Fixed File Input Generate Rows Generate Random Value

OutputAccess Output Delete Excel Output Insert / Update Property Output RSS Output SQL File Output Serialize to file

TransformAdd XML Add a checksum Add constants Add sequence Calculator Closure generator Number range Replace in string

UtilityClone row Delay row Execute a process If field value is null Mail Metadata

8 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

Get File Names Get Files Row Count Get Sub-folder names Get System Info Get Data From XML Google Analytics Google Docs Input LDAP Input LDIF Input Mondrian Input Property Input RSS Input SalesForce Input Table Input Text File Input XBase Input

Synchronize after merge Table Output Text File Output Update XML Output

Row Normaliser Row De-normaliser Row flattener Select values Sort rows Split fields Split field to rows String cut Unique rows Unique rows by HashSet Value mapper XSL Transformation

structure Null if Process files Write to log

FlowAbort Append streams Blocking step Detect empty stream Dummy (do nothing) Filter rows Identify last row in a stream Switch / Case

ScriptingExecute SQL script Execute row SQL script Formula User Defined Java Expression Modified Java Script Value Regex Evaluation

LookupCall DB Procedure Check if a column exists Database Join Database Lookup Dynamic SQL row File exists HTTP Post HTTP client Stream Lookup Table Exists Web services lookup

JoinsJoin rows (Cartesian product) Merge Join Merge rows (diff) Sorted Merge XML Join

Data WarehouseCombination lookup/update Dimension lookup/update

ValidationCredit card validator Data validator Mail Validator XSD Validator

StatisticsAnalytic Query Group By Reservoir sampling Sample rows Univariate Statistics

JobCopy rows to result Get Variables Get files from result Get rows from result Set variables Set files in result

9 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

MappingMapping (sub-transformation) Mapping input\\ Mapping output

ExperimentalGreenplum Bulk Loader GZIP CSV Input MySQL Bulk Loader PostgreSQL Bulk Loader

DeprecatedAggregate rows XML Input Streaming XML Input

Bulk loadingInfobright loader Oracle Bulk Loader [MonetDB bulk loader] [LucidDB bulk loader]

Steps disponibles para los trabajos.Respecto a los trabajos, disponemos de los siguientes pasos, agrupados en las correspondientes categoras:

GeneralStart Dummy Abort job Display MsgBox Info Job Ping a host Send SNMP trap Set variables Success Transformation Truncate tables Wait for SQL Write to log

MailGet mails from POP Mail Mail validator

File Conditions Scripting management Check if a JavaScriptAdd filenames to result Compare folders Copy files Copy or move result filenames Create a folder Create a file Delete file Delete filenames from result Delete files Delete folders File compare HTTP Move files Unzip file Wait for file Zip files folder is empty Check if files exist Columns exist in a table Evaluate rows number in a table File exists Simple evaluation Table exists Wait for SQL Shell

Bulk Loading XMLBulk Load from MySQL into file Check if XML file is well

File transfer RepositoryFTP Delete Get a file with Check if connected to

10 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

Bulk Load into MS SQL Server Bulk Load into MySQL MS Access Bulk Load

formed DTD validator XSD validator XSL transformation

FTP Get a file with SFTP Put a file with FTP Put a file with SFTP SSH2 Get SSH2 Put

repository Export repository to XML file

A continuacin vamos a ir desarrollando los diferentes procesos ETL para la carga de nuestro DW. En ellos iremos profundizando en las funcionalidades de PDI, lo que nos permitira realizar una comparativa final entre PDI y Talend Open Studio. Bibliografa utilizada para esta entradaPentaho 3.2 Data Integration - Beginners Guide. Maria Carina Roldan. Pentaho Community - Documentacin Online.A DV E R TI SE M E N T

Compartelo:

Me gusta:

One blogger likes this post.

Esta entrada fue publicada el 10 mayo 2010 a 19:30 y est archivada en ETL, Kettle, Pentaho. Puedes seguir los comentarios a esta entrada a travs de RSS 2.0 feed. Puedes deja un comentario, o trackback desde tu propio sitio.

57 comentarios hacia 16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integration).1.

Valen escribi17 mayo 2010 a 14:16

que tal? estoy empezando con kettle, venia trabajando con SSIS, pero me tope con la duda de como hacer un insert de una BD a otra dentro de kettle, o sea: tengo una conexion A con una tabla X y una conexion B con una tabla Y debo hacer un select de A.X y el resultado insertarlo en B.Y pero no se como especificar el origen de los datos al hacer la sentencia SQL encontre este post: http://forums.pentaho.org/showthread.php?t=60137

11 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

pero sinceramente no entiendo agradeceria tu ayuda saludos. nota buen blog!! Responder 2.

Roberto Espinosa escribi17 mayo 2010 a 14:52

Es muy sencillo, Valen. En primer lugar, defines las conexiones a base de datos. Ahi indicas el tipo de base de datos a la que te vas a conectar, usuario, contrasea, esquema, etc. En tu caso, tendras que definir dos, una para la base de datos A y otra para la base de datos B. A continuacin, te crearas un paso del tipo Table Input para la lectura de la tabla A. En la configuracin del paso, seleccionaras las conexin correspondiente de las que has definido anteriormente. Y aades en SQL la sentencia SQL para la recuperacin de datos (puedes usar tambin el asistente para traerte la tabla y sus campos a la sentencia). La sentencia SQL la puedes modificar para indicar las correspondientse condiciones en el where: SELECT INFNR , ESOKZ , MWSKZ FROM SAPR3.EINE WHERE INFNR = 0 AND MWSKZ = S3 A continuacin, los datos que hayas leido los iras pasando por otros pasos (para hacer las transformaciones o cambios que quieras realizar). Como paso final, indicaras el paso para insertar en la tabla destino. Pentaho te da varias posibilidades (todos en la categoria Output): Table Output Insert/Update Update Si estas traspasando registros nuevos y no tienes que mirar nada, puedes utilizar el Table Output. En el caso de que sean actualizaciones, tendras que ver los otros dos pasos. Tienes un ejemplo de utilizacin de este paso en la entrada del blog: http://churriwifi.wordpress.com/2010/05/12/16-3-1-dimension-tiempo/ Espero que te sea de utilidad. Responder

12 of 34

25/01/2012 12:09 PM

16.3. Construccion procesos ETL utilizando Kettle (Pentaho Data Integrat...

http://churriwifi.wordpress.com/2010/05/10/16-3-construccion-procesos-...

3.

Yessica Lopez escribi26 julio 2010 a 17:34

Hola que tal? Me estoy Iniciando en la migracin de datos con kettle y estuve leyendo sobre en la entrada o input la opcion de obtencin de nombres de fichero y me gustara aplicarlo quera saber si de casualidad tenias conocimiento sobre como hacer para pasar del proceso de la obtencin del fichero a entrada XBase para posteriormente generar la salida Cualquier respuesta te la agradecer.. Feliz da! Responder

Roberto Espinosa escribi27 julio 2010 a 11:55

Hola Yessica: A ver si te he entendido. Quieres leer una serie de ficheros, luego procesarlos (porque son Xbase) y luego generar la salida hacia otro formato de salida. Creo que podrias hacer lo siguiente: 1) Con el paso Get FIle Names obtienes los nombres de los ficheros que quieres procesar. Deberan de indicar la carpeta donde estan los ficheros y la expresin regular (en el caso de que tengas varias ficheros con nombres variables). Si los ficheros son de nombres fijos, los puedes aadir uno a uno. Acuerdate en la pestaa Filters marcar el flag Add filename to result. Asi se pasan los nombres de los ficheros al paso siguiente. 2) El segundo paso ser uno del tipo Xbase input. Muy importante, para recibir el nombre de fichero del paso anterior, marcar el flag que pone Accept filenames from previous e indicar el nombre del paso anterior en Step to read filenames from. El paso siguiente ser alguno para procesar la informacin que lees de los ficheros o el paso de salida (Output), segn el formato destino. Por ejemplo, Excel o alguna base de datos como destino. Espero haberte sido de ayuda. Responder

Rodolfo escribi15 octubre 2010 a 9:05

hola sabes no se muxo sobre este tema si me puedes ayudar, se trata de hacer una transformacion de mi b.d. transaccinal (oracle) a etl, sin hacer repositorio, sin job,me13 of 34

25/01/2012 12:09 PM