ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Materia: Datawarehouse Manual para transformación ETL a usando la herramienta PENTAHO Integrantes: Alvear Jackeline Bobadilla Vilma Tambo Ruthsbel Zúñiga Herdiz 7/Mayo/2009 Manual para transformación ETL a través del programa PENTAHO Instalación Bajar el software desde el siguiente link: http://www.pentaho.com/products/try_bi_suite.php Para descargarse el mismo es necesario realizar un registro previo, luego de este proceso se habilitará la página para proceder a bajar el producto. Este programa al instalarse, genera los siguientes componentes: Tomcat (Servidor) Mysql (Base de datos) Para poder ingresar a la base de datos mysql al instalarse el programa este solicita un password, el mismo que se usará para las conexiones a esta base de datos. 2 Proceso de migración Para el proceso de migración se considera que ya se tiene instalado en la máquina Microsoft access. Para proceder a la migración se debe acceder a unos de los recursos que ofrece PENTAHO en este caso “Kettle” que es su programa para ETL. El mismo se accede desde la carpeta donde se instaló el programa, suponiendo que se instaló en la carpeta “C” este sería el acceso: “C:\Archivos de programa\pentaho\design-tools\data-integration\data-integration” Ingresamos a “Kettle” y nos pedirá que creemos una conexión, escogemos la opción “No repository”. 3 Una vez dentro del mismo existe la opción “View”, dando clic podremos observar que se muestran dos carpetas: “Transformations” “Jobs” Dando doble clic escogeremos la opción “Transformations”, se generará una nueva opción “Design”, desde esta opción escogemos la alternativa “Input”, dentro de esta categoría podemos seleccionar de que manera vamos a obtener los datos que queremos migrar, escogemos la opción “Table Input”, esto debido a que vamos a migrar de tablas Access a tablas mysql. 4 Arrastramos la opción “Table Input” al panel en blanco derecho, damos doble clic sobre el mismo y nos pedirá que escojamos desde donde vamos a obtener los datos a migrar, en la opción “Connection” seleccionamos “New”, aparecerá una ventana que nos solicitará el nombre de la conexión a configurar, como esta es la tabla de la que vamos a leer los datos, debemos configurar la conexión para Microsoft Access de la opción “Connection Type” seleccionamos “MS Access”, nos pedirá el “ODBC DSN Source Name” en este campo lo llenaremos con la siguiente trama de conexión: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\ProyectoPentaho\BaseDatos.mdb; 5 Damos click en el botón de test y este generará una ventana con el mensaje OK, una vez realizados los cambios procedemos aprobar la configuración. Para indicar cual es la base de destino de nuestros datos a migrar escogemos la alternativa “Output”, dentro de esta categoría podemos seleccionar de qué manera vamos a guardar los datos que queremos migrar, escogemos la opción “Table Output”, esto debido a que vamos a migrar de tablas Access a tablas mysql. Arrastramos la opción “Table Output” al panel en blanco derecho, damos doble clic sobre el mismo y nos pedirá que escojamos donde vamos a obtener los ,en la opción “Connection” seleccionamos “New”, aparecerá una ventana que nos solicitará el nombre de la conexión a configurar, como esta es la tabla donde vamos a guardar los datos, debemos configurar la conexión para Mysql de la opción “Connection Type” seleccionamos “Mysql”, nos pedirá el “Host Name” este campo lo llenamos con localhost, este es el host por defecto que mysql asume como nombre para el servidor. En Database Name ingresamos el nombre de la base de datos donde vamos a guardar nuestros datos: en este ejemplo lo hacemos en la base de datos “estudiantes” Port Number: es el puerto por el cual el servidor mysql funcionar, Pentaho por defecto lo instala en el puerto 18306 User name: es el usuario con que realizaremos las conexiones ene ste caso por defecto es root Password: es el password que previamente ingresamos al instalar PENTAHO en este caso “proyecto”. 6 Damos click en el botón de test y este generará una ventana con el mensaje OK, una vez realizados los cambios procedemos aprobar la configuración. Este proceso haremos para cada tabla a migrar desde la base de datos Access, en nuestro caso son dos configuraciones por cada tabla, cabe recalcar que debemos especificar en cada configuración cual es la tabla a migrar, para eso en la configuración de la base Access escogemos la opción “Get SQL Statement” esta alternativa nos permitirá seleccionar la tabla que se va a migrar. Una vez configuradas todas las conexiones tanto para las tablas que se van a leer y para las que se van a llenar, debemos indicar al programa cual es el orden de los procesos a realizarse y como estos van a estar unidos al ejecutarse, para esto debemos unir las configuraciones tanto las de ingreso como las de salida. Dando clic sobre cualquier configuración de entrada presionamos la tecla “SHIFT” y arrastramos el mouse a la configuración de salida que deseamos unir, este proceso haremos por cada par de configuraciones tanto de entrada como de salida. Al final cada tabla de entrada y salida estaría unida por una flecha en verde. Esto indica al PENTAHO cual es el orden para la ejecución de los procesos. 7 Se configuró un proceso adicional el cual genera la base y las tablas en la base de datos mysql. Para esto nos ubicamos dentro de la mism opción “Design”, nos ubicamos en “Scripting” y arrastramos al lado derecho el proceso “Execute SQL script”. Nos ubicamos en el elemento arrastrado damos doble clic y lo configuramos, para ejecutar un script el programa nos pide la conexión de la base de datos en la cual ejecutaremos el script, como ya previamente configuramos la conexión a mysql, seleccionaríamos ese tipo de conexión. En el espacio en blanco ubicamos el script sql a ejecutar sobre la base y que el PENTAHO se encargará de ejecutar. 8 Hasta el momento en resumen hemos configurado las tablas de ingreso y salida para la migración de la base, además hemos configurado un script para generar la base donde va a residir los datos a migrar. Con PENTAHO podemos unir todas estas configuraciones en un solo proceso que el programa llama “JOB”. Para el mismo realizamos lo siguiente: Una vez dentro de la opción “View”, dando clic podremos observar que se muestran dos carpetas: “Transformations” “Jobs” 9 Dando doble clic escogeremos la opción “Jobs”, se generará una nueva opción “Design”, desde esta opción escogemos la alternativa “General”. Ubicados dentro de esta carpeta seleccionamos el objeto “START” la cual indicará que los procesos empezarán desde ahí. 10 Previamente ya tenemos dos configuraciones realizadas una transformación para que el PENTAHO procese el script sql y otra que contiene todas las configuraciones para migrar las tablas de Access a Mysql. De la carpeta “General” arrastramos el objeto “Transformation”, arrastramos dos objetos de este tipo uno por cada transformación ya previamente configuradas. La primera transformación a ser realizada es la del script por lo tanto como anteriormente indicamos, nos posicionamos sobre el objeto “START” damos clic y con la tecla “SHIFT” arrastramos el mouse indicando que a continuación del proceso “START” viene la transformación que ejecuta el script y a continuación realizamos el mismo proceso para la transformación de la base de datos. En cada elemento “Transformation” debemos configurar para indicar cual es la transformación que debe ejecutar, para esto previamente nuestras configuraciones las debemos haber guardado. Dando doble clic el programa muestra una ventana en la que ubicamos la opción “Transformation file name” dando clic ubicamos el archivo “ktr” que contiene todo el proceso de las configuraciones que hemos realizado en los pasos descritos anteriormente. 11 Una vez realizado este proceso, nos ubicamos en la parte superior del menú y buscamos el icono de start, este nos mostrará una ventana en la que nos indicará si el proceso lo queremos realizar localmente o con un servidor externo, como la base de datos reside en nuestra máquina seleccionamos la opción “local Execute”. 12 El programa pregunta si queremos mandar a ejecutar seleccionamos “Launch” y después nos mostrará un log de los procesos que se están realizando con su respectivo resultado. Por cada proceso culminado con éxito el programa genera un resultado de “Finalizado”. Cabe recalcar que se realizó las configuraciones tanto para la migración de las tablas, asi como las configuraciones para le ejecución de los querys que ejecutan el proceso para la generación de las tablas de hecho respectivas. QUERYS PARA OBTENCIÓN DE LAS TABLAS DE DIMENSION Y TABLAS DE HECHO insert into dim_estudiante select cedula_est,matricula, anio_ingreso+'-'+termino_ingreso as periodo_ingreso from ingreso_carrera insert into dim_materia SELECT distinct codigo_materia, nombre_materia FROM materia insert into dim_periodo SELECT distinct anio_ingreso+'-'+termino_ingreso as periodo_estudio,anio_ingreso as anio,termino_ingreso as termino FROM ingreso_carrera union SELECT distinct anio+'-'+termino as periodo_estudio,anio,termino FROM paralelo; insert into hec_registro select anio+'-'+termino as periodo_estudio,codigo_materia,cedula_estudiante as cedula_est,count(*) as cantidad from paralelo a, paralelo_estudiante b where a.id_paralelo=b.id_paralelo group by codigo_materia,anio,termino,cedula_estudiante 13