PDA

View Full Version : Migración de ETL



Predator
06-08-2010, 01:13 AM
Hola... he desarrollado el proceso de ETL desde mi PC de trabajo (PC1) hacia un server de BD que se encuentra en una PC (PC2) y todo me trabaja bien...

Tengo que migrar el proceso de manera que se ejecute desde una PC (Srv 3) hacia una PC (Srv 4)....y.....

Me preguntaba si tengo que redireccionar las conecciones de origen y destino de los datos de cada transformación y trabajo a través del entorno de trabajo de PDI Kettle.... o existe algún archivo de configuración o alguna tabla en específico del repositorio PDI Kettle en el cuál pueda realizar este redireccionamiento de conecciones.

Gracias de Antemano... Saludos.

Angel Alberto
06-08-2010, 12:09 PM
Lo que buscas es el kettle.properties, lo tienes en tu directorio <home>. Pero me parece que ya no te va a servir, porque deberías haberlo hecho desde el principio. Suerte!

tdidomenico
06-08-2010, 05:39 PM
En realidad sería una combinación del archivo kettle.properties y del shared.xml. Ambos se almacenan en "C:\Documens and Settings\<usuario>\.kettle" en Windows y en "/home/<usuario>/.kettle" en Linux.

El shared.xml almacena elementos compartidos (especialmente conexiones). Para compartir elementos le das click derecho y "Compartir" en la parte de la visualización de componentes de la transformación (la vista parecida al Windows Explorer).

El ejemplo sería configurar una conexión, donde todos los campos en realidad contienen variables. Entonces el nombre de usuario contendría "${db_usuario}".

Esa variable, a su vez, estaría definida en el archivo kettle.properties, que almacena simplemente pares clave-valor. El contenido sería, por ejemplo:



db_usuario=miusuario
db_passwd=mipass
...


Además de la parametrización de conexiones, es muy util parametrizar rutas de archivos, etc.

De esa manera, llevándote el shared.xml y el kettle.properties a cualquier máquina donde instales tus transformaciones sólo necesitás editar el kettle.properties y todo funcionaría directamente.

¡Saludos!

Predator
06-10-2010, 06:58 PM
Ya hice que funcionara para las conexiones de BD... fue sencillo pues me encontré en este mismo sitio en FAQs la manera de hacerlo.
Por cierto también me funcionó para las direcciones locales.....

"Cuando yo sea grande quiero ser como ustedes.... Gracias una vez más."

Predator
06-16-2010, 03:26 PM
Hice que mi migración funcionara bien .... pero a mi tutor no le agrada la idea de tener que estar copiando los archivos shared.xml y kettle.properties en la dirección /home/<usuario>/.kettle porque dice que cualquier usuario que entre por el SO del servidor puede acceder a esa dirección fácilmente y cambiar la configuración.....

Me ordenó buscar una alternativa que haga el proceso parametrizable pero que no tenga que copiar shared.xml y kettle.properties en /home/<usuario>/.kettle.... es decir que se puedan copiar en otro lugar y acceder a sus conexiones y variables como si estuvieran en /home/<usuario>/.kettle o de lo contrario... almacenar las conexiones y variables en otro lugar y poder acceder a ellas como si todo estuviera en /home/<usuario>/.kettle

Gracias de Antemano...!!!

tdidomenico
06-16-2010, 03:48 PM
En realidad por defecto ningún usuario debería tener acceso al directorio "home" de otro usuario. Con esa lógica ningún directorio sería seguro: sólo es una cuestión de permisos.

Más allá de eso, con establecer la variable "KETTLE_HOME" al directorio que quieras antes de ejecutar las transformaciones podés configurar la ubicación del directorio .kettle.

Entonces
export KETTLE_HOME=/opt/loquesea/

Haría que PDI busque al shared.xml y al kettle.properties en el directorio "/opt/loquesea/.kettle/".

Saludos.

Predator
06-16-2010, 05:17 PM
Ya veo que puedo modificarlo con un Shell en Linux.

Mi pregunta es si para cambiar el valor de KETTLE_HOME tengo que haber ejecutado al menos una vez la herramienta.

Algo que me gustaría saber es como hacerlo windows es un poco diferente pues veo que es un poco diferente..... estuve buscando en el foro y se habla muy poco de ello, al menos en un lenguaje que puedo entender.

Disculpen mis novatadas.... saludos.

tdidomenico
06-16-2010, 05:38 PM
No hace falta ejecutar la herramienta, podés crear el .kettle y los archivos que contiene a mano.

En Windows es lo mismo, pero en lugar de "export" usás "set".

Saludos.

Predator
06-16-2010, 06:41 PM
Logré hacerlo para Windows agregando la variable de entorno KETTLE_HOME con valor "D:\CTDAPS\Kettle\ETL" en "Propiedades de Mi PC\Opciones Avanzadas\Variables de Entorno" y funcionó también.... de todas maneras voy a probar con el "set" en un *.bat para ver otras variantes de funcionamiento.