TFG – Del Giudice – Della Mea

Report
Proyecto de implementación de un
Data Warehouse para Universidades
Nacionales
TFG – Del Giudice – Della Mea
Alcance del Proyecto
Alcance
Se toman 2 (dos) cubos de alumnos y se reconstruyen utilizando
la tecnología Pentaho.
Dichos cubos son:
02 – Rendimiento Académico
05 - Alumnos Araucano
TFG – Del Giudice – Della Mea
Etapas para el desarrollo de los cubos
En esta sección se lleva a cabo una descripción de los procesos
que se efectúan:
Modelo Dimensional
Modelo Físico
ETL
Reconstrucción
TFG – Del Giudice – Della Mea
Cubo 05 – Alumnos Araucano
TFG – Del Giudice – Della Mea
Modelo Dimensional
• Tema de análisis  Matrícula histórica. Nuevos Inscriptos, Reinscriptos y
Egresados, según definiciones de SIU-Araucano.
(*) Definidas solo para medidas: nuevos inscriptos, reinscriptos y total alumnos
(**) Definida solo para la medida nuevos inscriptos
(***) Definidas solo para medida reinscriptos
En el caso de las dimensiones que no están definidas aparece la leyenda “No se aplica”
TFG – Del Giudice – Della Mea
Modelo dimensional Original
TFG – Del Giudice – Della Mea
Recomendaciones  Modelado Dimensional
 No usar dimensiones degeneradas
Cuando:
• La dimensión posee pocos datos que se repiten reiteradamente en la FT.
• Es la dimensión Tiempo.
• Es una dimensión compartida.
Extraer los datos de la FT y crear una tabla de
dimensión propia (durante el proceso de ETL).
 Uso de tablas en línea
•
•
•
Cuando:
La tabla no es compartida por varios cubos.
La tabla contiene pocos valores.
La tabla no sufre cambios regularmente.
Mantener los datos en tabla siempre es más performante.
TFG – Del Giudice – Della Mea
Recomendaciones  Modelado Dimensional
Agregar medidas calculadas directamente en el
DW (durante el proceso de ETL), así se ahorra
tiempo al no realizase esta operación durante el
diseño.
No utilizar claves primarias de tipo texto (tanto en
las LT como en la FT).
FT contenga solo valores numéricos (tanto en las
claves como en los valores de las medidas).
TFG – Del Giudice – Della Mea
Modelo dimensional Propuesto
TFG – Del Giudice – Della Mea
Modelo Físico
Mondrian
vs.
Motor OLAP de arquitectura
ROLAP, con caché.
Los datos que alimentan a los
cubos residen en una base de
datos MySQL, denominada
“dw_consolidado”
Porque MySQL?
TFG – Del Giudice – Della Mea
Es más rápida al
resolver consultas
Garantiza mayor
integridad en los datos
Tiene mejor
Presenta mejor
escalabilidad en
grandes trabajos
documentación y
mejores herramientas
de administración.
El Proyecto Pentaho Mondrian OLAP proporciona acceso OLAP de alto
rendimiento sobre la base de MySQL. Donde se prioriza:
 Velocidad
 Rendimiento
 Particionado y gestión de BD
Tablas correspondientes al Cubo 05 en Pentaho
TFG – Del Giudice – Della Mea
Estructura de la Tabla de Hechos FT_AlumnosArau
Campos
Tipo de dato
anio_academico
cod_unidad
cod_carrera
cod_titulo
cod_genero
cod_cohorte
cod_colegio
mat_rendidas
mat_aprobadas
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
tot_rendidas
Numérico
tot_aprobadas
Numérico
cod_horasTrab
tipo_ingreso
Numérico
Numérico
edad
cod_procesado
cant_NI
cant_RI
cant_EG
cant_TA
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
TFG – Del Giudice – Della Mea
FT contiene sólo valores numéricos
Se agrega la medida calculada
cantidad Total de Alumnos en el DW
Se utilizan claves subrogadas
Claves Subrogadas
Ventajas
 El DW no depende de la codificación interna del OLTP.
 Ocupan menos espacio y brindan mayor performance que las claves
naturales, más aún si estas últimas son de tipo texto.
 Permiten que la construcción y mantenimiento de índices sea una
