Mostrando las entradas con la etiqueta pdi. Mostrar todas las entradas
Mostrando las entradas con la etiqueta pdi. Mostrar todas las entradas

lunes, julio 28, 2014

Pentaho Analytics for MongoDB - Review

Estimad@s,

hace unos días comencé con la lectura de Pentaho Analytics for MongoDB, se trata de un libro escueto pero conciso, en el cual se muestra como acceder y explotar datos desde la base de datos documental Mongo DB utilizando características de la suite Pentaho EE. El autor del libro es Bo Borland.



Este libro fue editado por Packt Publishing aquí y también está disponible como White Paper en la página de Pentaho aquí.

El material nos guía partiendo de la instalación de Mongo DB y Pentaho como así también de la base de datos de ejemplo. Luego, el autor,  hace una breve introducción a Mongo DB, sus características y muestra algunos ejemplos de como consultar y trabajar con los datos almacenados.

Luego, utilizando Pentaho Instaview (característica de la versión EE) , se configura como fuente Mongo DB y se muestra como visualizar inmediatamente los datos.
Más tarde se sigue ahondando en Instaview, siempre desde PDI, para crear análisis (usando mapas, entre otros) desde fuentes de datos heterogéneas.
Una de las partes más interesantes es cuando se sigue trabajando con Instaview para crear modelos multidimensionales, realmente la herramienta permite hacerlos en pocos minutos y explotarlos inmediatamente.

El libro continúa haciendo una breve introducción a PRD para luego crear un reporte que obtiene datos desde Mongo DB. Poco a poco se adorna el reporte hasta obtener uno con gráficos y una presentación excelente.

Finalmente, el autor, hace una introducción a la consola de usuario de Pentaho (PUC) y luego muestra como desplegar los reportes y análisis en PUC desde las diversas herramientas.

Mi apreciación personal:
Si bien gran parte del libro requiere disponer de la versión EE de Pentaho (la que se puede descargar en versión de prueba de 30 días) en muchos casos lo que se explica se puede realizar con herramientas de la versión CE. Las explicaciones son muy claras y puntuales, no dejan dudas respecto de lo que se quiere exponer. Vale la pena aclarar que se utilizan las versiones de Pentaho y Mongo DB para Window$ de 64 bits.

Espero les sea de utilidad.

Saludos

Mariano

sábado, mayo 31, 2014

Building a Data Mart with Pentaho Data Integration [Video Serie] - Review (en español)

Estimad@s,

A veces no dejo de sorprenderme, a sido el caso de los últimos dos video cursos que he tenido la posibilidad de revisar, en el caso anterior sobre Pentaho Reporting y en este caso un video curso sobre como construir un DataMart que contiene un modelo en estrella siguiendo los preceptos de Ralph Kimball. Este video curso fue creado por Diethard Steiner, persona a la cual respeto de forma particular por la seriedad y calidad de sus publicaciones. Con este video curso Diethard ha demostrado una vez más su profesionalismo.

Este video lo ha publicado Packt Publishing y se encuentra en este link.

Disponen de una vista previa aquí.

La suma de todos los videos es de aproximadamente 2 horas.

Diethard nos guía paso a paso en la construcción de un Datamart utilizando en cada momento las herramientas adecuadas y profundizando lo justo en cada caso, sumado a ello una explicación excelente y una cadencia muy oportuna en la presentación. El curso es extremadamente dinámico y es muy recomendable para aquell@s que deseen asentar sus conocimientos sobre la temática y para aquellos que quieren introducirse en el tema. El valor agregado es que además de explicar cada concepto, se lo lleva a la práctica con la herramienta adecuada.

Realmente recomiendo este curso.

Felicitaciones Diethard!

Indice del curso:


Getting Started [18:25 minutes]
  1. The Second-hand Lens Store Sample Data
  2. The Derived Star Schema
  3. Setting up Our Development Environment

Agile BI – Creating ETLs to Prepare Joined Data Set [12:27 minutes]
  1. Importing Raw Data
  2. Exporting Data Using the Standard Table Output Step
  3. Exporting Data Using the Dedicated Bulk Loading Step

Agile BI – Building OLAP Schema, Analyzing Data, and Implementing Required ETL Improvements [11:29 minutes]
  1. Creating a Pentaho Analysis Model
  2. Analyzing the Data Using the Pentaho Analyzer
  3. Improving Your ETL for Better Data Quality

