|
Mostrando entradas con la etiqueta Kettle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Kettle. Mostrar todas las entradas

martes, 3 de septiembre de 2013

Cambiando la contraseña del Repositorio de KETTLE

A password key? 

En el momento de crear el repositorio, PDI en ninguna parte, nos da la opción de elegir la contraseña del repositorio, sino que nos deja las credenciales por defecto user:admin y pass:admin. Para cambiar la contraseña, luego de conectarnos al repositorio, debemos ir al menú Tools -> Repository -> Explore y damos clic en el pestaña Security.


Seleccionamos el usuario admin y damos clic en el botón editar  


En la ventana que nos aparece, podemos escribir la nueva contraseña y dar clic en OK. Demasiado sencillo ¿no?, tan sencillo que ni siquiera nos pide confirmar la nueva contraseña o ingresar primero la actual (FAIL de Pentaho), así que debemos ser muy cuidadosos al escribirla, no sea que por un caracter perdamos el acceso a nuestro repositorio.

Entrada muy corta pero espero que les haya sido útil. Éxitos a todos.

sábado, 27 de julio de 2013

Cambiando la ubicación de .kettle: Definir KETTLE_HOME

Kettle 

No siempre la ubicación por defecto del directorio .kettle (Ver mas sobre la carpeta .kettle) es la mas adecuada para un servidor de Pruebas o Producción. Si deseamos cambiar esta ruta, es necesario crear la variable de entorno KETTLE_HOME. A continuación explico los pasos para realizar estos cambios tanto en Windows como en Linux.

En Windows


En el explorador de Windows damos clic derecho sobre Equipo -> Propiedades -> Configuración Avanzada del Sistema

En la pestaña Opciones Avanzadas damos clic en el botón Variables de Entorno y luego en el botón Nueva ...

Creamos una variable con nombre KETTLE_HOME, cuyo valor será la ruta asignada para la configuración, en este caso c:\pentaho



Aceptamos y reiniciamos spoon.bat para que Pentaho tome los cambios.

En Linux

