Pentaho Data Integration (Kettle) en Debian Wheezy

diagrama-modelo-conceptual-kettle

La suite de inteligencia de negocios Pentaho, entre las distintas soluciones que ofrece cuenta con la herramienta de Integración de data (Pentaho Data Integration) mejor conocida como Kettle cuyo nombre es un acrónimo recursivo de “Kettle Extraction Transformation Transportation & Loading Environment”. Dicha herramienta permite realizar operaciones de ETL (Extraction, Transformation and Load), sobre diversas fuentes de datos y con múltiples opciones para ello.

diagrama-modelo-conceptual-kettle

Adaptación de Kettle Conceptual Model.pdf

La pagina web oficcial de Kettle es http://kettle.pentaho.com/ en la cual se llega al repositorio en SourceForge para descargar la ultima versión estable. A la fecha de esta entrada la ultima versión disponible es la 4.4

El URL directo para descargar es http://sourceforge.net/projects/pentaho/files/latest/download y si tiene alguna confusión haga clic en: pdi-ce-4.4.0-stable.tar.gz

Descomprimir el archivo que descargamos con clic derecho o por terminal así:

tar xvzf pdi-ce-4.4.0-stable.tar.gz

lo cual generara el directorio data-integration/ que a su vez contiene:

directorios-kettle-debian

directorios-kettle-debian

Kettle no requiere un proceso de instalación especifico,  en realidad es un ejecutable ya que es una aplicación basada en java usando el motor de aplicaciones de eclipse, por lo cual usted deberá tener en su instalación de Debian, Ubuntu, Canaima o lo que este usando el entorno de ejecución de  Java (Java Runtime Environment ) lo cual obtiene mediante:

#aptitude install openjdk-7-jre

Paso siguiente ejecutaremos el archivo spoon.sh

lenin@i5:~/Descargas/data-integration$ cd data-integration/

lenin@i5:~/Descargas/data-integration$ ./spoon.sh

load-kettle-debian

Si todo esta bien observara el splash de bienvenida mientras en el terminal se cargan las librerías necesarias

Luego levantara un dialogo que pregunta por repositorios de conexión y posterior le mostrara un dialogo de tips de spoon cancele ambos.

pdi-kettle-debian

Bienvenida al integrador de data (Kettle) de la suite Pentaho

Establecer la conexión de Kettle con nuestras bases de datos libres

Para llegar al área de las conexiones a base de datos recorreremos : Transformations -> Views -> Databases Connections y doble clic

En este dialogo de kettle nos da opción de usar los siguientes motores de bases de datos: AS/400, Apache Derby, Borland Interbase, Calpont InfiniDB, Exasol 4, ExtenDB, Firebird SQL, Generic database, Greenplum, Gupta SQL Base, H2, Hadoop Hive, Hypersonic, IBM DB2, Infobright, Informix, Ingres, Ingres VectorWise, InterSystems Cache, KingbaseES, LucidDB, MS Access, MS SQL Server, MaxDB (SAP DB), MonetDB, MySQL, Neoview, Netezza, Oracle, Oracle RDB, Palo MOLAP Server, PostgreSQL, Remedy Action Request System, SAP ERP System, SQLite, Sybase, SybaseIQ, Teradata, UniVerse database, Vertica, dBase III, IV y 5.

kettle-big-data-noSQLSi se preguntan por que no están las bases de datos libres NoSQL mas usadas en la lista, la respuesta es que las ubica en una sección que llama BigData, donde se encuentra Avro, Cassandra, CouchDB, Hadoop, HBase, MapReduce y MondoDB. Con sus respectivos espacios y documentación:

Kettle y BigData http://wiki.pentaho.com/display/BAD/Pentaho+Big+Data+Community+Home

Kettle + MongoDB http://kettle.bleuel.com/2012/05/23/kettle-and-nosql-mongodb/ http://wiki.pentaho.com/display/BAD/MongoDB

Kettle + Cassandra http://wiki.pentaho.com/display/BAD/Cassandra

En efecto muchas opciones para manipulación e integración de fuentes de datos, pero nosotros en esta entrada trabajaremos con PostgreSQL el motor de bases de datos en software libre mas completo.

.

Nos conectaremos a PostgreSQL de esta manera:

kettle-connect-postgres

kettle-connect-postgres

Ejemplo practico

Realizaremos una transformación sencilla. Leeremos las entradas de este blog mediante el rss ( https://leninmhs.wordpress.com/feed/ ) y enviaremos los datos de las entradas a un archivo plano de nombre salida-rss-leninmhs.txt y a su vez a una tabla en nuestra base de datos PostgreSQL.

Para ello estando en la vista de diseño, seleccionaremos que la entrada (Input) sera un canal RSS, indicaremos el url del mismo, luego limitaremos el texto de las descripciones de las entradas a 50 caracteres y 100 caracteres respectivamente (texto y html) esto lo hacemos en la opción Transform -> String Cut , luego de esta transformación seleccionaremos dos salidas para nuestra tarea, para ello Output -> Text File Output y Output -> Table Output. En cada salto tenemos la opciones con dar doble clic o posicionando el mouse sobre cada cuadro (hop).

transformacion-rss-lenin-hernandez-blog

transformacion-rss-lenin-hernandez-blog

El resultado de ejecutar esta tarea es:

result-texto-plano-kettle

result-texto-plano-kettle

.

result-tabla-postgres-kettle

result-tabla-postgres-kettle

La sencilla tarea que acabamos de guiar para su realización, pudiera perfectamente ser resuelta, logrando el mismo objetivo con su lenguaje de programación favorito, pero para ello deberá usar alguna librería que interprete el rss, alguna función o expresión regular que solo permita cierta cantidad de texto a las cadenas, contar con el driver de conexión a la base de datos llamar los métodos que interactúan con ella y claro el trabajo de manipulación de archivos de texto desde el lenguaje de programación elegido para esta tarea. ¿Que solución es mas eficiente herramientas ETL como Kettle ó lenguajes de programación y técnicas relacionadas? La respuesta esta en la pericia y las habilidades de quien se disponga a asumir la tarea, en relación a las opciones planteadas. Si su organización cotidianamente requiere manipular volúmenes de datos, entonces lo mas idóneo es adoptar herramientas de ETL como la que repasamos en esta entrada.

Anuncios

2 comentarios en “Pentaho Data Integration (Kettle) en Debian Wheezy

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s