Slowly Changing Dimensions [17:03 minutes]
  1. Creating a Slowly Changing Dimension of Type 1 Using the Insert/Update Step
  2. Creating a Slowly Changing Dimension of Type 1 Using Dimension Lookup Update Step
  3. Creating a Slowly Changing Dimension Type 2

Populating Data Dimension [16:10 minutes]
  1. Defining Start and End date Parameters
  2. Auto-generating Daily rows for a Given Date Period
  3. Auto-generating Year, Month, Day and so on.

Creating the Fact Transformation [14:28 minutes]
  1. Sourcing Raw Data for Fact Table
  2. Look up Slowly Changing Dimension of the Type 1 Key
  3. Look up Slowly Changing Dimension of the Type 2 key

Orchestration [10:29 minutes]
  1. Loading Dimensions in Parallel
  2. Creating Master Jobs

ID-based Change Data Capture [9:46 minutes]
  1. Implementing Change Data Capture (CDC)
  2. Creating a CDC Job Flow

Final Touches: Logging and Scheduling [11:14 minutes]
  1. Setting up a Dedicated DB Schema
  2. Setting up Built-in Logging
  3. Scheduling on the Command Line

viernes, mayo 30, 2014

MANUAL PARA LA SOLUCIÓN DE ERRORES EN LAS HERRAMIENTAS XAMPP, PENTAHO Y SAIKU.

Estimad@s,

en este caso publicaré un material que no es mio, pero que considero de muy buena calidad, además que a much@s de ustedes les puede ser de gran ayuda.

Se trata de un articulo en el cual se instalarán paso a paso las aplicaciones que se listan en la Figura 1, además de contener el detalle de despliegue y configuración inicial, se realiza un reporte de posibles errores y sus respectivas soluciones, a mi criterio es el último punto el valor agregado más grande de este documento.

Figura 1

El productor del articulo es Ivan Felipe Molano Ardila (ivanfelipe@outlook.com) asesorado por Andrés Camilo Ramirez Gaita (a_kmilo@hotmail.es) ambos pertenecientes a la Facultad de Matemáticas e Ingenierías de la Fundación Universitaria Konrad Lorenz.

El material se descarga desde este link.

Espero que les sea de utilidad.

Saludos

Mariano

jueves, septiembre 12, 2013

Revisión del libro: Instant Pentaho Data Integration Kitchen

Hace unos días he recibido el libro "Instant Pentaho Data Integration Kitchen" para realizar una revisión. El autor del libro es  Sergio Ramazzina.
Hasta el fin de semana pasado no había tenido tiempo de leerlo, al abrirlo me encontré con una obra de unas 70 páginas aproximadamente que constituye una guía con buen nivel de detalle de las herramientas kitchen y pan de Pentaho Data Integration (PDI), o para los más viejos, Kettle.
El libro guía al lector en el aprendizaje de estas herramientas mediante ejemplos prácticos muy simples y concretos.
La ejecución de trabajos y transformaciones dentro y fuera de un repositorio y no son un tabú.
Este libro demuestra la flexibilidad que brindan estas herramientas ejecutadas desde la consola.

Recomiendo la lectura de este libro, más de un usuario habitual de PDI se sorprenderá.

Saludos
Mariano

jueves, marzo 28, 2013

Leer datos de XML y escribirlos en un archivo tabulado CSV con Kettle

Hola Gente,

tengo algo armado hace un tiempo y a raíz de alguna pregunta en redopenbi lo publico aquí.
Se trata de leer un archivo XML y convertirlo en un archivo plano separado por comas utilizando Pentaho Data Integration (PDI) o Kettle.

Introducción

PDI siempre tratará de convertir las fuentes de entrada en filas y columnas, con este principio hay que partir siempre que uno intente hacer algo con este software.

El XML en un tipo de datos jerárquico, por ello habrá que transformarlo a dato tabular. Para manipular XML se utiliza XQuery y XPath como para manipular datos relacionales utilizamos SQL, cualquiera que quiera trabajar con este tipo de datos debe interiorizarse con estos conceptos.


Objetivo