tarea sencilla.
 Si se modifica el valor de una clave en el OLTP, el DW lo tomará
como un nuevo elemento, permitiendo almacenar diferentes
versiones del mismo dato.
TFG – Del Giudice – Della Mea
ETL
Durante el proceso
de ETL
Se implementa Claves subrogadas
• Manteniéndose tablas que contienen la clave
primaria de la OLTP y la clave subrogada
correspondiente a cada dimensión del DW.
Se utiliza una base de datos intermedia
denominada intermedio_consolidado
A fin de almacenar:
• Las tablas antes mencionadas
• Aquellos datos que necesitamos manipular
TFG – Del Giudice – Della Mea
ETL
• Transformación DW_LT_UNIDADESACADEMICAS LOAD
Llenar primero la BD intermedia y luego cargar el DW
para manipular los datos sin interrumpir ni paralizar
los OLTP, ni tampoco el DW.
Los datos de aquellos .txt que no sufren
transformaciones (excepto por sus claves), se los carga
directamente al DW.
TFG – Del Giudice – Della Mea
ETL
• Transformación DW_LT_RANGOS LOAD
TFG – Del Giudice – Della Mea
ETL
• Rango de Edades
TFG – Del Giudice – Della Mea
ETL
Transformación DW_FT_ALUMNOS_ARAU_INTERMEDIO PASO 1
Transformación DW_FT_ALUMNOS_ARAU PASO 2
TFG – Del Giudice – Della Mea
ETL
Consulta ejecutada en la Transformación DW_FT_ALUMNOS_ARAU PASO 2:
SELECT a.anio_academico, n.idNuevo as cod_unidad, b.idNuevo as cod_carrera, g.idNuevo as
cod_titulo, p.idNuevo as cod_genero, m.idNuevo as cod_cohorte, c.idNuevo as cod_colegio, i.idNuevo
as mat_rendidas, j.idNuevo as mat_aprobadas, k.idNuevo as tot_rendidas, l.idNuevo as
tot_aprobadas, d.idNuevo as cod_horasTrab, f.idNuevo as tipo_ingreso, h.idNuevo as edad, o.idNuevo
as cod_proceso, a.cant_NI, a.cant_RI, a.cant_EG, (a.cant_NI + a.cant_RI) as cant_TA
FROM ft_alumnos_intermedio a
inner join ids_carreras b on a.cod_carrera = b.cod_carrera
inner join ids_colegios c on a.cod_colegio = c.cod_colegio
inner join ids_horastrabajadas d on a.cod_horasTrab = d.cod_catHorasTrab
inner join ids_tipoingreso f on a.tipo_ingreso = f.cod_tipoIngreso
inner join ids_titulosaraucano g on a.cod_titulo = g.cod_titulo
inner join ids_edades h on a.edad = h.edad
inner join ids_matrendidas i on a.mat_rendidas = i.mat_rendidas
inner join ids_mataprobadas j on a.mat_aprobadas = j.mat_aprobadas
inner join ids_totrendidas k on a.tot_rendidas = k.tot_rendidas
inner join ids_totaprobadas l on a.tot_aprobadas = l.tot_aprobadas
inner join ids_cohorte m on m.cohorte = a.cohorte
inner join ids_unidadesacademicas n on a.cod_unidadAcademica = n.cod_unidad
inner join ids_procesadosok o on a.procesado_ok = o.procesado_ok
inner join ids_generos p on a.cod_sexo = p.cod_sexo;
TFG – Del Giudice – Della Mea
Reconstrucción
 Se creó el esquema “AlumnosAraucano”
 Se agregó el cubo “05_AlumnosAraucano”
 Se indicó que será ft_alumnosarau la tabla de hechos que corresponderá al cubo
 Dimensiones:
Año Académico (dimensión tiempo):
TFG – Del Giudice – Della Mea
Unidad Académica
Reconstrucción
Dimensión Carreras
TFG – Del Giudice – Della Mea
Reconstrucción
Dimensiones con Rangos:
Ejemplo  “Rango Edades”
- Para el resto de las Dimensiones con rangos se lleva a cabo el mismo procedimiento TFG – Del Giudice – Della Mea
Reconstrucción - Medidas
• Se crearon la medida NI, ReI, Egr y TA  Las cuales
sumarizan la cantidad de alumnos pertinente.
Medidas Semi – Aditivas
Medidas Semi
aditivas en el cubo:
TFG – Del Giudice – Della Mea
Mondrian soporta este tipo de
medidas (que no pueden ser
aplicadas a lo largo de todas las
dimensiones) a través de
Miembros calculados (CM).
Nuevos Inscriptos
Reinscriptos
Egresados
Total Alumnos
Reconstrucción – Miembros Calculados
•
Se creó un CM por cada medida definida, los cuales utilizan un case – when en su
fórmula para determinar en qué casos se mostrara la medida.
• Ejemplos:
Nuevos Inscriptos
(Lo mismo se realizo para los otros tres CM)
case when
[Materias Rendidas].CurrentMember.Level IS [Materias Rendidas].[Rango Mat Rend] or
[Materias Rendidas].CurrentMember.Level IS [Materias Rendidas].[Materias Rendidas] or
[Materias Aprobadas].CurrentMember.Level IS [Materias Aprobadas].[Rango Mat Aprob] or
[Materias Aprobadas].CurrentMember.Level IS [Materias Aprobadas].[Materias Aprobadas] or
[Total Mat Rendidas].CurrentMember.Level IS [Total Mat Rendidas].[Rango Tot Rendidas] or
[Total Mat Rendidas].CurrentMember.Level IS [Total Mat Rendidas].[Total Mat Rendidas] or
[Total Mat Aprobadas].CurrentMember.Level IS [Total Mat Aprobadas].[Rango Tot Aprob] or
[Total Mat Aprobadas].CurrentMember.Level IS [Total Mat Aprobadas].[Total Mat Aprobadas]
then "No se aplica" else [Measures].[NI] end
TFG – Del Giudice – Della Mea
Estructura final del cubo 
TFG – Del Giudice – Della Mea
Cubo 02 – Rendimiento Académico
TFG – Del Giudice – Della Mea
Modelo dimensional Cubo 02 – Rendimiento Académico
Tema de análisis : Rendim. Académico (evaluado desde materias-cátedras).
TFG – Del Giudice – Della Mea
Modelo dimensional Original
TFG – Del Giudice – Della Mea
Modelo dimensional Propuesto
TFG – Del Giudice – Della Mea
Modelo Físico
Tablas correspondientes al Cubo 02 en Pentaho
TFG – Del Giudice – Della Mea
Estructura de la Tabla de Hechos FT_ResultMaterias
Campos
anio_academico
cod_unidad
cod_periodo
cod_carrera
cod_materia
cod_dpto
cod_cohorte
curaprobados
curdesaprobados
Tipo de dato
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
curpromovidos
Numérico
curausentes
Numérico
exaprobados
exdesaprobados
Numérico
Numérico
exausentes
equiexternas
equiparciales
Totcursantes (*)
Totexamenes (**)
Totaprobados (***)
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
FT contiene sólo valores numéricos
Se agregan medidas calculadas al DW
(*) Suma de cursadas promovidas, aprobadas, reprobadas y ausentes
(**) Suma de exámenes aprobados, reprobados y ausentes
TFG – Del Giudice – Della Mea
(***) Suma de cursadas promovidas, exámenes aprobados y
equivalencias externas otorgadas
Se utilizan claves subrogadas
ETL
• Transformación DW_LT_DEPARTAMENTOS LOAD
TFG – Del Giudice – Della Mea
ETL
• Transformación DW_LT_PERIODOS LOAD
En el paso “Formula” se
conforma el campo Nombre del
Periodo, el cual es una cadena
de
caracteres
combinada,
integrada por: Año académico +
Tipo de periodo + Periodo
(Ejemplo: 2008 – TE - Agosto)
TFG – Del Giudice – Della Mea
ETL
Transformación DW_FT_INGR_EGRE_INTERMEDIO PASO 1
Transformación DW_FT_INGR_EGRE PASO 2
SELECT f.anio_academico, g.idNuevo as cod_unidad,
c.idNuevo as cod_carrera, d.idNuevo as cod_dpto,
e.idNuevo as cod_cohorte, f.egresados, f.ingresantes
FROM ft_ingr_egre_intermedio f
inner join ids_carreras c on f.cod_carrera = c.cod_carrera
Inner join ids_departamentos d on f.cod_dpto =d.cod_dpto
inner join ids_cohorte e on e.cohorte = f.cohorte
inner join ids_unidadesacademicas g on f.cod_unidadacad
= g.cod_unidad;
TFG – Del Giudice – Della Mea
ETL
• Trabajo LOAD DATAWAREHOUSE
TFG – Del Giudice – Della Mea
Reconstrucción





