Datos Proh
Datos Proh
eTAB
Esta página se ha dejado vacía a propósito
Índice de contenidos
Capítulo 1 Tecnologías utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Capítulo 2 Instalación del eTAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Instalación de Symfony2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Configuración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Configuración de Postgres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Instalación de RabbitMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Instalación de Servidor de Análisis Pentaho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.7 Instalación de librería wkhtmltopdf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8 OPCIONAL: Validación de Usarios desde directorios LDAP . . . . . . . . . . . . . . . . . . . . 25
Capítulo 3 Modelo De Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Capítulo 4 Gestión de Cubos OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Esta página se ha dejado vacía a propósito
Introducción
El presente manual técnico describe cada uno de los componentes del sistema eTAB y los
pasos necesarios para instalarlo.
Salud Mesoamérica 2015, pone especial atención a la áreas de salud reproductiva, nutri-
ción maternal y neonatal maternal inmunización, y la prevención y control del dengue
y la malaria. Para este fin Salud Mesoamérica 2015trabajara en conjunto con los ministe-
rios de salud de la región y el Sistema de Salud Publica Mesoamericano. Este proyecto es
parte de la plataforma de integración regional conocido como Proyecto Mesoamerica.
Los resultados esperados de incluyen una reducción significante en las tasa de mortali-
dad infantil para niños de menos de cinco años. Esta iniciativa también esta busca redu-
cir la malnutrición crónica en la niñez y las mujeres embarazadas. Estos cambios son crí-
ticos para mejorar las estadísticas sobre partos y para ofrecer mejores condiciones para el
crecimiento del recién nacido. A su vez esta iniciativa busca tener un efecto directo en co-
munidades pobres sobre la cobertura y calidad de vacunas, control pre y post natal y acce-
so a planificación familiar entre otros servicios.
Salud Mesoamérica 2015 espera generar conocimiento de relevancia global sobre como
aumentar asistencia en salud de bajo costo en comunidades pobres. Para este fin el siste-
ma de información eTAB permite analizar y dar seguimiento a los indicadores en salud
con los que trabaja este proyecto.
Esta página se ha dejado vacía a propósito
6
Capítulo 1
Tecnologías utilizadas
El Tablero eTAB es un servicio Web disponible para que dependencias del sistema de sa-
lud suban sus datos para poder analizarlos, generar gráficas y reportes.
Todo el software utilizado para creación del SIIG/eTAB son paquetes de software libre.
Estos incluyen:
7
Capítulo 1 Tecnologías utilizadas Manual Técnico
Versión 9.1 Actualmente el sistema únicamente puede utilizar PostgreSQL por la si-
guiente razón: La aplicación debe proveer la capacidad de analizar datos para cualquier
indicador. Cada indicador esta construido con varios datos y relacionados por una for-
mula almacenada en el sistema.
Es posible crear una tabla por cada grupo de datos, con la limitante de que es necesario co-
nocer el dato antes de guardarlo, lo cual no es sostenible a futuro.
La base de datos necesita guardar datos sin conocer de antemano sus características.
Esto se logra usando un esquema de datos generico EAV (entidad-atributo-valor). El ma-
nejo de esquemas EAV es implementado de diferentes formas para diferentes gestores de
bases de datos,el Tablero eTAB usa la implementación de Postgres la cual crea un tipo es-
pecial de dato llamado HSTORE.
Apache es un servidor Web de código abierto, se ha realizado sobre Apache versión 2.2
[Symfony] (http://symfony.com/)
[GitHub] (https://github.com/)
8
Manual Técnico Capítulo 1 Tecnologías utilizadas
El lenguaje que se ha utilizado es PHP 5.3.18 dentro de una estructura de desarrollo MVC
manejada Symfony versión 2.4 Cada mimbro del equipo de desarrollo usa un aplicativo
diferente para escribir/modificar el código fuente. Los mas populares popular es Net-
beans(version libre para PHP) y Nano. Para manejar cambios y mejoras al código fuente
se uso Github. La totalidad del código fuente esta disponible en https://github.com/
erodriguez-minsal/SIIG
Bootstrap es un framework que hace HTML, CSS y Javascript simple y flexible para com-
ponentes e interacciones de interfaz de usuarios populares.
Antes conocida como Protovis, D3 es una biblioteca de JavaScript para manipular docu-
mentos basados en datos. D3 ayuda dar vida a los datos usando HTML, SVG y CSS. D3 en-
fatiza los estándares Web ofreciendo todas las capacidades de los navegadores modernos
sin ligarse a una estructura propietaria. A diferencia de otras librerías, D3 no crea imá-
genes, sino que interactúa la pagina para crear los gráficos usando elementos de HTML5
como Canvas y SVG.
1.0.7 Mensajería
RabbitMQ (http://www.rabbitmq.com/)
La carga de datos se apoya de las librerías de este paquete para crear una ‘lista de espera’
para evitar que el servidor se sature al recibir demasiadas peticiones simultaneas.
9
Capítulo 1 Tecnologías utilizadas Manual Técnico
Saiku es una aplicacion de JAVA que oferece una interfaz escrita en JQuery para analizar
cubos OLAP. En este proyecto se uso la version 'plugin' para Pentaho, version 2.4.
1.0.10 Documentación
La mayoría de la documentación ha sido escrita en formato markdown y se ha utilizado
easybook (http://easybook-project.org/) para la gen
1.0.12 Redis
Redis (http://redis.io/) es un motor de base de datos en memoria, basado en el almacena-
miento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como
una base de datos durable o persistente. Se utilizará como memoria caché de consultas
de Doctrine y también para almacenar informes, los cuales se ejecutarán y realizarán las
consultas normales cuando se carguen por primera vez o cuando se hayan actualizados al-
gunos de sus datos, y se guardará el resultado en Redis; para futuras peticiones a esos in-
formes se tomarán de lo almacenado en Redis lo cual es mucho más rápido.
10
Capítulo 2
Instalación del eTAB
2.1 Requerimientos
• Servidor Web
• Gestor de base de datos
• PHP 5.3.8+
• Java 6
# apt-get update
# apt-get install php5 php5-pgsql php5-sqlite sqlite php5-xdebug php-apc
php5-cli php5-xsl php5-intl php5-mcrypt apache2 postgresql acl git-core curl
postgresql-contrib php5-ldap php5-mysql php5-sybase php5-json
postgresql-contrib redis-server
11
Capítulo 2 Instalación del eTAB Manual Técnico
# adduser siig
# mkdir /var/www/siig
# chown siig:siig /var/www/siig
# su siig
$ cd /var/www
A partir de este punto todos los comandos se deben ejecutar dentro de la carpeta en que se
ha descargado el código fuente
12
Manual Técnico Capítulo 2 Instalación del eTAB
2.3 Configuración
# nano /etc/apache2/sites-available/siig.localhost.conf
<VirtualHost 127.0.0.7>
ServerName siig.localhost
DocumentRoot /var/www/siig/web
ErrorLog ${APACHE_LOG_DIR}/siig-error.localhost.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/siig-access.localhost.log combined
</VirtualHost>
127.0.0.7 siig.localhost
Habilitamos el VirtualHost
# a2ensite siig.localhost
13
Capítulo 2 Instalación del eTAB Manual Técnico
# a2enmod rewrite
Reiniciar apache
# /etc/init.d/apache2 restart
Reiniciar PostgreSQL
# /etc/init.d/postgresql restart
14
Manual Técnico Capítulo 2 Instalación del eTAB
# su postgres
$ createuser -d -S -R -P admin;
Al finalizar presionar la combinación Ctrl+D 2 veces para regresar al usuario siig y conti-
nuar con la instalación.
• Crear la tabla especial que no se manejará con el ORM, hacerlo con el usuario dueño
de la base de datos
• (no con el usuario postrgres, a menos que este mismo sea el dueño de la base de
datos)
);
15
Capítulo 2 Instalación del eTAB Manual Técnico
• Agregar el repositorio
# wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# apt-key add rabbitmq-signing-key-public.asc
• Ejecutar
# apt-get update
• Instalar el paquete
# /etc/init.d/rabbitmq-server start
$ src/MINSAL/IndicadoresBundle/Util/iniciar_colas.sh
16
Manual Técnico Capítulo 2 Instalación del eTAB
El objetivo es usar el servidor Pentaho+Saiku para analizar los datos del SIIG y a la vez in-
tegrar esta aplicación dentro de la plataforma del SIIG de forma que el usuario no se per-
cate de que esta usando una aplicación externa.
http://community.pentaho.com/projects/bi_platform/
17
Capítulo 2 Instalación del eTAB Manual Técnico
Cada uno de estos dos servicios tiene su script de inicio correspondiente y credenciales
por defecto. El sistema de seguridad interno de Pentaho (credenciales de usuario y se-
siones) son independientes del SIIG. Para facilitar la integración con el resto del sistema
SIIG, a continuación eliminaremos el sistema de seguridad interno de Pentaho. Estos
cambios afectan ambos servicios: la plataforma de Pentaho y la consola de administra-
ción. Para no comprometer la seguridad del sistema, es recomendable asegurarnos de
Pentaho solamente responda a peticiones del SIIG e ignore cualquier otra conexión usan-
do un corta fuegos externo.
Para eliminar el uso de credenciales basta seguir las instrucciones del manual oficial de
Pentaho:
http://wiki.pentaho.com/display/ServerDoc2x/Removing+Security
# cd biserver-ce
# ./start-pentaho.sh
En este punto deberíamos poder abrir la aplicación sin usar credenciales usando la direc-
ción del servidor:
http://localhost:8080/pentaho
Nota: Si fuesen necesarias, las credenciales por defecto son usuario: joe,
pwd: password
Los errores del sistema son registrados en:
Log de Pentaho: biserver-ce/tomcat/logs/pentaho.log
Log de Servidor Tomcat: biserver-ce/tomcat/logs/catalina.out
18
Manual Técnico Capítulo 2 Instalación del eTAB
# cp biserver-ce/tomcat/lib/postgresql-9.1-902.jdbc4.jar
administration-console/jdbc/
# ./start-pac.sh
En este punto ya podemos conectarnos a http://localhost:8099/
Nota: Si fuese necesario las credenciales por defecto son: usuario: admin,
pwd: password
Una vez dentro de la consola, podemos crear nueva conexión de bases de datos, asegurán-
donos de usar estos valores.
nombre: NOMBRE_CONN
driver: org.postgres.Driver
URL: jdbc:postgresql://localhost:5432/NOMRE_BASE_DE_DATOS
Asegurese de probar la conexión usando el botón "Test/Probar" al pie de esta misma ven-
tana. Finalmente guarde sus cambios y detenga la conolsa de administracion:
./stop-pac.sh
Crear una nueva carpeta de trabajo de Mondrian, esta carpeta debe estar accesible y tener
permisos de escritura para le usuario de Apache (www-data en Debian). El SIIG generara
automáticamente nuevos cubos y los guardara como archivos XML dentro de esta carpe-
ta.
~# mkdir app/modrian
~# chown –R www-data app/mondrian
El nombre de la carpeta es arbitrario, se puede usar cualquier otro nombre y ajustar le va-
lor correspondiente dentro app/config/parameters.yml
19
Capítulo 2 Instalación del eTAB Manual Técnico
Una vez creada la neuva carpeta, debemos copiar la estructura base para crear nuevos cu-
bos. El codito fuente del SIIG contiene la estructura base para crear nuevos cubos en el ar-
chivo : src/MINSAL/IndicadoresBundle/Resources/public/cubos/BASE_CUBO.txt Este
archivo básicamente lista las dimensiones que estarán disponibles a la hora de crear un
nuevo cubo. Para este archivo lo copiaremos en nuestra nueva carpeta de trabajo de Mon-
drian:
~# cp src/MINSAL/IndicadoresBundle/Resources/public/cubos/BASE_CUBO.txt app/
mondrian/base_cubo.txt
~# mv pentaho/biserver-ce/pentaho-solutions/system/olap/datasources.xml
pentaho/biserver-ce/pentaho-solutions/system/olap/datasources_original
~# cp pentaho/biserver-ce/pentaho-solutions/system/olap/
datasources_original siig/app/mondrian/datasources.siig
~# ln siig/app/mondrian/datasources.siig pentaho/biserver-ce/
pentaho-solutions/system/olap/datasources.xml
Si se desea, los archivos generados que describen cubos puede ser editados usando la apli-
cación Mondrian Schema Workbench disponible aquí:
http://sourceforge.net/projects/mondrian/files/schema%20workbench/
20
Manual Técnico Capítulo 2 Instalación del eTAB
generar representaciones visuales de los datos. Para saber mas cerca de SAIKU puede vi-
sitar:
http://analytical-labs.com/downloads.php
Para instalar SAIKU debemos primero instalar las librerías de CTOOLS. Estas librerías se
pueden instalar automáticamente usando este Script:
https://github.com/pmalves/ctools-installer
#chmod +x instalar_ctools.sh
Y ejecutamos el script :
# ./instalar_ctools.sh –s pentaho-solutions/
El Script preguntara si queremos instalar todas las librerías, incluyendo el paquete SAI-
KU, respondemos que si a todo.
Reiniciar Pentaho:
# ./stop-pentaho.sh
# ./start-pentaho.sh
Saiku permite guardar las busquedas y graficos en una carpeta de trabajo para poder usar-
las posteriormente. A continuacion crearemos la carpeta de trabajo que usará Saiku pa-
ra almacenar busquedas. Esta nueva carpeta debera ser creada dentro de 'pentaho-solu-
tions/', el nombre que elijamos se fijara en el archivo Settings.js.
~# mkdir bi-server/prentaho-solutions/TablasyGraficosSaiku
~# nano src/MINSAL/IndicadoresBundle/Resources/public/cubos/js/saiku/
Settings.js
var Settings = {
VERSION: "Saiku 2.5",
BIPLUGIN: false,
CARPETA_SIIG: "TablasyGraficosSaiku", ....
21
Capítulo 2 Instalación del eTAB Manual Técnico
En este punto ya tenemos SAIKU disponible desde el menu principal del SIIG, en la op-
cion Indicadores->Cubos OLAP.
http://dev.analytical-labs.com/saiku/serverdocs/
El listado de Ficha Técnica incluye un botón Mostrar Reporte que carga el reporte para el
indicador correspondiente usando los datos mas recientes. El proceso que el SIIG utiliza
para generar y mostrar el reporte es el siguiente:
22
Manual Técnico Capítulo 2 Instalación del eTAB
3. Si existe el archivo, usar JQuery para procesar las búsquedas SQL existentes dentro
del archivo ‘indicadorX.cda’, y procesar los resultados para crear gráficos
4. Combinar los gráficos y mostrar reporte en el navegador, desde donde puede impri-
mirse o ser guardado localmente.
Los archivos CDA están guardados en formato XML y contienen un conjunto de búsque-
das SQL que estarán disponibles a través del servicio REST durante la creación de repor-
tes. Una vez el SIIG genera el archivo ‘indicadorX.cda’ inicial el administrador del siste-
ma puede modificar, eliminar o agregar las búsquedas SQL contenidas en este archivo pa-
ra modificar/mejorar un reporte.
<Location /reportes/>
ProxyPass http://MISERVIDOR:8080/pentaho/content/cda/
ProxyPassReverse http://MISERVIDOR:8080/pentaho/content/cda/
SetEnv proxy-chain-auth
</Location>
23
Capítulo 2 Instalación del eTAB Manual Técnico
ne un ID numérico único dentro del archivo CDA que se usa en las llamas REST/JQuery.
El titulo de cada búsqueda se usara para el grafico correspondiente dentro del reporte. La
sección titulo además contiene el nombre del tipo de grafico que se usara (barras, líneas o
tabla de datos).
Para graficar correctamente los datos los resultados de la búsqueda SQL deben ajustarse
de la siguiente manera:
ID=resumen: Esta búsqueda calcula valores estadísticos de los datos, los resultados se
muestran en el encabezado del reporte.
24
Manual Técnico Capítulo 2 Instalación del eTAB
#Fr3d_LDAP
fr3d_ldap:
driver:
host: 10.10.20.2 # IP del Servidor LDAP institucional
port: 389 # Opcional
user:
baseDn: ou=people,dc=salud,dc=gob,dc=sv # contenedor de
usuarios
filter: (objectClass=organizationalPerson) # esquema comun para
todos los usuarios del directorio
25
Esta página se ha dejado vacía a propósito
26
Capítulo 3
Modelo De Datos
3.0.1 Esquema general de la Aplicacion
Los datos que maneja el sistema provienen de distintas fuentes y son de una naturaleza
tal que es necesario utilizar el modelo de base datos sin esquema/genérico EAV. Las tabla
EAV (Fila_origen_dato) y demás tablas auxiliares son parte del almacenamiento de datos
transaccional (OLTP) de la aplicación. Esto facilita el manejo de datos de cualquier indi-
cador sin importar sus propiedades. Los cubos de análisis multidimensional (OLAP) son
generados usando estos valores genéricos y estan descritos en la seccion de Gesition de
Cubos OLAP. Las tablas de los cubos OLAP usan un esquema de estrella mientras que las
tablas del almacenamiento OLTP usan un modelo relacional. El Siguiente Diccionario de
Datos y Diagrama ER describen la estructura del almacenamiento transaccional (OLTP)
de la Aplicacion.
27
Capítulo 3 Modelo De Datos Manual Técnico
28
Manual Técnico Capítulo 3 Modelo De Datos
1. alerta ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
29
Capítulo 3 Modelo De Datos Manual Técnico
<
ul>
2. campo ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
30
Manual Técnico Capítulo 3 Modelo De Datos
3. clasificacion_nivel ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
4. clasificacion_privacidad ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
5. clasificacion_tecnica ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
31
Capítulo 3 Modelo De Datos Manual Técnico
6. clasificacion_uso ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
7. conexion ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
32
Manual Técnico Capítulo 3 Modelo De Datos
8. ficha_tecnica ()
Nomre Logico de Columna Nombre Fisico de Columna Tipo PK Nullable
33
Capítulo 3 Modelo De Datos Manual Técnico
34
Manual Técnico Capítulo 3 Modelo De Datos
9. ficha_tecnica_campo ()
Nomre Logico de Columna Nombre Fisico de Tipo PK Nullable
Columna
10. ficha_tecnica_periodicidad ()
Nomre Logico de Columna Nombre Fisico de Tipo PK Nullable
Columna
35
Capítulo 3 Modelo De Datos Manual Técnico
11. ficha_tecnica_presentacion ()
Nomre Logico de Columna Nombre Fisico de Tipo PK Nullable
Columna
12. ficha_tecnica_variable_dato ()
Nomre Logico de Columna Nombre Fisico de Tipo PK Nullable
Columna
36
Manual Técnico Capítulo 3 Modelo De Datos
13. fila_origen_dato ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
14. fos_user_group ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
(DC2Tipo:array)
15. fos_user_user ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
37
Capítulo 3 Modelo De Datos Manual Técnico
38
Manual Técnico Capítulo 3 Modelo De Datos
39
Capítulo 3 Modelo De Datos Manual Técnico
16. fos_user_user_group ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
17. fuente_dato ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
40
Manual Técnico Capítulo 3 Modelo De Datos
18. fusion_origenes_datos ()
Nomre Logico de Columna Nombre Fisico de Columna Tipo PK Nullable
19. indicador_alertas ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
41
Capítulo 3 Modelo De Datos Manual Técnico
20. motor_bd ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
21. origen_datos ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
42
Manual Técnico Capítulo 3 Modelo De Datos
22. origen_datos_fusiones ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
43
Capítulo 3 Modelo De Datos Manual Técnico
23. periodos ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
24. presentacion ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
25. responsable_dato ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
44
Manual Técnico Capítulo 3 Modelo De Datos
26. responsable_indicador ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
27. significado_campo ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
45
Capítulo 3 Modelo De Datos Manual Técnico
28. tipo_campo ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
29. usuario_indicadores_favoritos ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
46
Manual Técnico Capítulo 3 Modelo De Datos
<ul>
<li> <a href="#ficha_tecnica">ficha_tecnica</a> por medio de
(id_indicador)</li>
<li> <a href="#fos_user_user">fos_user_user</a> por medio de
(id_usuario)</li>
</ul>
29. variable_dato ()
Nomre Logico de Nombre Fisico de Tipo PK Nullable
Columna Columna
47
Capítulo 3 Modelo De Datos Manual Técnico
<
h3>
48
Capítulo 4
Gestión de Cubos
OLAP
4.0.1 Introducción
La cantidad de reportes que pueden generarse depende de los catálogos que se usen en ca-
da indicador. Al interior de una estructura para reportes (cubo OLAP), cada catalogo se
convierte en dimensión. Así por ejemplo el catalogo municipio se convierte en una di-
mensión dentro de la estructura de reportes y posibilita hacer búsquedas usando cual-
quier campo que exista dentro de este catálogo. Por ejemplo: Si el catalogo municipio tie-
ne los campos municipio, departamento y región esto nos permitiría hacer las siguientes
consultas: numero de casos por municipio, número de casos por departamento, número
de casos por región.
La ventaja principal de usar un gestor de cubos OLAP es aislar la lógica de las búsquedas
para analizar los datos. De esta forma el sistema se enfoca en presentar al usuario la ma-
yor cantidad de información de forma flexible sin preocuparse de la lógica para obtener
los datos.
```xml
49
Capítulo 4 Gestión de Cubos OLAP Manual Técnico
Provider=Mondrian;DataSource=Pentaho
Pentaho BI Platform Datasources
http://localhost:8080/pentaho/Xmla?userid=joe&password=password
Provider=mondrian
PentahoXMLA
MDP
Unauthenticated
Provider=mondrian;DataSource=Minsal
solution:/admin/resources/metadata/indicador23.mondrian.xml
Provider=mondrian;DataSource=Minsal
solution:/admin/resources/metadata/indicador24.mondrian.xml
Provider=mondrian;DataSource=Minsal
solution:/admin/resources/metadata/indicador25.mondrian.xml
Provider=mondrian;DataSource=Minsal
solution:/admin/resources/metadata/indicador7.mondrian.xml ``` Como puede verse
en este codigo cada indicador es un catalogo/cubo cuya descripcion esta contenida en
otro archivo XML. Para facilitar la creacion de nuevos cubos a continuacion se muestra
el codigo base de un nuevo indcador, esta plantilla esta disponible en https://github.com/
erodriguez-minsal/SIIG/wiki/PlantillaIndicadorOLAP
```xml
50
Manual Técnico Capítulo 4 Gestión de Cubos OLAP
````
END; $$ LANGUAGE plpgsql; ``` Como se puede ver en el codigo, los intervalos y perio-
dos de tiempo (feriados, etc) que se quieran usar para analizar datos pueden pueden ser
configurados al crear esta funcion. Luego de que se ha agregado esta funcion, procedemos
a crear el catalogo tiempo dentro de la base de datos indicadores:
52
Lista de figuras
3.1 Esquema de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Diagrama ER1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Diagrama ER2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Lista de figuras Manual Técnico
54