Nuestro objetivo es leer el archivo entrada.txt, obtener los datos que deseamos y escribirlos en un archivo tabular separado por comas llamado salidaCSVFromXML.txt



El archivo entrada.xml contiene:



<?xml version="1.0" encoding="UTF-8"?>
<raiz> 
  <dato id="1">dato 1 
    <otroDato atributo="ab">otro dato 1</otroDato> 
  </dato>  
  <dato id="2">dato 2 
    <otroDato atributo="abc">otro dato 2</otroDato> 
  </dato>  
  <dato id="3">dato 3 
    <otroDato atributo="abcd">otro dato 3</otroDato> 
  </dato>  
  <dato id="4">dato 4 
    <otroDato atributo="abcde">otro dato 4</otroDato> 
  </dato> 
</raiz>



El archivo salidaCSVFromXML.txt contendrá:


datoCol;idCol;otroDatoCol;atributoCol
dato 1; 1;otro dato 1;ab
dato 2; 2;otro dato 2;abc
dato 3; 3;otro dato 3;abcd
dato 4; 4;otro dato 4;abcde

El mapeo está claro y es:

Texto del nodo /raiz/dato a columna datoCol
Valor del atributo id del nodo /raiz/dato a columna idCol

Texto del nodo /raiz/dato/otroDato a columna otroDatoCol
Valor del atributo atributo del nodo /raiz/dato/otroDato a columna atributoCol


Manos a la obra

Abrimos Kettle utilizando el comando spoon.sh o spoon.bat según nuestro sistema operativo.
Creamos una nueva transformación y arrastramos al editor los pasos Entrada\"Obtener datos XML" y a la derecha Salida\"Salida Fichero de Texto", luego unimos ambos pasos y editamos la entrada XML haciendo doble click.

En la primera pestaña configuramos:



En la segunda pestaña debemos configurar cual será el nodo a ciclar, cada ciclo creará una nueva fila. En nuestro caso /raiz/nodo, en cada ciclo se asume que se trabaja a partir de este nodo. La cadena /raiz/nodo es una instrucción XPath.



Para darnos una idea de que implica esto, podemos utilizar uno de los tantos testers XPath online que existen, por ejemplo este http://www.mizar.dk/XPath/Default.aspx

Si colocamos:


Y presionamos el botón "Test XPath", obtenemos el resultado con los nodos seleccionados por la expresión XPath en color:


Recomiendo utilizar estas herramientas siempre que haya que evaluar expresiones XPath.

Volvamos a Kettle y configuremos la pestaña "Campos" de la siguiente manera:


Notemos que lo que colocamos en la columna XPath es relativo a lo que definimos en la pestaña  anterior, por ejemplo la tercera fila que define la columna otroDatoCol, tiene la expresión XPath otroDato/text(), pero la expresión completa es /raiz/dato/otroDato/text(), podemos ver la salida en el tester online con esta expresión completa:



Ahora podemos presionar el botón "Previsualizar filas" en Kettle y obtendremos:


Ahora cerramos el editor del paso presionando el botón "OK" y editamos el paso de salida de texto haciendo doble clic en el, en la primera pestaña configuramos lo siguiente:


Luego en la pestaña "Campos" presionamos el botón "Traer Campos" y quedará como sigue:



Cerramos este paso presionando el botón "OK" y listo, ya lo podemos ejecutar.

He subido a mi repo de github la trasnformación y el archivo de entrada de ejemplo: https://github.com/magm3333/material-osbi/tree/master/XML2CSV

Espero les sea de utilidad

Saludos

Mariano

jueves, enero 31, 2013

Federación de datos con PDI 5

Hola Gente,

por estos días han presentado las nuevas características de Pentaho Data Integration 5 (PDI o Kettle), son realmente muchas y por demás interesantes, aquí tienen la presentación del webex pasado, lamentablemente tuve que ver la versión offline ya que estaba de vacaciones.
Dentro de las nuevas características se encuentra una muy esperada, al menos por mí, se trata de la posibilidad de federar datos utilizando PDI.

Que es la federación de datos?
Bien, sin entrar en consideraciones técnicas diremos que la federación de datos es la posibilidad de vincular datos de orígenes heterogéneos (en esto PDI es excepcional!!!) y poder accederlos desde un único punto.