En este sistema operativo debemos editar algunos archivos de configuración y ejecutar algunos comandos, por lo que deberíamos tener acceso root.
Editar el archivo con ruta /etc/profile y agregar al final las siguientes línea:
KETTLE_HOME=/datos/pentaho/kettle/common
export KETTLE_HOME
Guardar el archivo y ejecutar el siguiente comando en una consola con permisos root.
source /etc/profile
Comprobar con el siguiente comando que la variable este asignada:
echo $KETTLE_HOME
    Ejecutar spoon.sh para que Pentaho tome los cambios.
      Hasta un próxima entrada, que sigan pasando un buen día.

      jueves, 25 de julio de 2013

      Migrando la Configuración de PDI: el directorio .kettle

      Traveling bags


      Es común que tengamos varios equipos de desarrollo, o que necesitamos migrar la configuración de Kettle desde un servidor de desarrollo a uno de pruebas o producción. Esta configuración incluye variables, conexiones compartidas a bases de datos y nuestros repositorios. Si algún día necesitan migrar esta configuración la siguiente información les puede resultar muy útil.

      Los archivos de configuración de Pentaho Data Integration los podemos ubicar bajo el directorio .kettle, el cual esta alojado en nuestra carpeta de usuario:

      En Windows (Vista, 7 y 8) -> C:\Users\NombreUsuario
      En Linux -> /home/NombreUsuario. 

      Para poder acceder a él es necesario tener habilitada la visualización de archivos ocultos. Si queremos un configuración idéntica basta con copiar todo el contenido de la carpeta a nuestra .kettle de la nueva máquina. Si queremos copiar solo ciertas configuraciones, tenemos tener claro el contenido de cada archivo:

      Los principales archivos de configuración que encontramos son:

      kettle.properties: Archivo que nos permite definir variables globales del aplicativo. Por ejemplo podemos crear una variable con el nombre de nuestro servidor de bases de datos, TEST_SERVER, y luego llamarla en nuestras transformaciones de la forma ${TEST_SERVER}. Así que si llegara a cambiar el nombre del servidor, simplemente debemos asignarle el nuevo valor en el kettle.properties y no modificar nuestras transformaciones y jobs.

      PRODUCTION_SERVER = hercules
      TEST_SERVER = zeus
      DEVELOPMENT_SERVER = thor
      SERVER_PORT = 1521
      SERVER_SCHEMA = TRANSACT
      


      shared.xml: En este archivo encontramos todas nuestras conexiones compartidas (Mas información en Configurando conexiones en Sppon). Si simplemente queremos copiar una conexión compertida, podemos identificarla dentro de las etiqueta <connection>, copiarla y pegarlo en el shared.xml de otra servidor con Pentaho. Las contraseñas de conexión en este archivo están encriptadas.


      <connection>
          <name>DATAWAREHOUSE</name>
          <server>localhost</server>
          <type>ORACLE</type>
          <access>Native</access>
          <database>xe</database>
          <port>1521</port>
          <username>DWAREHOUSE</username>
          <password>Encrypted 2be98fc8aa7bb38a2b8b58f1a79cff</password>
          <servername/>
          <data_tablespace/>
          <index_tablespace/>
          <attributes>
            <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
            <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
            <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
            <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
            <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
            <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
            <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
          </attributes>
        </connection>
      
      

      repositories.xml: Aparte de los archivos .ktr y .kjb, podemos crear las transformaciones y jobs en un repositorio de bases de datos. Si queremos acceder al repositorios desde varias computadores, es necesario tener definida tanto la conexión como el repositorio, que podemos identificar con las etiquetas <connection> y <repository> respectivamente.

      <repositories>
        <connection>
          <name>KREPOSITORY</name>
          <server>albafika</server>
          <type>ORACLE</type>
          <access>Native</access>
          <database>xe</database>
          <port>1521</port>
          <username>KREPOSITORY</username>
          <password>Encrypted 2be98afc86aa7f2e4bb18bd63c99dbdde</password>
          <servername/>
          <data_tablespace/>
          <index_tablespace/>
          <attributes>
            <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
            <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
            <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
            <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
            <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
            <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
            <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
          </attributes>
        </connection>
        <repository>    <id>KettleDatabaseRepository</id>
          <name>REPOSITORIO_DESARROLLO</name>
          <description>REPOSITORIO_DESARROLLO</description>
          <connection>KREPOSITORY</connection>
        </repository>
        </repositories>
      


      En una próxima entrada veremos como cambiar la ruta del directorio .kettle

      Dios los bendiga y exitos

      jueves, 4 de julio de 2013

      Reemplazando caracteres especiales en KETTLE

      A regexp to match regexp
      El step Replace in String nos simplifica bastante la limpieza de información, y más, si se utiliza para realizar reemplazos utilizando expresiones regulares.  Tal vez queremos borrar los caracteres especiales de una cadena de texto (Al día de hoy la definición exacta de caracter especial sigue siendo una incógnita).  Sería engorroso escribir una regla, que reemplace por una cadena vacía cada carácter especial que existe.  En este caso sería mas fácil decirle que reemplace un conjunto de caracteres por la cadena vacía. Aquí es donde la expresiones regulares entran en el juego.

      Con una expresión regular básica podemos podemos definir un conjunto de caracteres. En la Internet encontramos una expresión regular muy común, la cual representa caracteres alfanuméricos:

      [0-9A-Za-z] 

      Esta expresión sería suficiente por ejemplo para representar nombres de personas en países anglosajones, pero como hispano parlantes, sería suficiente para representar nombres propios como ¿EDUARDO NUÑEZ RODRÍGUEZ? De nuestro idioma hacen parte diacríticos y la letra Ñ, así las tecnologías de la información estimulen su desuso.

      Así que mi versión de caracteres NO ESPECIALES (Incluyendo el espacio en blanco) sería la siguiente:

      [0-9A-Za-zÁÉÍÓÚáéíóúÑñ ]

      Entonces los caracteres ESPECIALES serían todos que aquellos que esten por fuera de este conjunto, y esto lo podemos hacer anteponiendo el caracter ^:

      [^0-9A-Za-zÁÉÍÓÚáéíóúÑñ ]

      Con una variación de esta expresión regular, podríamos en una sola instrucción del Replace in String, borrar todos los caracteres distintos a los especificados.

      Nuestra transformación constará simplemente de un Generate Rows para realizar un caso de prueba y un Replace in String:


      El paso Generate Rows, generará 10 filas, con la columna CADENA, todas con el valor a limpiar ANA@ M@RÍA #ROJAS HERNA&NDEZ''''''''''''''''


      El paso Replace in String, elegiremos realizar la operación sobre la columna CADENA, habilitamos la opción useRegEx (Y), en Search escribimos nuestra expresión regular [^0-9A-Za-zÁÉÍÓÚáéíóúÑñ ] y en Replace With dejamos vacío.


      Guardando la transformación y haciendo una previsualización, el valor en la columna CADENA quedó como ANA MRÍA ROJAS HERNANDEZ.


      Al cambiar la expresión regular por [0-9A-Za-zÁÉÍÓÚáéíóúÑñ ] obtendremos el resultado contrario:


      Podemos cambiar nuestra expresión para aceptar otros caracteres comunes como el ampersand (&) o la cedilla (Ç), o utilizar la expresion [^0-9] para borrar todos los caracteres no numéricos. Les aconsejo el siguiente link http://www.w3schools.com/jsref/jsref_obj_regexp.asp para conocer un poco más de las Expresiones Regulares.

      ¡Exitos y Buena Suerte!


      ..

      miércoles, 26 de junio de 2013

      Operaciones sobre cadenas en KETTLE

      Pick a letter...

      En la entrada anterior tratamos como pasar una tabla de un base de datos a otra, sin realizar ningún proceso intermedio, es decir, realizamos un proceso de Extracción y Carga, pero no aplicamos ningún tipo de Transformación sobre los datos, que es tal vez, la parte mas importante dentro del proceso ETL.

      Kettle nos proporciona diversos pasos para manipular y limpiar los datos, ahorrándonos bastante escritura de código, y con la facilidad de que cada componente utilizado, realiza los procesos para todos registros del flujo, olvidándonos del manejo de ciclos, arrays o cursores, que en los lenguajes de programación tendríamos que controlar por nuestra cuenta. Cuando manejamos información de distintas fuentes, las cadenas de texto pueden llegar a ser un gran dolor de cabeza: espacios dobles, caracteres especiales, tildes, espacios a la izquierda o a la derecha, mayúsculas, minúsculas ... en fin problemas que si no se solucionan, pueden generar errores al realizar inserciones en la base de datos destino. En esta entrada trataré dos de los pasos más utilizados durante mi experiencia para realizar limpieza de información: String Operations y Replace in String.

      Step String Operations

      No hay mejor explicación que un ejemplo, así que para empezar, podemos arrastrar un paso String Operations entre el Table Input y el Table Output del ejemplo que tratamos en la entrada anterior .

      Esta transformación va a cambiar a mayúscula sostenida los atributos FIRST_NAME y LAST_NAME, de los datos obtenidos de la tabla EMPLOYEES del modelo HR. Para ello damos clic sobre el paso String Operations y en la columna In Stream Field, seleccionamos alguno de los campos del flujo que sean tipo String. Como podemos ver, podemos realizar operaciones sobre varias columnas a la vez.

      Este step nos brinda opciones varias opciones:

      Trim Type: Permite quitar espacios en blancos, ya sea a la derecha, a la izquierda o a ambos lados de la cadena.

      Lower/Upper: Nos da la opción de poner la cadena, en mayúscula o minúscula sostenida.

      Padding, Pad Char y Pad Length: Con padding podemos elegir si queremos rellenar la cadena a la izquierda o a la derecha con el carácter definido en Pad Char, hasta la longitud definida en Pad Length. Ejemplo: si tenemos el cadena '11', definimos un Pad Cahr '0' y un Pad Length 5,el resultado será 00011.

      InitCap: Agrega mayúscula inicial a la cadena, muy útil en el manejo de nombres propios.

      Escape: una función muy útil para escapar caracteres especiales según un lenguaje de programación o formato de archivo. Por ejemplo, en  XML, las letras tildadas, las cambiará a su respectivo código.

      Digits: Deja solo los caracteres 0-9 si elegimos la opción only, o los elimina por completo si dejamos la opción remove.

      Remove Special character: permite elegir entre una lista de caracteres especiales a remover, por ejemplo, los retornos de carro, espacios en blanco o tabuladores.

      Volviendo a nuestro ejemplo, el paso String operations quedará como muestra la imagen, simplemente se pasarán a mayúscula las columnas FIRST_NAME y LAST_NAME del flujo:



      Step Replace in String


      Otro paso muy útil en el manejo de cadenas es Replace in String, que simplemente nos permite reemplazar una cadena por otra

      En el ejemplo, lo podemos utilizar para reemplazar los puntos (.) en PHONE_NUMBER por guiones (-) . Para ellos arrastramos un Replace in String a la transformación, en In stream field elegimos PHONE_NOMBRE, en Use Regex escribimos N para no utilizar expresiones regulares (La utilización de expresiones regulares la veremos en otra entrada) y en Search y Replace with, ponemos los cadenas a buscar y reemplazar (. por -), respectivamente, como lo muestra la imagen. Si la idea es desaparecer el carácter buscado, simplemente dejamos vacía la columan Replace With.


      Previsualizando el flujo de KETTLE

      Hasta este punto, podemos realizar una pre visualización  para ver como van nuestros datos transformados, haciendo clic en un paso y luego en el botón Execute Preview. Nos aparecerá un diálogo donde nos pedirá confirmar la cantidad de filas a previsualizar. Como siempre les digo, evitemos poner un valor muy alto, si nuestra máquina de desarrollo no es muy potente o no hemos configurado los parámetros de memoria de nuestro PDI. Finalmente clic en el botón Launch.



      Con estos dos steps, ya podemos idear varias transformaciones para realizar limpieza de información. ¿Que tal reemplazar todos los espacios dobles por uno solo? o ¿Cambiar los símbolos @ por la letra 'a'?, bueno al final todo dependerá de los requerimientos en nuestros proyectos. Nos podría surgir la pregunta ¿Porqué no hacer esto directamente en el script SQL que trae los datos? ... Bueno Pentaho ya viene optimizado para realizar estas tareas, y utilizará los recursos del servidor en el que se ejecute, evitando ponerle una carga mayor al SGBD, además no siempre nuestro origen de información será una base de datos, los ominipresentes archivos planos y las hojas de excel, seguirán siendo pan de cada día en las empresas. Aunque tengamos en cuenta, los SGBD serán mas eficientes en otras tareas como ordenamientos y JOINS, así que como desarrolladores, podemos analizar, pobrar y elegir la mejor opción.

      Esto fue todo por hoy ¡Buen día y bendiciones!
      Enhanced by Zemanta

      domingo, 23 de junio de 2013

      Lo básico en PDI: migrando tablas entre bases de datos

      Migracion

      Bueno ahora vamos a realizar un ejercicio básico: migrar una tabla de dos bases diferentes.

      En este caso voy a utilizar los gestores de base de datos Oracle Express Edition y MySQL Server Community. La idea, es copiar una tabla del usuario de ejemplo HR en Oracle y pasarla al esquema TEST de MySQL.

      Desbloquear el usuario HR en Oracle


      Si acabos de instalar Oracle Express Edition, el usuario HR esta bloqueado por defecto, por desbloquearlo nos conectamos con el usuario SYSTEM y la contraseña que definimos durante la instalación y ejecutamos los siguientes comandos:
      ALTER USER HR ACCOUNT UNLOCK;
      -- Cambia la contraseña
      ALTER USER HR IDENTIFIED BY password;
       -- Da permiso de conexión y acceso de los objetos propios
      GRANT CONNECT, RESOURCE TO HR;
      

      Acceder al usuario TEST en MySQL


      El usuario TEST de MySQL por defecto no tiene objetos creados. Inicialmente la conexión a Root se hace sin contraseña.

      Creando la nueva transformación en PDI


      Creamos una nueva transformación que vamos denominar tr_migrar_tabla. Vamos al panel izquierdo y vamos a rastrar un paso tipo Table Input y otro Table Output. Ahora creamos las dos conexiones, las cuales vamos a nombrar CONEX_ORACLE_HR y CONEX_MYSQL_TEST respectivamente. Para mayor información de cómo configurar conexiones podemos remitirnos a la entrada Configurando conexiones en Spoon.


      Configurando la Tabla de Origen

      En el  paso Table Input, vamos a elegir la conexión CONEX_ORACLE_HR. En el cuadro de texto SQL, escribimos la consulta

      SELECT * FROM EMPLOYEES
      




      Error Común: No  se deben usar el carácter punto y coma (;) para finalizar la sentencia en los Table Input.

      Damos clic en el botón Preview para comprobar que nuestra consulta funciona correctamente. Nos dará la opción de elegir cuantas filas queremos previsualizar, normalmente 1000. Es importante que no se nos vaya la mano con el número de filas, si escribimos una cantidad muy grande podríamos tener problemas de memoria y bloquear la aplicación.


      Crear un salo entre dos pasos


      Para conectar dos pasos damos clic en la paso origen (Table Input), elegimos el icono con la flecha verde apuntando a la derecha y con clic sostenido conectamos con el paso destino (Table Output). En algunos casos nos dará a elegir entre dos opciones: Main output of Step o Error handling of Step, para la mayoría de los casos escogemos Main output of Step. Error handling of Step será tema de una nueva entrada sobre captura de errores.



      Configurar la tabla de destino

      Vamos a Table Output, elegimos la conexión CONEX_MYSQL_TEST, y en Target Table escribimos el nombre de la tabla de destino en este caso EMPLOYEES. Luego damos clic en el botón SQL, para que Pentaho automáticamente nos genere el Script de la tabla de destino en el esquema TEST. Lo revisamos y damos clic en Execute.


      Finalizando esta configuración podemos ejecutar la transformación: Clic en la flecha verde "Run transformation" y luego en el diálogo que nos aparece, sobre el botón Launch.

      Si la transformación se ejecuta correctamente, desde línea de comandos de MySQL podemos comprobar que la tabla este creada y con los datos migrados, ejecutando las siguientes sentencias:

      use test;
      SELECT * FROM EMPLOYEES LIMIT 10;
      


      Este fue un ejercicio muy sencillo pero muy útil cuando estamos empezando en el manejo de Kettle, pero es suficiente para ver que es una herramienta muy gráfica y fácil de manejar. Realizamos un migración de una tabla sin necesidad de exportar los datos en archivos planos u otro formato, o sin siquiera intentar el engorroso proceso de conectar las bases de datos directamente. 

      Espero que les haya sido de utilidad este post. ¡Que pasen un muy buen día y exitos!

      lunes, 3 de junio de 2013

      Pentaho Data Integration - Kettle ¿Cómo Instalar?


      Tea Kettle

      Pentaho Data Integration (PDI) o Kettle, es una poderosa, intuitiva y eficiente herramienta, para la realización de procesos de Extracción, Transformación y Carga.

      Es muliplataforma, así que si trabajamos en Windows o en Linux no tenemos por qué preocuparnos. Es muy gráfica, así que nuestros procesos quedan plasmados en forma de flujos, por lo que en el trabajo suelen decirme que me la paso haciendo 'cuadritos'. Lo díficil es conocer el funcionamiento de cada uno de estos 'cuadritos' o los componentes de Kettle denominados steps, son bastantes y algunos tiene poca o nula documentación en la Internet.

      Empecemos por definir algunos conceptos:

      Kettle: Otro nombre con el que se suele denominar Pentaho Data Integration, o mejor el nombre original de la herramienta antes que fuera adquirida por Pentaho.

      Spoon: Programa que permite construir procesos con una interfaz muy gráfica e intuitiva.

      Kitchen: Componente que permite ejecutar jobs por línea de comandos.

      Pan: Componente que permite ejecutar transformaciones por línea de comandos.

      Bueno ... mucha teoría y vamos a la práctica, primero tenes que tener instalado Java en nuestra máquina. La última versión de Java la podemos conseguir en este enlace http://www.oracle.com/technetwork/es/java/javase/downloads/index.html
      • Luego debemos comprobar que exista la variable de entorno JAVA_HOME, para ello damos clic derecho en MiPC -> Propiedades -> Configuración Avanzada del Sistema -> Opciones Avanzadas -> Variables de Entorno. Si no existe, damos clic en Nueva ... y le asignamos la ruta de instalación del JDK o el JRE


      • Cremos un directorio con nombre pentaho en algún lugar de nuestros disco (preferiblemente en la raíz del sistema) y descomprimos el archivo. Nos creará una carpeta llamada data-integration. 
      • Si vamos a trabajar con bases de datos diferentes a MySQL, es necesario descargar los respectivos .jar del JDBC y copiarlos a la ruta ..,/data-integration/libext/JDBC. En mi caso que suelo trabajar con bases de datos Oracle tengo que copiar el archivo ojdbc14.jar
      • Ahora podemos iniciar el programa entrando al directorio de instalación (.../data-integration) y ejecutando el archivo Spoon.bat en Windows o spoon.sh en Linux.


      Si se desean descargar los demás productos de la suite versión community los puede encontrar en la dirección http://community.pentaho.com/. En la próxima entrada veremos como configurarle los parámetros de memoria al Spoon.

      sábado, 1 de junio de 2013

      Pentaho: Introducción



      Pentaho
      Pentaho es un conjunto de programas libres, que abordan las distintas fases de la inteligencia de negocios. En la actualidad se perfila como la suite de inteligencia de negocio de código abierto por excelencia, gracias a su versatilidad, facilidad de uso e integración con prácticamente cualquier origen y base de datos. Ofrece dos versiones, la de pago, Pentaho Enterprise, y la gratuita, Pentaho Community.

      La versión enterprise la podemos descargar del sitio  http://www.pentaho.com/testdrive/ y probarla por 30 días. La versión community, nos ofrece los productos de pentaho por separado, por lo que debemos descargar, instalar y configurar cada uno, tarea que no puede resultar tan sencilla. De igual forma la funcionalidad de estas no son muy limitadas, por lo que gracias a esta versión tenemos poderosas herramientas, para la distintas fase de la inteligencia de negocios, de forma gratuita y abierta.

      Fase Inteligencia de Negocios
      Herramienta
      Extracción, Transformación y Carga
      Pentaho Data Integration – Kettle, Spoon, Carte, Kitchen, Pan
      Diseño de Cubos
      Schema Workbench, Mondrian
      Visualización de Cubos y Reportes
      BI-Server – User Console
      Diseño de Reportes y Aplicaciones
      Pentaho Design Studio
      Minería de Datos
      Weka
      Configuración y Administración
      Pentaho Administration Console

      Este blog se centrará en los procesos de Extracción, Transformación y Cargue, realizados con Pentaho Data Integration (Kettle).

      El cuadro de abajo, muestra las principales difierencias entre la versión Enterprise y Community de Pentaho.


      Pentaho Enterprise Edition
      Pentaho Community Edition
      Suite Completa
      Herramientas vienen por Separada
      Paga – Con Soporte
      Gratuita – Sin soporte
      Incluye Pentaho Analyzer, excelente herramienta para visualizar cubos OLAP.
      No incluye Analyzer report, se puede suplir con pluggins como Saiku
      Configuración Automática
      Configuración Manual
      Consola de Administración Completa
      Consola de Administración Básica

      jueves, 30 de mayo de 2013

      ¡Hola Mundo!

      database_administrator
      En mi experiencia como desarollador de procesos ETL, me he enfrentando a distintos desafíos, con los cuales he tenido que acentuar mi capacidad investigativa, para adentrarme mas y más en el mundo de Pentaho Data Integration, una herramienta fascinante, pero que a la vez, puede llegar a sacarnos muchas canas.

      Esta herramienta adolece de escasez de documentación (y más en idioma español) , incluso en las páginas oficiales, hay varios componentes que no están explicados claramente. Por esta razón he creado este blog, donde a manera de tutoriales, publicaré periódicamente, tips y ejemplos de los componentes que he manejado.

      No soy un experto, pero quiero compartir lo poco aprendido durante algunos años, y aportarles algo muy pequeño de este universo de conocimiento, ¡¡Bienvenidos a Integrando Datos!!

      Mi perfil:

      Ingeniero de Sistemas y Computación
      Especialista en Bases de Datos
      Consultor BI Freelancer
      Dos años de experiencia con Pentaho Data Integration y bases de datos Oracle.

      Related Posts Plugin for WordPress, Blogger...