Análisis de Proyecto B.I en EUIGS
Análisis de Proyecto B.I en EUIGS
E
ste capitulo tiene como objetivo analizar y describir el contexto general del proyecto que queremos llevar
a cabo en el seno de la empresa EUIGS y que consiste en el diseño y la implementación de un sistema de
toma de decisiones para ayudar a contestar las preguntas del negocio ofreciéndole la información y las
herramientas necesarias en que podrá apoyarse en la toma de decisiones.
34
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 35
4.1 Contexto
En un Mercado donde la competencia está siendo cada vez más grande y feroz las compañías de seguros se
encuentran con la necesidad de reinventarse para reducir costes, fidelizar sus clientes y seducir a clientes nuevos,
para ello adoptan nuevos sistemas de toma de decisiones que les puedan ayudar a cumplir con estos objetivos.
La problemática que afrontamos hoy es cómo podemos distribuir la flota de guras de la que dispone la compañía
de forma óptima para:
• Reducir costes de desplazamiento gasolina y desgaste de la grúa.
• Reducir el tiempo de respuesta de la grúa de forma que esta pueda llegar al lugar de la incidencia en el
mínimo tiempo posible.
• Satisfacer una de las necesidades más importante del cliente de cualquier seguro de coches y que
consiste en ser atendido en el menor tiempo posible en caso de que lo necesite.
Para dar solución a estas necesidades y otras mas preocupaciones vamos a intentar aprovechar el potencial que
nos ofrece el Open Data que será nuestra fuente principal de datos, además de aprovechar las herramientas que
nos brinda el Business Intelligence para diseñar e implementar un sistema decisional (Data Mart) que en un
futuro lo integraremos dentro de la base de datos Data Warehouse de la empresa.
Para ello deberíamos.
• Buscar el Dataset (conjunto de datos) que nos hace falta dentro de los miles disponibles. Esta tarea es
muy laboriosa debido al gran volumen de datos disponibles y muy importante al mismo tiempo ya que
una mala elección hará que el proyecto fracase.
• Estudiar la fuente de datos (Dateset), y los distintos formatos en los que esta fuente esta disponible.
Además de si es posible tecnológicamente su explotación.
• Diseñar el repositorio de datos (Data Mart) en el que iremos guardando los datos una vez estos han sido
tratados adecuadamente definiendo las tablas que lo componen (hecho, dimensiones, etc.).
• Diseñar los procesos ETL que tendrán la funcionalidad de extraer los datos de la fuente, transformarlos
y luego cargarlos en el Data Mart.
• Llegado a este punto se hace necesario la elección y el uso de las herramientas oportunas para
automatizar las ejecuciones de los procesos ETL anteriormente diseñados.
Una vez diseñado y cargado el Data Mart podemos proceder a explotarlo con la herramienta OLAP oportuna y
que mejor se adapte a nuestras necesidades, sacando la información que nos será útil de cara a la de toma de
decisiones sobre cómo debemos distribuir nuestra flota basándonos en el comportamiento de las incidencias de
tráfico.
4.2 Escenario
Debido a la innovación del proyecto y antes de proceder a implementarlo directamente dedicando recursos que
no sabemos si después seremos capaces de rentabilizar habrá antes que realizar una prueba de concepto (POC,
Proof Of Concept) y que consiste en desarrollar el proyecto con recursos mínimos (sin compra de servidores, ni
licencias, ni equipos dedicados…), para demostrar a los jefes de negocio (Business Analist) la viabilidad de esta
solución tecnológicamente.
Por lo cual al tratarse de un POC concentraremos nuestro esfuerzo en localizar y tratar los datos de la comunidad
de Euskadi para que una vez la viabilidad está demostrada y el proyecto aceptado, pues se podrá adoptar la
solución y escalarla a nivel nacional a todas las comunidades de España y también en un futuro a nivel
internacional a los diferentes países en los que nuestra empresa de seguros está presente (Francia, Italia, Reino
unido, Estados unidos).
35
36 Caso Práctico: Análisis
Además, partimos de que ya disponemos de un Data Warehouse desarrollado con sus correspondientes
DataMarts y que tiene la funcionalidad de historificar la información del sistema operativo que usa la empresa
“Guidewire” (a estos datos no vamos a poder acceder debido a las estrictas normas de confidencialidad de la
empresa).
Entonces en este proyecto centraremos nuestro esfuerzo en localizar fuente de información (Open Data) que nos
ofrezca datos sobre las incidencias de tráfico en la comunidad de Euskadi con el objetivo de tratar estos datos,
guardarlos y historificarlos construyendo un nuevo Data Mart para luego poder analizarlo y dar respuestas a las
preguntas que nos plantea el negocio ofreciéndole las herramientas oportunas que les puedan orientar en toma
de las decisiones correctas.
Mantenimien
to Y
Crecimiento
Diseño de la Selección de
arquitectura Productos e
Tecnica implementacion
Definición de Diseño e
Planificacion
Requerimientos Modelado Implementación
del Proyecto Diseño Fisico de subsistema
Despliegue
de Negocio Dimensional
ETL
Especificacion Desarrollo de
de Aplicaciónes Aplicaciones de
de Usuario B.I usuario B.I
Administración
del Proyecto
DWH/BI
En la figura 20 podemos apreciar la aproximación global de todas las etapas del proyecto y que consisten en:
• Planificación del Proyecto.
Significa hacer una planificación del proyecto definiendo su alcance y las correspondientes tareas y objetivos
que lo componen.
• Definición de requerimientos de negocio
Se trata de saber la necesidad del negocio para poder introducirla al proyecto e implementarla. Esta etapa es la
más importante y complicada ya que requiere experiencia o una formación aparte en el área del negocio.
36
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 37
De esta etapa depende una gran parte del éxito del proyecto además de que constituye el punto de partida de las
tres ramas paralelas que son Tecnología, Datos e Interfaz de usuario.
• Modelado dimensional
Se empieza construyendo una matriz que representa los procesos de negocio claves y su dimensionalidad y a
partir de eso un modelo dimensional debe estar desarrollado. Este modelo identifica la granularidad de las tablas
de hechos y las dimensiones asociadas.
• Diseño físico
Define las estructuras físicas necesarias para la implementación la base de datos lógica. Este proceso se inicia
mediante la determinación de reglas de nomenclatura y las particiones y luego configurando el entorno de base
de datos.
• Diseño e implementación de subsistema ETL
Se trata de diseñar los procesos de Extracción, Transformación y Carga de datos.
• Diseño de arquitectura técnica
Hay tres factores que deben tomarse en consideración y son las necesidades del negocio, el entorno técnico
actual existente y por ultimo las principales técnicas estratégicas futuras previstas.
• Selección de productos e implementación
Se hace una evaluación de componentes específicos, tales como la plataforma de hardware, el SGDB y las
herramientas de preparación y acceso a los datos. Una vez estos componentes evaluados y seleccionados, se
procede a su instalación.
• Especificación de aplicación de usuario B.I
Se definen las especificaciones exigidas a la aplicación B.I según los roles de los usuarios finales.
• Desarrollo de aplicación de usuario B.I
Se trata de construcción de tableros, reportes y aplicaciones necesarias para explotar el Data Warehouse.
• Despliegue
Es el punto de convergencia de datos, la tecnología y la aplicación de usuario.
• Mantenimiento y crecimiento
El Data Warehouse es una base de datos que está siempre bajo nuevos desarrollos y que acompaña a la evolución
de la empresa por lo cual siempre se van a necesitar incluir nuevas dimensiones, hechos, etc. Por lo cual un
servicio de mantenimiento es necesario.
37
38 Caso Práctico: Análisis
Figura 22. Diagrama de Gantt que describe la planificación que se ha seguido en el proyecto
38
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 39
A
Continuación en este capítulo procederemos a desarrollar nuestra solución Business Intelligence
presentando primero nuestra fuente de datos Open Data y sus características y analizando los datos que
nos ofrece para luego pasar a diseñar nuestro modelo conceptual de base de datos (Data Mart) de
incidencias de tráfico. Después nos dedicaremos a programar los procesos ETL necesarios que realimentarán
nuestra Data Mart y automatizarlos con el planificador de tareas anteriormente presentado Rundeck. Una vez
construido el Data Mart procederemos a explotar los datos y a dar respuestas a las preguntas planteadas.
39
40 Caso Práctico: Diseño e Implementación
Después de varios días de búsqueda intensiva entre los miles de catálogos disponibles y bases de datos hemos
podido encontrar una base de datos que cumple los requisitos antes mencionados y que estudiaremos a
continuación.
Licencia. [Link]
Catálogo. [Link]
real-en-euskadi
Uso. Público.
Una vez encontrada la fuente se dedicará un tiempo a estudiar los datos que esta ofrece, para saber cómo se
comportan y prevenir los posibles casos que pueden dar fallos a nivel de programación de los procesos o a nivel
de incoherencia de datos.
40
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 41
➢ Tipo
o Meteorológica
o Accidente
o Retención
o Seguridad vial
o Otras incidencias
o Puertos de montaña
o Vialidad invernal tramos
o Pruebas deportivas
➢ Autonomía
o Euskadi
➢ Provincia
o Alava-Araba
o Bizkaia
o Gipuzkoa
➢ Matrícula
o BI
o VI
o SS
➢ Causa
o En caso de ser de Tipo Metereológica
• Agua
• Viento
• Nieve / Hielo
• Niebla
o En caso de ser de Tipo Accidente
• Alcance
• Atropello
• Salida
• Tijera camión
• Vuelco
o En caso de ser de Tipo Retención
• Fiestas
• Prueba deportiva
o En caso de ser de Tipo Seguridad Vial
• Aceite
• Avería
• Caída objetos
• Desprendimiento
• Gasoil
• Incendio
• Socavón
o En caso de ser de Tipo Puertos de montaña
• Agua nieve
• Hielo
• Nevando
• Niebla
• Nieve
• Nieve / Hielo
41
42 Caso Práctico: Diseño e Implementación
• Desconocida
• Obras
• Otros
o En caso de ser de Tipo Vialidad invernal tramos
• Agua nieve
• Hielo
• Nevando
• Niebla
• Nieve
• Nieve / Hielo
• Desconocida
• Obras
• Otros
o En caso de ser de Tipo Obras
• Obra
• Otra actividad
o En caso de ser Tipo Pruebas deportivas
• Automovilismo
• Ciclismo
• Ciclocross
o Cross
• Maratón
• Biatlón
• Triatlón
• Pentatlón
• Motociclismo
• MotoCross
• Marcha ciclista
• Mixta
• Atletismo
➢ Población
➢ Fecha hora inicio
➢ Nivel
o Verde (Normal)
o Blanco (Fluido)
o Amarillo (Lento)
o Rojo (Muy lento)
o Negro (Parado)
o En el caso de Puertos de montaña se concatenan los valores del estado del puerto para Turismo (T),
Camión (C) y Articulados (A). Estos valores del estado son:
• Cerrado
• Abierto
• Cadenas
• Precaución
➢ Carretera
➢ Punto Kilométrico inicial
➢ Punto kilométrico final
➢ Sentido
➢ Nombre
➢ Longitud
➢ Latitud
42
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 43
5.1.3 Ejemplo
43
44 Caso Práctico: Diseño e Implementación
• d_autonomia
44
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 45
• d_nivel
45
46 Caso Práctico: Diseño e Implementación
• H_INCI
46
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 47
47
48 Caso Práctico: Diseño e Implementación
49
50 Caso Práctico: Diseño e Implementación
[Link] Funcionamiento
• Encargado de la extracción de los ficheros XML de base de datos Open Data figura 28.
• Este proceso ETL se encarga de conectarse a la base de datos anteriormente descrita mediante web
service para extraer los ficheros XML correspondientes y guardarlos en un directorio local firgura 29.
• Los ficheros XML extraídos de la base de datos se irán extrayendo con frecuencia de 1extracción /
1hora por lo cual para que no haya perdida de información se guardarán en local con el nombre =
“file_YYYY_DD_HH_MM_SS.xml)” siendo Y: year (años) D: Day (Dia), H:Hour (hora), M:minute
(minutos), S:second(segundos) figura 30.
50
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 51
[Link] Diseño
51
52 Caso Práctico: Diseño e Implementación
[Link] Funcionamiento
• El Job primero establece las conexiones con nuestra base de datos PostgreSQL tanto para el esquema
AC como para el esquema TEMP figura 31.
• Luego se encarga de extraer los datos de los documentos XML (cargados anteriormente con el Job
LoadXmlFile) parsearlos, mapearlos y cargarlos en nuestra tabla temp_inci del esquema TEMP en
nuestra base de datos PostgreSQL tabla 16.
• Luego procede a transformar los datos guardados en la tabla temp_inci en el esquema TEMP mapeando
las dimensiones correspondientes de los datos para finalmente guardarlos en la tabla h_inci del esquema
AC tabla 17.
• Y por último hace el commit de todos los cambios aportados a la base de datos dejando las conexiones
cerradas e imprimiendo un log con el resumen de numero de registros procesados.
[Link] Diseño
Ejecutado el Job para procesar los datos del XML extraído anteriormente con el Job LoadXmlFile obtendremos
el siguiente resultado de ejecución.
52
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 53
53
54 Caso Práctico: Diseño e Implementación
[Link] Funcionamiento
• El Job después de establecer las conexiones con la base de datos se encarga de hacer un control de
duplicidad de los datos que se han cargado en el AC así evitamos redundancia en los datos además se
encarga de borrar los datos duplicados en el AC una vez detectados figura 32.
• El Job también se encarga de mapear los datos cargados del AC con las dimensiones correspondientes
en el DC figura 32.
• Después realiza el commit e imprime un resumen de los registros insertados y duplicados.
54
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 55
[Link] Diseño
55
56 Caso Práctico: Diseño e Implementación
[Link] Funcionamiento
• Este Job es el que se encarga de orquestar el funcionamiento de los otros Job. Es el Job padre y los
demás son Jobs hijos figura 33.
• Este Job también se encarga de pasar las variables de contexto a sus Jobs hijos y cargarlos de nuevo con
la ayuda del componente tContextLoad figura 33.
• Es el job que estará compilado y ejecutado.
• Imprime un log con un resumen de todos los registros procesados en los job hijos figura 34.
56
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 57
[Link] Diseño
5.4.5 EUSKA_PRO
Figura 35. EUSK_PRO Proyecto contenedor de todos los Job anteriormente descritos.
57
58 Caso Práctico: Diseño e Implementación
Una vez instalado y configurado y lanzado Rundeck, se accede a la aplicación web que ofrece este último
mediante la url: [Link]
Una vez en la aplicación web, aparecerá un cuadro de autentificación.
58
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 59
Una vez dentro del cuadro de configuración, primero le pondremos un nombre al Job y lo llamaremos
ControlMaster en referencia a Job padre compilado de Talend. En este proyecto solo tendremos un Job, pero en
proyectos más grandes suele haber muchos más y si el nombre no hace referencia al compilado que lanza será
muy fácil equivocarse y lanzar Job de forma errónea.
59
60 Caso Práctico: Diseño e Implementación
Una vez creado el Job y configurado procederemos a lanzarlo manualmente (también podremos esperar a que
se ejecute automáticamente en este caso serían dentro de 13minutos como aparece en la figura).
Figura 47. Cuadro con la configuración del conector de Tableau a la base PostgreSQL.
61
62 Caso Práctico: Diseño e Implementación
Una vez conectado a la base de datos podemos visualizar todas las tablas de las que esta dispone.
62
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 63
podido comprar un servidor para alojar Rundeck y nuestra base de datos PostgreSQL (DWH) para dejar que
cargue todo el tiempo la información de la base de datos de Open Data. Por lo cual para superar esta limitación
y seguir adelante con el proyecto hemos dejado el ordenador que aloja el servidor Rundeck y la base de datos
PostgreSQL encendido los 48h para cargar la información de dos días completos en nuestra base de datos
PostgreSQL. Así que trabajaremos sobre esta información disponible teniendo en cuenta que los cuadros de
mandos a desarrollar serán perfectamente válidos para el futuro también.
La tarea de análisis de datos requiere mucha destreza y capacidad analítica además de un conocimiento profundo
de las reglas y términos de negocio de la empresa por la cual se está desarrollando el proyecto B.I. A esta tarea
normalmente se suelen dedicar perfiles del tipo Business Analyst (analista de negocio), mientras que a las tareas
de diseño ETL, y mantenimiento de base de datos se suelen dedicar perfiles de Business Intelligence developer
(desarrollador de inteligencia de negocio).
A la hora de diseñar cuadros de mandos hay infinitas opciones e infinitas preguntas a las que se puede dar
respuestas, pero debido al carácter del proyecto formularemos las siguientes preguntas que nos van a servir de
ejemplo de cómo se diseñan cuadros de mando y que nos permitirán hacer un análisis inicial de los datos de los
que disponemos.
• ¿Cuál es la distribución del número de incidencias por población en 48h?
• ¿Qué población tiene el mayor número de incidencias en 48h?
• ¿Cuál es la distribución del número de incidencias por provincia en 48h?
• ¿Qué tipo de incidencias es el más frecuente en 48h?
• ¿Cuál es la causa que provoca el mayor número de incidencias en 48h?
63
64 Caso Práctico: Diseño e Implementación
64
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 65
65
66 Caso Práctico: Diseño e Implementación
Figura 55. Distribución de todas las incidencias registradas en función de provincia en 48h.
5.7 Resultados
Las figuras anteriores responden a las preguntas que nos hemos planteado. De modo que la población con mayor
número de incidencias en 48h es Idiazabal seguida de Aretxabaleta y Markina_xemein respectivamente como
se puede ver en la figura 51 además el mayor tipo de incidencias es “vialidad invernal tramos” seguida de
“seguridad vial” y “pruebas deportivas “como se puede ver en la figura 53.
Y analizando las causas principales de las incidencias en los 48h podemos identificar de la figura 54 que las
“obras” seguidas de “ciclismo” y “alcance” representan las causas principales de incidencias en la comunidad
de Euskadi. También podemos ver que hay un gran número de incidencias que vienen con causa no identificada
o desconocida.
Y a nivel de provincia queda claro de la figura 52 que el mayor número de incidencias se ha registrado en
“Bizkaia” con 43 incidencias seguida de “Gipuzkua” con 38 incidencias y por último “Alava-araba” con 34
incidencias y 73 incidencias sin identificar.
Como también vemos hay un gran número de incidencias que vienen de la base de datos Open Data con
información incompleta, en estos casos se puede poner en contacto con el servicio técnico que facilita estos datos
para comunicarles las incidencias de datos y ver si se puede llegar a alguna solución para evitar que estos
problemas se repitan en el futuro.
Y finalmente y a partir de la tabla 19 y de la figura 56 podemos dar respuesta a la pregunta principal del proyecto
como distribuir la flota de grúas de la empresa basándose únicamente sobre la información obtenida del análisis
de nuestro Data Mart de incidencias y teniendo en cuenta que solo disponemos de información de los últimos
48h.
66
Fundamentos y caso práctico de diseño de una solución B.I para explotar datos abiertos 67
Bizkaia 43 37,39%
Gipuzkua 38 33,04%
Alava-araba 34 29.56%
67