Ahora bien, PDI permite acceder prácticamente a lo que queramos, ahora bien, como accedemos luego?, bien lo haremos mediante el driver JDBC para Kettle, si si si, dije bien, ya disponemos de un driver JDBC para Kettle llamado (Thin Kettle JDBC driver).

No ahondaré mucho en teoría, aquí hay un link para profundizar, lo que si haré es desarrollar un ejemplo exponiendo el resultado de una transformación como servicio y luego consumiéndolo desde una clase java, ejemplo que aun no he visto en la web.

Comencemos diciendo que hace falta la versión 5 de PDI que aún está en desarrollo y la pueden descargar desde aquí.

Todo el material que explico lo pueden descargar desde aquí.

Creando la transformación.
Una vez que nos encontramos en la UI de PDI (spoon) creamos una transformación y la guardamos con el nombre listaPersonasDS.ktr, en mi caso la he almacenado en: /home/mariano/Documentos/material-osbi/pdi-Dataservices/listaPersonasDS.ktr, llamemos a esta localización TRANSF_HOME.

La transformación se verá finalmente como se muestra en la siguiente figura:

Es muy sencillo lo que esta transformación realiza solo une una tabla con datos de personas con una tabla con datos de canciones para conocer que canción le gusta a cada persona. Si bien el ejemplo es muy sencillo remarco que estamos accediendo a datos de orígenes diversos y herterogeneos, en algunos casos muy complejos de configurar y mantener, pero como ya he dicho antes "a esto se dedica don Kettle".

El paso (1) genera una tabla inline mediante el paso "Data Grid" con datos sobre personas, los datos son:

La metadata es:

El Paso (2) obtiene la lista de las canciones de un archivo txt mediante el paso "Input Text File", este archivo se encuentra en la web en la dirección: https://raw.github.com/magm3333/material-osbi/master/pdi-Dataservices/listaCanciones.txt. Las canciones serán vinculadas a las personas mediante su clave (idCancion).


Los pasos (3) y (4) solo ordenan los datos por idCancion ya que el paso (5) así lo requiere.

Por último, el paso "salida" selecciona las columnas que serán el resultado final, se puede notar que este paso tiene un pequeño icono arriba a la derecha:


Este icono significa que este paso se está utilizando como paso de servicio, en otras palabras, desde este paso se expondrán los datos como servicio. Para realizar esta configuración presionamos Ctrl+T para acceder a las propiedades de la transformación, luego en la pestaña "Data Service" indicamos los datos del servicio como lo podemos ver en la siguiente figura:


Es necesario dar un nombre al servicio, en este caso "listaPersonas" y seleccionar el paso del cual se obtendrás los datos de salida que serán expuestos. También tenemos la posibilidad de hacer caching de datos, solo recomendado para servicios cuyos datos no cambian.

Bien, eso es todo en cuanto a la transformación.

Configurando Carte:

Es mediante el servidor web Carte que se prestará el servicio.
Carte permite realizar muchas tareas y expone los comandos mediante servicios web RESTfull.

Podemos realizar configuraciones personalizadas a Carte de forma muy sencilla, vamos a configurar nuestro servicio de datos federado de esta forma. Solo debemos crear un archivo XML, en mi caso:
/home/mariano/Documentos/material-osbi/pdi-Dataservices/configuracionCarte.xml, llamemos a esta ruta CARTECONFIG_HOME.

El contenido del archivo es:

 

<slave_config>  
  <slaveserver>    
    <name>slave1</name>    
    <hostname>localhost</hostname>    
    <port>8088</port>    
  </slaveserver>  
  <services>  
    <service>    
      <name>listaPersonas</name>     
      <filename>[TRANSF_HOME]</filename>     
      <service_step>salida</service_step>   
    </service>
  </services>
</slave_config>


Como podemos ver es más que sencilla la configuración, solo debemos recordar bien el puerto y colocar correctamente el valor de [TRANSF_HOME], en mi caso:
<filename>/home/mariano/Documentos/material-osbi/pdi-Dataservices/listaPersonasDS.ktr</filename>  

Ejecutando Carte con la configuración personalizada:

Una ves que guardamos el archivo de configuración, abrimos un interprete de comandos de nuestro sistema operativo, nos posicionamos en la carpeta HOME de PDI y ejecutamos:

