25 de marzo de 2011

Transformación de datos de Oracle a MySQL usando Pentaho Data Integration

Creamos un nombre de usuario con una contraseña y luego loguemos con este usuario para crear la tabla en Oracle. 


Para minimizar el tiempo usaremos el asistente para crear la tabla, sus campos y registros.
Creamos una tabla con el nombre de “ORIGEN_ORACLE” con los campos NOMBRE DE TIPO NVARCHAR y EDAD DE TIPO NUMBER.
Después de haber creado la tabla y sus columnas ahora insertamos los valores correspondientes: tenemos 11 registros en nuestra tabla.

Ahora conectamos en Mysql y luego creamos una base de datos llamada tarea con una tabla llamada: “DESTINO_MYSQL” igual con los mismos campos y tipos de datos que hicimos la tabla de Oracle.
Luego abrimos el Pentaho Data Integration , después le damos en nuevo transformación , luego en diseño y por ultimo en la carpeta input y arrastramos un table input .
 Después cambiamos el nombre de table input a Oracle (puede ser cualquier nombre no necesariamente Oracle).

Ahora el table output a Mysql (nota: puede ser cualquier nombre).
Después seleccionamos el menú view y luego en carpeta trasformación1 y por ultimo en New para crear una nueva conexión.

La primera conexión seria de Oracle con los valores siguientes: XE porque en Oracle hay una sola base de datos que se llama así, y nuestro usuario que hemos creado durante la instalación, le damos un clic en test para ver si funciona.


Ahora pasamos a configurar la conexión para Mysql con los siguientes datos y lo mismo en test y si funciona mostraría este.


Ahora mantenemos oprimido la tecla shift de nuestro teclado y arrastramos una flecha de ORACLE a MYSQL (origen a destino).

 Después de damos doble clic en el Oracle y lo conectamos a la conexión que hemos creado antes.


Le damos clic en la opción get sql select statement.. y sale el cuadrito donde seleccionamos nuestra base de datos que hemos creado en Oracle y luego en ok.

 Podemos ver una vista previa de los datos haciendo clic en el botón preview que serian los datos que enviaremos a Mysql.


Ahora pasamos con Mysql y seleccionamos la conexión que hemos creado para la base de datos Mysql.


Le damos clic en el botón browse… y aparece la ventanita para seleccionar la tabla que hemos creado en Mysql.

Luego en el menú database fields daremos un clic en botón enter fiel mapping y saldrá el cuadro que muestra en la imagen, aparece dos cuadros ; la primera son los campos de Oracle y la segunda de Mysql.

Seleccionamos los campos que queremos transformar y le damos en Add para agregar uno por uno o en Gues para agregar todos al mismo tiempo.
Para saber si nuestro trabajo funcionara le damos un clic en el botón SQL y sale la siguiente pantalla que muestra una advertencia. Para corregir este error le damos en Execute y el Pentaho corregirá automaticamente por nosotros.

El resultado muestra lo siguiente después de dar clic en Execute (Ejecutar).
Después le damos nuevamente clic en el botón SQL y ya quedo. Eso fue todo y solo nos queda ejecutarlo.

Ahora lo ejecutamos y sale este cuadrito, le damos clic en Launch.

Nos  muestra que todo fue correcto, con todas las características que se muestra a continuación.

Por último hacemos un select en Mysql y nos muestra los datos que hemos transformado o hemos enviado de la base de datos Oracle a Mysql.


15 de marzo de 2011

Concatenacion de columnas en Integration Services (parte 2)


Clic en el boton Analizar Consulta para probar si son validos los argumentos que hemos agregado.


 
Ahora en la pestaña Flujo de datos, doble clic en Columna derivada, expandemos la carpeta Columnas y nos muestra todas las columnas que tenemos.

Arrastramos la que dice Firstname y Lastname en el campo Expresion y luego unimos o concatenamos  con dos mas y dos comillas: + " "+


 Agregamos  nombre completo en el campo Nombre de la columna. nombre completo fue la columna que habiamos definido anteriormente.

 Doble clic en Destino-Customers$ y nos muestra las columnas origen y destino, tenemos que unir la dos ultimas columnas como estan los demas, es decir  mapearlo.


Le ejecutamos y si tenemos tres verdes mas tres verdes = exitoso.


Por ultimo hacemos la consulta en SQL Server 2008, y tenemos la columna nombre completo con nombre y apellido juntos.