Download manual - Blog de ESPOL

Document related concepts
no text concepts found
Transcript
MANUAL DEL ETL DE
PENTAHO
PDI PENTAHO DATA
INTEGRATION PREVIOUS
KETTLE
INTEGRANTES:
Collaguazo Adriana
Cornejo Grace
Pesantez Joffre
Solis Galo
01/05/2009

ANTECENDENTES
Pentaho es un suite de herramientas de inteligencia de negocios que tiene dos versiones, la versión
comercial y la versión de código abierto.
Para el caso de la materia Data warehouse que estamos cursando, solo utilizaremos la herramienta
PDI (Pentaho Data Integration) el cual es una ETL que nos permitirá extraer la información de una
base de datos OLTP, transformar la información a través de un modelo dimensional y cargar los
resultados de la transformación en una base de datos destino tipo Data warehouse, para que luego
pueda ser consultada (consultas ad-hoc) y analizada a través de herramientas para desarrollar
reportes especializados las cuales Pentaho también posee.

REQUISITOS PREVIOS A LA INSTALACIONDEL PDI
Requisitos mínimos de hardware



Procesador de arquitectura Pentium de 2.0 GHZ
768 MB de memoria RAM
Disco Duro con al menos 2 GB libres
Requisitos de software



Java run Time Enviroment 5 o posteriores
MySQL version 5 o posteriores
PASOS PARA LA INSTALACION
Los siguientes son los pasos para instalar el PDI en un computador:



Descargar el archivo .zip del sitio Web de Pentaho que contiene el PDI: pdi-open-3.1.0-826.zip
Descomprimir el archivo en cualquier ubicación dentro de C:
PASOS PARA LA IMPLEMENTACION DE NUESTRO ETL
De manera resumida los pasos para la implementación de nuestro ETL son:







Creación de la base de datos que contendrá el repositorio
Creación del repositorio
Extracción de los datos desde Microsoft Access
Creación de una tabla INPUT
Definición de las tablas de dimensiones
Definición de la tabla de hecho
Carga o exportación de la tabla de hecho
Vamos a detallar cada uno de pasos mencionados.

CREACION DE LA BASE DE DATOS DEL REPOSITORIO
Como era de suponer, antes de crear el repositorio debemos crear la base de datos que lo contenga.
Para esto ejecutamos MySQL, ingresando a la carpeta bin de MySQL y ejecutamos:
 mysqld --console
 mysql -u root
 create database repositorio;
Cabe señalar que “repositorio” es el nombre que le pusimos a la base de datos del repositorio.

CREACION DEL REPOSITORIO

Para crear el repositorio entramos a la carpeta donde descomprimimos el archivo pdi-open-3.1.0826.zip del PDI y ejecutamos el archivo:
 spoon.bat o de manera alternativa
 kettle.exe

Se presentará un cuadro de diálogo “Selecciona un catálogo”, donde presionaremos el botón
“New”.

Se nos presentara una nueva ventana donde presionaremos el botón “New”.

Se nos presentara una nueva ventana, la cual llenamos con los datos encerrados en cuadrados.
Luego de llenar los datos realizamos un test de la conexion.

Si la conexión está bien definida y la base de datos a la cual nos conectamos existe entonces
luego de presionar el botón de Test debemos obtener:

Presionamos el botón de Aceptar y en la parte inferior de la ventana presionamos el botón de OK
adicional. Se ha creado de esta manera la conexión.
Se nos presenta nuevamente la ventana anterior y debemos presionar “Create or Upgrade” para
de esa manera terminar de definir nuestro repositorio.


Al presionar este botón, el PDI crea en nuestra base “repositorio” una tablas que el usara para
poder almacenar la metadata de las transformaciones.

Luego de presionar este botón debemos obtener la siguiente ventana de anuncio:

Luego presionamos el botón de Aceptar.

Podemos observar que es necesario ponerle un nombre a nuestro repositorio, el nombre superior
tan solo es el nombre de la conexión a nuestra base de datos. En nuestro ejemplo colocaremos
el nombre “repositorio”.

Luego presionamos OK, se nos presentara la ventana inicial donde seleccionamos nuestro
repositorio y nos logoneamos con las credenciales:
o Login: admin
o Password: admin
En hora buena, hemos completado la definición y creación de nuestro repositorio.

EXTRACCION DE LOS DATOS DESDE MSACCESS

Luego de que terminamos el paso anterior inmediatamente se nos abrirá la siguiente ventana:

Hacemos doble click sobre la carpeta transformación y se nos presentara la siguiente pantalla:
Si hacemos doble click sobre la carpeta input se nos abrirá la lista desplegable de opciones. De la lista
desplegable seleccionamos Table Input.
Seleccionamos Table input y lo arrastramos a la zona de Diseño:
Hacemos doble click sobre table input y seleccionamos Connection en la opción New, se nos presentara
lo siguiente:
Pero esta tabla que estamos creando debe obtener datos de MSAccess para lo cual debemos crear una
conexión a la base de datos. Para esto vamos a Panel de Control, luego a Herramientas Administrativas y
hacemos doble click sobre Data Sources (ODBC).
Como vemos, seleccionamos MS Access Database y presionamos el botón Configure:
Al presionar el botón Configure y cambiamos el Nombre del ODBC a AccessDatos, luego presionamos el
botón Seleccionar.
Luego seleccionamos la ruta donde se encuentra la base de Datos Access.
Al cambiar el nombre de la Conexión a AccessDatos en la conexión, ese nombre le colocamos en la
pantalla de la definición de la conexión de la Table Input:

Hacemos un test para probar la conexión y luego presionamos OK.

Ahora volvemos al cuadro de dialogo del Table Input en el que colocaremos una sentencia SQL
para poder agrupar todas las tablas de la base Access en una sola tabla:
SELECT paralelo.*, materia.*, paralelo_estudiante.*, ingreso_carrera.*
FROM ingreso_carrera INNER JOIN ((paralelo INNER JOIN paralelo_estudiante
ON paralelo.id_paralelo = paralelo_estudiante.id_paralelo) INNER JOIN materia
ON paralelo.codigo_materia = materia.codigo_materia)
ON ingreso_carrera.cedula_est = paralelo_estudiante.cedula_estudiante;


En la siguiente figura se muestra la sentencia SQL colocada:
DEFINICION DE LAS TABLAS DE DIMENSIONES

Para la creación de las Tablas de Dimensiones hago doble click sobre la carpeta Data warehouse
y selecciono el icono de “Combination lookup/update” y lo arrastramos sobre la zona de diseño.

Ahora para conectar los dos iconos presionamos la tecla SHIFT y hacemos el proceso de arrastrar
desde el icono de Table Input hacia el destino que es el icono de Combination lookup/update
(drag and drop).

Luego hacemos doble sobre el icono de “Combination lookup/update” y se nos presenta la
siguiente pantalla:

Definimos la conexión a la base destino que albergara la tabla de dimensión resultante (solo se
crea la estructura, no esta cargada con datos).

Para esto hacemos click en el botón New y llenamos los campos como se muestra en la figura:

Luego de presionar el botón Aceptar volvemos a la ventana anterior y presionamos el botón “Get
Fields” para obtener los campos de la Tabla input y en el caso de la dimensión unidades, solo
escogemos el campo codigo_unidad y eliminamos el resto.

Ahora colocamos el primary key de nuestra tabla de dimensión que se llamara id_unidad

En el mismo cuadro de dialogo existe la opción SQL la seleccionamos y se nos presentara la
siguiente pantalla:

Finalmente presionamos el botón Execute, se corre el script que crea la estructura de la nueva
tabla de dimensión en nuestra base de datos destino “repositorio”, damos click en OK.

Se nos presenta la pantalla anterior y debemos presionar OK.

Realizamos los mismos pasos para crear las demás tablas de dimensión: materias, estudiante y
tiempo con sus respectivo campos primarios (PK): id_materias, id_estudiante, id_tiempo.

Para definir la tabla de dimensión materias usamos el botón “Get Fields” seleccionamos los
campos código_materia, id_unidad de la Tabla Input.

Para la tabla de dimensión estudiante se seleccionan por medio del botón “Get Fields” los
campos cedula_estudiante, matricula de la Tabla Input para conformarla.

Para la tabla de dimensión tiempo se seleccionan por medio del botón “Get Fields” los campos
anio, termino de la Tabla Input para conformarla.

Seleccionamos la carpeta Transform se desplegaran varias opciones, escogemos la función
Select Values que permite seleccionar campos en una fila.

Luego presionamos el botón “Get fields to select” para obtener los campos de la tabla input, solo
debemos dejar las claves primarias (ID) de cada tabla de dimensiones.

Ahora en la carpeta Transform utilizamos la función Sort rows que permite sortear
filas/ordenar datos basados en los valores de los campos. Luego damos click en el botón Get
fields para obtener los ID de cada tabla dimensional.

Es importante definir la función Sort rows antes de la función Group by que posteriormente
utilizamos.

Seleccionamos de la carpeta Transform la función Group by que permite agrupar los ID
haciendo referencia a los foráneos de las tablas de dimensiones.

Se crea el campo con el nombre de “hecho” y de tipo Number of values que es la función de
agregación ya que los registros son por unidad, y solo puede existir un registro en una materia
por cada estudiante, entonces siempre se tendrá el valor de 1.

Seleccionamos en la carpeta Output seleccionamos la función Table output que permite
escribir información a una tabla de base de datos.

Luego damos click en el botón SQL aparecerán las sentencias que se ejecutaran al presionar el
botón Execute.

Al presionar el botón Execute se presentaran los resultados de las sentencias SQL en una
ventana, damos click en OK.

Nuestro Modelo Dimensional resultante sería el que presentamos a continuación:

En la Base de Datos Mysql “repositorio” se crearon las siguientes tablas:

Para ejecutar la transformación hacemos click en el botón “Replay this transformation” y se
mostraran los resultados.