Linux o Mac OS:

sh carte.sh [CARTECONFIG_HOME]

Window$:

carte.bat [CARTECONFIG_HOME]

Podemos verificar el estado del servicio colocando en nuestro browser: http://localhost:8088/kettle/status/, deberíamos ver algo así:


 La clase java:

La clase java es muy sencilla y la muestro a continuación.



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class TestPDIDS {
public static void main(String[] args) throws Exception {

Class.forName("org.pentaho.di.core.jdbc.ThinDriver");

Connection cn = DriverManager.getConnection(
"jdbc:pdi://localhost:8088/kettle", 
"cluster", "cluster");

String sql = "SELECT nombre,so,cancion "+
"FROM listaPersonas "+
"WHERE edad<50 ORDER BY edad";
ResultSet rs = cn.createStatement().executeQuery(sql);
System.out.println("Nombre\t\tSO\tCanción");
System.out.println("------\t\t--\t-------");
while (rs.next()) {
String nombre = rs.getString(1);
if (nombre.length() > 7)
nombre += "\t";
else
nombre += "\t\t";
System.out.println(nombre + rs.getString(2) + 
"\t" + rs.getString(3));
}
}

}

Como se puede apreciar es un programa que utiliza JDBC de forma estándar y sin sorpresas. Lo único a tener en cuenta es que la implementación de Driver es: org.pentaho.di.core.jdbc.ThinDriver y la URL tiene la forma: jdbc:pdi://localhost:8088/kettle luego el usuario y contraseña son: clutser/cluster.
Respecto al soporte SQL, puede verse la información en la wiki de pentaho: http://wiki.pentaho.com/display/EAI/The+Thin+Kettle+JDBC+driver


La salida luego de la ejecución de esta clase es:


Nombre SO Canción
------ -- -------
Sebastian Linux fusilados por la cruz roja
Catalina Linux toxi-taxi
Rodrigo Linux mi perro dinamita
Damian Window$ toxi-taxi
Dario Linux blues de la artilleria
Federico Linux musica para pastillas
Juan Linux un poco de amor frances
Emanuel Window$ fusilados por la cruz roja
Andrea Linux un poco de amor frances
Mariano Linux mi perro dinamita


Las librerías que necesité para que esta clase se ejecute correctamente son:


[PDI_HOME]/lib/kettle-core-TRUNK-SNAPSHOT.jar
[PDI_HOME]/lib/commons-vfs-20091118-pentaho.jar
[PDI_HOME]/lib/log4j-1.2.16.jar
[PDI_HOME]/lib/commons-logging-1.1.1.jar
[PDI_HOME]/lib/kettle-db-TRUNK-SNAPSHOT.jar
[PDI_HOME]/lib/kettle-engine-TRUNK-SNAPSHOT.jar
[PDI_HOME]/lib/commons-httpclient-3.1.jar
[PDI_HOME]/lib/commons-lang-2.6.jar
[PDI_HOME]/lib/commons-codec-1.5.jar



Si chequeamos el status nuevamente, aparecen las ejecuciones de nuestras consultas:


Luego podemos hacer click en cualquier consulta y nos mostrará detalles de la ejecución de la transformación:



Sin duda que pueden hacer uso de este driver desde otras tecnologías como: Pentaho Report Designer, BIRT, Jaspper Reports. Pentaho Schema Workbench, etc, pero queda fuera del alcance de este post.

Conclusión:

Que decir de esto que no se vea a simple vista, solo que es una característica nueva muy potente que otorga más flexibilidad al ya increíble PDI. Seguramente con el transcurrir del tiempo irá mejorando y creciendo, sobre todo dando más soporte a SQL.

Espero que les sea de utilidad

Saludos

Mariano


martes, julio 19, 2011

Pentaho Data Integration 4 Cookbook

He recibido con mucho agrado una copia de "Pentaho Data Integration 4 Cookbook", un libro muy esperado.



Particularmente pienso que el formato Cookbook es el más cómodo una vez que manejamos un software, Poseo varios libros de este tipo y me han sido de mucha utilidad. Por otro lado, me adelanto a decir, que si este libro tiene la misma calidad que el anterior, está todo dicho.

Gracias a Richard Dias (Packt Publishing) y a Maria Carina Roldan (co-autora)