Se creó el esquema “RendimientoAcademico”.
Se agregó el cubo “02_Result_Materias”.
Se indicó que será ft_result_materias la tabla de hechos del cubo.
Se agregó un segundo cubo “02_Ingre_Egre”.
Se indicó que será ft_ingr_egre la tabla de hechos del cubo.
 Dimensiones compartidas:
Se crean cinco dimensiones compartidas:
1.
2.
3.
4.
5.
Año Académico
Unidad Académica
Departamento
Carrera – Plan
Cohorte
TFG – Del Giudice – Della Mea
Reconstrucción
 Características de Dimensiones compartidas:
Unidad Académica
(Relacionada con Carreras, Departamento y Materia)
TFG – Del Giudice – Della Mea
Carrera - Plan
Reconstrucción
 Características de Dimensiones:
Departamento  Dimensión compartida y relacionada con Unidad Académica.
- Para las otras dimensiones compartidas se realiza el mismo proceso TFG – Del Giudice – Della Mea
Reconstrucción
Luego de crear las dimensiones compartidas, se define la estructura de cada cubo:
TFG – Del Giudice – Della Mea
Reconstrucción
Al tener los cubos finalizados, lo que se realizó para poder unirlos y visualizarlos en un solo esquema
es crear un Cubo Virtual, el cual contiene todos los elementos de ambos:
TFG – Del Giudice – Della Mea
Requerimientos DW
En el proyecto actual
se utilizaron como
muestra dos unidades
académicas
Ciencias de la Información
Escuela de Nutrición
Se requiere que cada facultad, al acceder al cubo consolidado,
vea solo la información pertinente a ésta
Para cumplir los requisitos se utilizan
Roles de Mondrian
TFG – Del Giudice – Della Mea
Roles de Mondrian
Se establecieron dos Roles:
cs_de_informacion
TFG – Del Giudice – Della Mea
nutrición
Roles de Mondrian - Permisos
 A los usuarios cs_de_informacion y nutrición se les ha ocultado la
dimensión “Unidad Académica” del cubo, ya que solo nos interesa que
puedan ver la información de su facultad.
 Para que estos puedan visualizar los datos correspondientes, lo que se
hizo fue dar acceso personalizado (custom acces) a la Jerarquía y niveles
que contienen las unidades académicas.
TFG – Del Giudice – Della Mea
Roles de Mondrian - Permisos
 Ejemplo Rol “cs_de_informacion” :
Según el usuario se asignaran, mediante miembros, sus permisos de acceso.
cs_de_informacion
TFG – Del Giudice – Della Mea
Solo el miembro “Escuela de Ciencias de la Información”
será totalmente accesible (acces all), negando el acceso
(acces none) al resto de los otros miembros (Escuela de
Nutrición y Sin Unidad Académica).
Crecimiento del DW
TFG – Del Giudice – Della Mea
Propuesta de implementación ante el crecimiento
del DW
Que los usuarios accedan a las soluciones desarrolladas
mediante la opción “New Analysis View” de Jpivot, y no
mediante vistas de análisis predefinidas.
 Para ello se deberá utilizar una xaction que se ejecute cuando
el usuario ingresa a la aplicación (system action).
 La xaction tendrá como "input" el valor del rol actual de quien
se haya logueado, y como “output” el rol de Mondrian.
Mondrian recibirá el rol activo y en base a
éste mostrará la información pertinente.
TFG – Del Giudice – Della Mea
Fin de la presentación
¿…?
TFG – Del Giudice – Della Mea
Fin de la presentación
¡Muchas gracias
por su atención!
TFG – Del Giudice – Della Mea

similar documents