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

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

      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!

      Related Posts Plugin for WordPress, Blogger...