Saludos

Mariano

martes, diciembre 07, 2010

Pentaho 3.2 Data Integration: Beginner's Guide (fin de lectura)

Estimados,

luego de un tiempo considerable he finalizado la lectura de "Pentaho 3.2 Data Integration: Beginner's Guide" escrito por María Carina Roldán.

En pocas palabras, un muy buen libro!

La cantidad de ejemplos, sobre todo de procesos no triviales y poco utilizados, hacen de este libro una opción inteligente a la hora de aprender sobre PDI e integración de datos.

Uno de los capítulos que más ha llamado la atención es el dedicado a Javascript embebido.

También podrán leer sobre como armar datamarts mediante la utilización de los pasos necesarios y su configuración.

No intento hacer un resumen del libro ni mucho menos, pero considero que su lectura es fundamental para aquellos que se inician con PDI e integración de datos y muy recomendable para aquellos que ya lo conocen y quieren profundizar.

Saludos

Mariano García Mattío

miércoles, agosto 11, 2010

Pentaho 3.2 Data Integration: Beginner's Guide

Estimados,

este fin de semana lo he dedicado a leer gran parte de  "Pentaho 3.2 Data Integration: Beginner's Guide" un libro escrito por María Carina Roldán.
La verdad, la sorpresa ha sido muy grata, el libro es muy ameno, las explicaciones detalladas y adornadas por variados ejemplos. El libro abarca temas integrales además del software en sí.
El lector podrá aprender desde cero la utilización y pontencialidad que posee PDI, como crear trabajos, transformaciones el uso de pasos triviales y complejos.

En cuanto finalice con la lectura haré más comentarios.

Saludos

Mariano García Mattío

Etiquetas

pentaho (45) java (35) eclipse (23) jdbc (14) curso (13) tomcat (13) primefaces (12) db2 (11) mondrian (10) review (10) jsf (9) openI (9) pdi (9) prd (9) libro (8) plugin (8) musql (7) struts (7) javascript (6) spring (6) cdf (5) ctools (5) instalar (5) linux (5) mysql (5) data studio (4) hibernate (4) ireport (4) jasper (4) meteor (4) videocurso (4) eglu (3) eglubi (3) elearning (3) graphite (3) grupo eglu (3) jboos tools (3) mexico (3) openbits (3) packt (3) python (3) undec (3) websphere (3) applet (2) cde (2) dao (2) db2university (2) exelearning (2) flexigrid (2) hadoop (2) iua (2) kettle (2) moodle (2) node (2) olap (2) osbi (2) pivot4j (2) scorm (2) sql (2) stpivot (2) actionscript (1) amazon (1) autenticacion (1) avanzado (1) base de datos (1) big data (1) bigdata (1) bodoc (1) cambiar (1) ccc (1) cdc (1) chat (1) cloud (1) coffeescript (1) control de acceso (1) corti (1) csv (1) cuba (1) curso meteor undec (1) dashboard (1) datamart (1) dataptix.tv (1) datasource (1) datatable (1) db2 ExpressC (1) demonio (1) distancia (1) driver (1) driver jdbc (1) eglufiltertwolist (1) encapsulamiento (1) especialización (1) etl (1) excepciones (1) export (1) faces (1) federación (1) filas afectadas (1) filtertwolist (1) filtrado (1) flegrid (1) flex (1) google (1) google viz (1) hostname (1) html (1) i18n (1) ibm (1) identidad (1) indignación (1) instancias (1) inteligencia de negocios (1) jee (1) jpivot (1) l10n (1) la azada (1) la zaga de los confines (1) layout (1) liberado (1) libre (1) libro promoción (1) lob (1) marktplace (1) menu (1) meteor node javascript google oauth autenticacion (1) mobile (1) mongoDB (1) node.js (1) oauth (1) olap4j (1) open source (1) orm (1) persistencia (1) personalizada (1) prd5 (1) psw (1) publicidad (1) rad6 (1) recursividad (1) reporting (1) rock (1) saiku (1) script (1) servicio (1) sessiontimeout (1) sourceforge (1) spinneta (1) sqlserver (1) ssl (1) taller (1) troyanx (1) ubuntu (1) ucc (1) ui (1) web (1) web console (1) xampp (1) xml (1) xpath (1)

Seguidores