Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
1/26
Calidad del Agua
Madrid/2016
Curso Business Intelligence & Big Data
Coach:
José Carlos García Juan Carlos Ibañez
Autores:
Antonio Jesus Palmero
Angel Díaz Ginneth Camacho Fernando Casado
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
2/26
Indice
1. Introducción 3 1.1. Propósito 3 1.2. Alcance 3 1.3. Organización del documento 3
2. Contexto 4 2.1. Descripción 4 2.2. Objetivos de Negocio 4 2.3. Contexto de Negocio 5
3. Responsables y Usuarios 8 3.1. Responsables y Usuarios 8
3.1.1. Descripción de los Responsables que no son Usuarios de la solución 8 3.1.2. Descripción de los usuarios de la solución 10
3.2. Responsables y necesidades clave del usuario 10
4. Solución propuesta 12 4.1. Planificación y Gestión del proyecto. 12 4.2. Definición de la arquitectura. 13
4.2.1. Componentes de la arquitectura 13 4.2.2. Workflow del proceso 15 4.2.3. Almacenamiento y analítica de la información. 16 4.2.4. Explotación y visualización del modelo. 19
4.3. Casos de uso propuestos 26 4.3.1. Modelo de Casos de uso 26
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
3/26
1. Introducción
1.1. Propósito
El Documento Visión ofrece un nivel alto de la solución en el contexto de negocio correspondiente; se
utiliza por parte de los responsables del Cliente para tener una vista rápida de los principales puntos
cubiertos por el proyecto.
Además es el punto de vista en común para entender el problema y sirve para dirigir la base principal
sobre la que estructurar las ideas.
Su propósito es asegurar el consenso sobre el alcance y objetivos de la solución.
1.2. Alcance
Este documento“Visión” cubre el alcance del proyecto Calidad del agua - CICE.
1.3. Organización del documento
El presente documento incluye los siguientes capítulos:
� CONTEXTO: Ofrece una visión de las motivaciones de negocio que originan la implementación de la solución propuesta.
� RESPONSABLES Y USUARIOS: Describe a los responsables en el Proyecto y sus necesidades clave.
� SOLUCION PROPUESTA: • Presenta una panorámica de los casos de uso (casos de uso más relevantes y actores) y de los
objetivos de negocio que tienen que ser cubiertos,
• Describe el alcance funcional de la solución y sus principales funcionalidades.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
4/26
2. Contexto
2.1. Descripción
Los ecosistemas marinos son importantes no solo porque incluyen diferentes tipos de hábitat y
albergan una enorme riqueza de especies, sino que, además son parte fundamental en la regulación
hidrológica y climática; debido a su alta productividad de fitoplancton, constituyen una importante
fuente de carbono y oxígeno, elementos necesarios para la vida en la tierra. Los ambientes costeros
asociados a estos ecosistemas ofrecen también beneficios a las comunidades humanas que se asientan
en su cercanía ya que protegen la línea costera de la erosión y las tormentas. Las zonas costeras con
playa favorecen el desarrollo turístico en una región determinada, por lo que la regulación de las
actividades humanas que puedan alterar la calidad de las aguas marinas se vuelve prioritaria para
muchos países. De acuerdo a los requisitos y especificaciones de sustentabilidad de playas, la
presencia bacteriológica del agua de mar se va a medir en función del tiempo en que una luz/laser
lanzada por un telescopio sea recibida por el mismo telescopio. Éste tiempo variará según la turbidez
que tenga el agua analizada y el dispositivo informará del tipo de sustancia causante de dicha turbidez,
que podrían estar relacionados directamente con enfermedades del tracto digestivo de los mamíferos,
entre otras, y pueden afectar a la salud de los usuarios de las playas contaminadas con éstas
sustancias.
2.2. Objetivos de Negocio
¿Por qué es importante hacer una monitorización de la calidad del agua de mar? Debido al crecimiento
urbano y a la presión actual de los proyectos costeros de gran escala que están autorizados en todas
las regiones, debemos vigilar con mayor frecuencia la calidad del agua de mar para asegurarnos de
que permanezca en óptimas condiciones y garantizar la protección tanto de nuestros valiosos recursos
naturales cómo de nuestra salud. Las playas de la Costa Canaria son un orgullo, ya que debido a su
belleza, le da una vocación turística a la región ya que mucha gente viene a disfrutar de éstas.
Además, el sector de la pesca artesanal depende de que las condiciones del mar se mantengan
óptimas para que su economía no se vea afectada y garantizar la salud del ecosistema marino, los
locales y de los usuarios. Es por esto, se debe vigilar que la calidad del agua de mar sea buena ya que
a través de una monitorización constante podremos detectar cambios relacionados a las 6 actividades
humanas a lo largo del tiempo y así velar por la protección de nuestros valiosos recursos naturales y el
cuidado de nuestra salud.
Se pretende conseguir la bandera azul en las playas analizadas, la cual es otorgada por criterios que se
agrupan en cuatro áreas:
- Calidad de las aguas de baño.
- Información y educación ambiental.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
5/26
- Gestión ambiental y Seguridad.
- Servicios e instalaciones.
Lo que se pretende con este proyecto es centrarse en el primer criterio nombrado (Calidad de las
aguas de baño).
Se utilizarán modelos de clasificación para clasificar los tipos de vertidos que sean detectados y que
permitan al usuario tomar decisiones sobre cómo actuar para solucionar los problemas detectados,
como por ejemplo utilizando productos químicos que ayuden en la disolución del vertido. Otro caso
de uso sería analizar las embarcaciones que hayan estado fondeadas en los espacios analizados y
analizar la posible sanción si se detecta que el vertido es de la sustancia que dicha embarcación
transporta.
Como posible caso de uso futuro se podría analizar la dirección del viento para analizar hacia donde
se podría desplazar el vertido y esto permitiría tomar decisiones clave y anticiparse a futuros
problemas de contaminación. Este último caso de uso queda fuera del alcance de este proyecto
inicial, pero puede ser una muy buena palanca de venta para continuar con el análisis que se
realizará.
2.3. Contexto de Negocio
El mantener la calidad de agua en lugares turísticos es un factor primordial para garantizar la
protección de la salud de los usuarios y es un punto de interés para el sector turístico, dado que las
playas adquieren un valor agregado al contar con una certificación de playas limpias (Banderas
Azules).
¿Por qué medir posibles vertidos en una muestra de agua? Si se detectan descargas vertidas al
mar pueden significar un riesgo para la salud humana debido a que pueden causar enfermedades en la
piel o gastrointestinales. Estos padecimientos pueden ser adquiridos por bañistas cuando entran en
contacto con aguas contaminadas. Por tal este proyecto pretende analizar indicadores que se obtengan
de las clasificaciones de los tipos de vertido que se encuentren en las playas y de las aguas salobres.
Para obtener una línea base de la calidad de agua de mar, es necesario medir indicadores
bacteriológicos y parámetros fisicoquímicos básicos que describan sus características. De acuerdo a los
requisitos y especificaciones de sustentabilidad de playas, la calidad bacteriológica del agua de mar,
lagunas costeras y estuarios deberá medirse en función del tipo de vertido detectado sobre la muestra
de agua marina. Para este programa se medirá la transparencia, medida en metros sobre el coeficiente
de atenuación de luz. Estos parámetros son importantes ya que son los que caracterizan el agua,
además, son parámetros que afectan la vida en ella.
Sitios donde se llevará a cabo la monitorización
Los sitios donde se llevarán a cabo los muestreos están en función del auge de actividades humanas
como el tránsito de embarcaciones (por las descargas de combustibles y desechos orgánicos), de la
modificación de la línea de costa, de las comunidades en desarrollo (por las descargas de aguas
residuales y posibles desalinizadoras) y de las descargas de agua natural proveniente de arroyos.
Debido a que en general, los cuerpos de agua no son homogéneos en cuanto a sus propiedades
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
6/26
microbiológicas se muestrearán varios puntos por sitio, los cuales estarán en relación al auge de las
actividades antes descritas.
Instrumentación.
Diagrama de Telescopio receptor de información:
El telescopio1 será instalado en avionetas que recorrerán los puntos de costa a analizar y realizarán la
recopilación de los datos.
1 Ver patente en: http://www.oepm.es/pdf/ES/0000/000/01/07/59/ES-1075980_U.pdf
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
7/26
Una breve descripción tanto de los datos de entrada como de salida:
- Datos de entrada localización. Identificación de la zona geográfica que escanea el dispositivo.
- Datos de entrada fecha y hora de lectura.
- Datos de entrada ch1_410nm, ch2_450nm, ch3_490nm, ch4_530nm, ch5_580nm,
ch6_610nm, ch7_670nm:
La luz/laser que recibe el telescopio se descompone en 7 canales medidos en nanómetros (mide la
longitud de onda de la luz - laser). Cada canal es un color.
Los valores están normalizados (valores entre 0 y 1).
- Datos de entrada fwhm_ns:
El tiempo en nanosegundos que tarda la luz en retornar al dispositivo.
- Datos de salida label:
Contendrá los siguientes valores crudo 'norne'; crudo 'maya', fuel oleo 'IFO380' (f.o intermedio); fuel
oleo vía '1BIA' (f.o. bajo índice azufre); no target: sin resto
2.4. Valor de Negocio
La Bandera Azul se ha convertido en un símbolo reconocido por millones de usuarios de playas y
puertos, y en un estándar mundial de eco-calidad turística en más de sesenta países de los cinco
continentes.
La Bandera Azul es una certificación de calidad:
1. Con mayor antigüedad y continuidad en el tiempo.
2. Con mayor participación, cooperación activa y apoyos institucionales, cualitativos y
cuantitativos.
3. Con mayor extensión e implantación geográfica.
4. Con un crecimiento más rápido y un mayor potencial de crecimiento futuro.
5. Con un enfoque interdisciplinar y equilibrado entre sus tres dimensiones: económico-turística;
ecológica-sanitario-ambiental y educativa-social.
6. Con un balance original y único entre su dimensión pública y privada.
7. Con mayor difusión mediática como marca y grado de conocimiento popular.
8. Con mayor demanda de conocimiento y/o extensión de su metodología y espíritu a otros
sectores.
9. Con probada independencia de presiones políticas, partidarias o territoriales, corporativas o
económicas.
10. Con el mejor ratio costes-beneficios, materiales y simbólicos, para todos sus
participantes/protagonistas.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
8/26
3. Responsables y Usuarios
3.1. Responsables y Usuarios
En el actual proyecto se han identificado los siguientes roles responsables:
- Responsable de captura de información.
- Responsable de análisis de datos.
- Responsable de infraestructura técnica.
- Responsable de desarrollo de explotación de información.
- Responsables Informática de área de medio ambiente Gobierno Canario.
- Usuarios directivos medio ambiente Gobierno Canario.
3.1.1. Descripción de los Responsables que no son Usuarios de la solución
Responsable de captura de información
Descripción Equipo responsable de realizar la captura de los datos en los diferentes puntos de captura.
Perfil Especialistas en manejo de telescopio.
Responsabilidades Recopilación de información diaria de los diferentes puntos de análisis.
Criterios de éxito Existencia de datos diarios
Implicación Responsable captura de información
Productos a obtener Datos diarios de los 5 puntos de captura
Comentarios
Responsable de análisis de datos
Descripción Equipo responsable de análisis de los datos nuevos recopilados con los ya existentes en el sistema.
Perfil Analista de datos experto en R
Responsabilidades Análisis de los datos recopilados e integrar con los datos históricos para favorecer la toma de decisiones.
Criterios de éxito Obtener conclusiones que favorezcan la toma de decisiones
Implicación Responsable de análisis de datos
Productos a obtener Conclusiones basadas en datos de análisis
Comentarios
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
9/26
Responsable de infraestructura técnica
Descripción Equipo responsable de mantener infraestructura técnica del proyecto.
Perfil Experto técnico en tecnología Hadoop
Responsabilidades Montaje y mantenimiento de infraestructura Hadoop que permitirá analizar los datos recopilados y realizar el almacenamiento de la información que permita al sistema recopilar conclusiones.
Criterios de éxito Infraestructura robusta y escalable que favorezca el análisis de grandes cantidades de datos.
Implicación Responsable de infraestructura técnica.
Productos a obtener Sistema robusto y fácilmente escalable
Comentarios
Responsable de desarrollo de modelado y explotación de la información
Descripción Equipo responsable de desarrollo de realizar el modelado de los datos y del diseño y desarrollo del Cuadro de Mando.
Perfil Experto en modelado y técnico en tecnología para desarrollo de Cuadro de Mando
Responsabilidades Modelado de los datos, construcción de DataWareHouse (Hechos, Dimensiones e Indicadores) y diseño y desarrollo de Cuadro de Mando Operativo.
Criterios de éxito DataWarehouse optimizado y con alto rendimiento para que el Cuadro de Mando se comporte de manera eficaz.
Implicación Responsable de desarrollo de modelado y explotación de la información.
Productos a obtener DataWareHouse y Cuadro de Mando.
Comentarios
Responsable informática de área de medio ambiente d e Gobierno Canario
Descripción Equipo responsable de supervisión de desarrollo del proyecto. Pruebas y validación del producto final.
Perfil Experto técnico y conocedor del negocio.
Responsabilidades Supervisar los trabajos de desarrollo desde la captura de los datos hasta la entrega del Cuadro de Mando, teniendo que revisar y aprobar funcionalidad y rendimiento del producto.
Criterios de éxito Recogida de datos, creación DataWarehouse optimizado y Cuadro de Mando eficaz.
Implicación Responsable informática de área de medio ambiente de Gobierno Canario.
Productos a obtener DataWareHouse y Cuadro de Mando.
Comentarios
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
10/26
3.1.2. Descripción de los usuarios de la solución
<Nombre Usuario>
Descripción Responsable de equipo de medio ambiente.
Perfil Experto en negocio con capacidad de toma de decisiones en pos de conseguir objetivos marcados por el área de medio ambiente.
Responsabilidades Revisión y auditoría de los datos. Seguimiento y control de los indicadores para la consecución de los objetivos del área de medio ambiente.
Criterios de éxito Datos fiables, ágiles, rendimiento óptimo del sistema. Cuadro de Mando eficaz y fácil de usar.
Implicaciones Responsable negocio área de medio ambiente Gobierno Canario.
Productos a obtener Cuadro de Mando para análisis de indicadores claves para el negocio.
Persona delegada
Comentarios
3.2. Responsables y necesidades clave del usuario
Necesidad/Problema Solución esperada Prioridad Relacionados
Datos diarios con el estado de las aguas en las playas seleccionadas
Información recogida utilizando telescopio Alta Responsable de captura de la información.
Integración de los datos recogidos con el histórico de manera fiable
Proceso óptimo de integración del dato nuevo con el histórico para su posterior explotación
Alta Responsable de captura de la información / Responsable de Infraestructura técnica / Responsable de desarrollo de modelado y explotación de la información
Realización de análisis de información para predicciones
Algoritmo analítico que realice predicciones en base a unos datos históricos
Alta Responsable de análisis de datos
Cálculo de indicadores El sistema calculará los indicadores definidos por negocio
Alta Responsable de desarrollo de modelado y explotación de la información
Visualización de la información
Cuadro de mando operativo que muestre de una manera gráfica e intuitiva los indicadores objetivos marcados por el negocio
Alta Responsable de desarrollo de modelado y explotación de la información
Validación de las necesidades planteadas por el negocio
Seguimiento y control de las tareas de análisis y desarrollo del proyecto para garantizar que el producto final cubra las expectativas y necesidades marcadas por el negocio
Alta Responsable informática de área de medio ambiente de Gobierno Canario
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
11/26
Definición de los indicadores y objetivos a analizar por el producto a desarrollar
Análisis de negocio de indicadores y objetivos
Alta Usuario Final Negocio / Responsable informática de área de medio ambiente de Gobierno Canario
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
12/26
4. Solución propuesta
4.1. Planificación y Gestión del proyecto.
El proyecto se gestionará mediante un enfoque Agile, haciendo uso de la metodología Scrum. Se
establecen dailys para evaluar el trabajo realizado y a realizar y posibles elementos bloqueantes. Al
final del sprint se realiza una review para evaluar el trabajo completado o no y mostrar una demo de la
plataforma.
Se ha planificado el proyecto en tres sprints más un sprint inicial (sprint 0) dedicado al análisis de
negocio y a la evaluación del software necesario. Dos sprints en los que se desarrollará el grueso de la
solución y un tercero en el que se integrarán los distintos componentes desarrollados de modo que el
workflow del proceso sea adecuado.
El trabajo se organizará en tres epics que nos permitirán minimizar bloqueos por dependencias, causa
principal de retrasos en proyectos. Son las siguientes:
- Instalación e implementación de la Arquitectura Big Data
- Implementación de Machine Learning
- Instalación e implementación de la Arquitectura DWH
El desarrollo final del proyecto se muestra en la siguiente imagen :
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
13/26
4.2. Definición de la arquitectura.
4.2.1. Componentes de la arquitectura
Cluster Big Data
• Zookeeper. Soluciona problemas de consenso entre aplicaciones y proporciona un repositorio
de configuración común disponible para todas las aplicaciones. Se encuentra instalado en pro-
nodo01, pro-nodo02 y pro-nodo03 en Alta Disponibilidad.
• Flume. Consume inicialmente el contenido del fichero de entrada y lo publica en kafka. Se
encuentra instalado en pro-nod01
• Kafka. Gestor de colas de tipo publicación-suscripción. Recibe el fichero de Flume. Instalado
en pro-nodo01.
• Mesos. Permite gestionar los recursos disponibles en un entorno distribuido. Se han instalado
3 nodos maestros y 3 esclavos en pro-nodo01, pro-nodo02 y pro-nodo03.
• Spark. Framework que permite procesar información de forma distribuida. En nuestro caso,
nos suscribimos al topic de kafka para, mediante Spark Streaming y Spark sql, realizar un
proceso de limpieza, mapeo y la persistencia en hdfs (los valores de origen) y en Postgres X2.
En la solución propuesta se han incluido nodos esclavos en los nodos pro-nodo01, pro-nodo02
y pro-nodo03 y un maestro en pro-nodo01.
• HDFS. Sistema de ficheros de hadoop en el que persistiremos la información original
procedente de Kafka de forma distribuida. Para la solución, se ha optado por poner data nodes
en los nodos pro-nodo01, pro-nodo02 y pro-nodo03. El name node en el nodo 1 y el secondary
name node en el nodo 2.
Cluster DataWarehouse Big Data
• Postgres X2. Gestor de base de datos relacional MPP que, además de permitir escalado
vertical permite escalado horizontal, distribuyendo la información y la computación a lo largo
del cluster sin perder las propiedades ACID básicas en un gestor de base de datos relacional.
En pro-nodo04 y pro-nodo05 estarán los data node y el coordinador y el gtm (gestor de
transacciones) estará en el pro-nodo04.
• R server. Servidor con el lenguaje de programación R que nos permitirá, dado un conjunto de
muestras, clasificar el tipo de muestra recogida.
• Power BI. Permite la creación de informes y Dashboards
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
14/26
Podemos ver a continuación la solución final descrita:
Toda la información de la instalación y la configuración de los sistemas utilizados se encuentra
descrita en el documento Anexo I Instalación y Configuración de Sistemas.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
15/26
4.2.2. Workflow del proceso
El workflow constará de una parte ejecutada en streaming y otra parte en batch. Se describen a
continuación:
Parte streaming
1. Flume recibe los datos del telescopio y los envía a un topic de Kafka
2. Spark se suscribe al topic de kafka, persiste los datos originales en hdfs, evalúa si los valores del
registro son correctos, realiza mapeo de valores y persiste los datos en Postgres X2
Parte batch
3. R recibe los datos cargados en Postgres X2 y ejecuta su algoritmo para clasificar la muestra y vuelve
a persistir los datos en Postgres X2 ya con un tipo asignado.
4. Se ejecuta un procedimiento en Postgres X2 que traspasa la los datos depositados por R en el
DataWarehouse.
5. Podemos ver con Power BI los dashboards generados.
Vemos en la siguiente imagen el workflow del proceso completo:
Se tiene como objetivo el no perder ninguna de las lecturas diarias que se realizan en cada uno de los
dispositivos.
La estructura que tendrán los ficheros de información que son generados por los diferentes telescopios
será la siguiente:
- Localización.
- Fecha y Hora de lectura.
- CH1 (nanómetros, valor normalizado entre 0 y 1).
- CH2 (nanómetros, valor normalizado entre 0 y 1).
- CH3 (nanómetros, valor normalizado entre 0 y 1).
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
16/26
- CH4 (nanómetros, valor normalizado entre 0 y 1).
- CH5 (nanómetros, valor normalizado entre 0 y 1).
- CH6 (nanómetros, valor normalizado entre 0 y 1).
- CH7 (nanómetros, valor normalizado entre 0 y 1).
- Tiempo (nanosegundos. El tiempo en nanosegundos que tarda la luz en retornar al dispositivo.
4.2.3. Almacenamiento y analítica de la información.
La información recibida se almacena en HDFS y se envía a PostGreSQL X2 para su procesamiento con
R y su explotación con Power BI. Dicha base de datos será alimentada diariamente y almacenará todas
las lecturas realizadas por los dispositivos sin la pérdida de ningún dato.
a. Limpieza, validación y transformación del dato.
Los procesos de limpieza, validación y transformación del dato son realizados por Spark en primer
lugar y posteriormente con R.
b. Fase de analítica.
En esta fase de proyecto se desarrollará, además del almacenamiento, la fase de analítica. Dicha
analítica, programada en R, leerá los datos almacenados y analizará mediante modelos estadísticos y
de predicción, cuáles serán los diferentes tipos de fuel que se están vertiendo en los diferentes puntos
geográficos analizados.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
17/26
En la fase de analítica se elaboran dos modelos siguiendo el siguiente proceso:
Toda la información sobre los modelos de clasificación se encuentra en el documento Anexo II
Elaboración del modelo para la clasificación de las lecturas.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
18/26
El dataset de entrenamiento utilizado ha sido generado a partir de un detector de sustancias
fluorescentes. La patente es:
http://www.oepm.es/pdf/ES/0000/000/01/07/59/ES-1075980_U.pdf
c. Fase de modelado.
Comprende la fase de definición de la estructura que va a contener la información del proyecto. Se ha
utilizado un esquema de copo de nieve, de esta manera organizamos la base de datos en tablas de
hechos y dimensiones.
Reglas y Nomenclatura.
Con el uso de patrones y reglas se facilita el trabajo de asignar nombres a los datos y objetos de las
bases de datos, permitiendo así, mayor facilidad de identificación, comprensión y mantenimiento.
Reglas Generales.
A continuación se enumeran un conjunto de reglas generales que se han tenido en cuenta a la hora de
definir nombres para los distintos objetos presentes en las bases de datos:
• Los nombres deben ajustarse al máximo a la idea de proyecto.
• Los nombres de los objetos no deben utilizar ningún carácter especial, a excepción del carácter
“_” que se puede utilizar como separador para hacer más legibles los nombres.
• En los nombres no se utilizarán ni artículos ni preposiciones que sean irrelevantes para el
significado del objeto: Ejemplo: co_zona_lectura (correcto) co_zona_de_lectura (incorrecto)
• Las columnas se nombrarán usando letras en minúscula.
Nomenclatura de Tablas - Sufijos por funcionalidad.
Resulta útil definir directamente en el nombre de la tabla la funcionalidad para la que esta ha sido
definida. En el proyecto se utilizarán los siguientes sufijos.
Sufijo Descripción
Ori Tablas que contienen datos originales
sin ningún tratamiento
Opt Tablas con una optimización o guarde
el resultado de un modelo
Bi Tablas con agregaciones simples
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
19/26
Nomenclatura de columnas.
A continuación, se muestran las diferentes abreviaturas que se utilizarán como prefijo para expresar la
naturaleza de la columna.
Naturaleza Prefijo Tipo
Identificador id Numérico entero
Código co Alfabético, numérico o
alfanumérico
Nombre no Alfabético o alfanumérico
Descripción ds Alfabético o alfanumérico
Fecha dt Date, expresado en YYYY-MM-DD
Cantidad qt Numérico entero
Valor vl Numérico con decimales
4.2.4. Explotación y visualización del modelo.
La explotación y visualización de la información se realizará a través de un Cuadro de Mando Operativo
que permita al usuario tener una visión global, clara y gráfica de la situación con objetivo de análisis.
Los pasos a seguir en esta fase serán los siguientes:
- Definición de indicadores y dimensiones necesarios para el cuadro de mando de calidad del agua.
- Modelo de base de datos.
- Carga de la tabla.
- Implementación del cuadro de mando.
a. Diagramas Entidad – Relación.
• Base de Datos Stage: crudos_stage
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
20/26
• Base de Datos DWS: crudos_BI
b. Código DDL de las base de datos.
• Base de Datos Stage: crudos_stage
-- DROP DATABASE crudos_stage;
CREATE DATABASE crudos_stage
WITH OWNER = postgres
ENCODING = 'UTF8';
CREATE TABLE lecturas_ori (
id_lectura serial NOT NULL,
dt_lectura date NULL,
vl_ch1_410nm numeric not null,
vl_ch2_450nm numeric not null,
vl_ch3_490nm numeric not null,
vl_ch4_530nm numeric not null,
vl_ch5_580nm numeric not null,
vl_ch6_610nm numeric not null,
vl_ch7_670nm numeric not null,
qt_fwhm_ns int null,
id_localizacion int,
CONSTRAINT pk_lecturas_ori PRIMARY KEY (id_lectura)
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
21/26
) DISTRIBUTE BY ROUNDROBIN;
• Base de Datos DWS: crudos_BI
--DROP DATABASE IF EXISTS crudos_BI;
CREATE DATABASE crudos_bi
WITH OWNER = postgres
ENCODING = 'UTF8';
CREATE TABLE tipo_crudo(
id_tipo_crudo serial NOT NULL,
no_tipo_crudo varchar(25) NOT NULL,
ds_tipo_crudo varchar(50) NULL,
CONSTRAINT pk_tipo_crudo PRIMARY KEY (id_tipo_crudo)
) DISTRIBUTE BY REPLICATION;
INSERT INTO TIPO_CRUDO (id_tipo_crudo,no_tipo_crudo,ds_tipo_crudo) VALUES (1,'norne',NULL);
INSERT INTO TIPO_CRUDO (id_tipo_crudo,no_tipo_crudo,ds_tipo_crudo) VALUES (2,'maya',NULL);
INSERT INTO TIPO_CRUDO (id_tipo_crudo,no_tipo_crudo,ds_tipo_crudo) VALUES (3,'ifo380','fuel oleo IFO380 (f.o intermedio)');
INSERT INTO TIPO_CRUDO (id_tipo_crudo,no_tipo_crudo,ds_tipo_crudo) VALUES (4,'f1bia','fuel oleo vía 1BIA (f.o. bajo índice azufre)');
INSERT INTO TIPO_CRUDO (id_tipo_crudo,no_tipo_crudo,ds_tipo_crudo) VALUES (5,'notarget','no target: sin resto');
CREATE TABLE localizacion(
id_localizacion serial NOT NULL,
co_localizacion varchar(3) NOT NULL,
no_localizacion varchar(25) NOT NULL,
CONSTRAINT pk_localizacion PRIMARY KEY (id_localizacion)
) DISTRIBUTE BY REPLICATION;
INSERT INTO localizacion (id_localizacion,co_localizacion,no_localizacion) VALUES (1,'ten','tenerife');
INSERT INTO localizacion (id_localizacion,co_localizacion,no_localizacion) VALUES (2,'pal','las palmas');
CREATE TABLE calendar (
dt_fecha date NOT NULL,
ww_445 int4 NOT NULL,
yy_445 int4 NOT NULL,
id_ini_445 int2 NOT NULL,
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
22/26
ww_cal int4 NOT NULL,
yy_cal int4 NOT NULL,
id_ini_cal int2 NOT NULL
) DISTRIBUTE BY REPLICATION;
-- ...
INSERT INTO calendar VALUES ('2015-12-31', '52', '2015', '0', '53', '2015', '0');
INSERT INTO calendar VALUES ('2016-01-01', '1', '2016', '1', '53', '2015', '0');
INSERT INTO calendar VALUES ('2016-01-02', '1', '2016', '0', '53', '2015', '0');
INSERT INTO calendar VALUES ('2016-01-03', '1', '2016', '0', '53', '2015', '0');
INSERT INTO calendar VALUES ('2016-01-04', '1', '2016', '0', '1', '2016', '1');
INSERT INTO calendar VALUES ('2016-01-05', '1', '2016', '0', '1', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-06', '1', '2016', '0', '1', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-07', '1', '2016', '0', '1', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-08', '1', '2016', '0', '1', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-09', '2', '2016', '1', '1', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-10', '2', '2016', '0', '1', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-11', '2', '2016', '0', '2', '2016', '1');
INSERT INTO calendar VALUES ('2016-01-12', '2', '2016', '0', '2', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-13', '2', '2016', '0', '2', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-14', '2', '2016', '0', '2', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-15', '2', '2016', '0', '2', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-16', '3', '2016', '1', '2', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-17', '3', '2016', '0', '2', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-18', '3', '2016', '0', '3', '2016', '1');
INSERT INTO calendar VALUES ('2016-01-19', '3', '2016', '0', '3', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-20', '3', '2016', '0', '3', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-21', '3', '2016', '0', '3', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-22', '3', '2016', '0', '3', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-23', '4', '2016', '1', '3', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-24', '4', '2016', '0', '3', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-25', '4', '2016', '0', '4', '2016', '1');
INSERT INTO calendar VALUES ('2016-01-26', '4', '2016', '0', '4', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-27', '4', '2016', '0', '4', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-28', '4', '2016', '0', '4', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-29', '4', '2016', '0', '4', '2016', '0');
INSERT INTO calendar VALUES ('2016-01-30', '5', '2016', '1', '4', '2016', '0');
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
23/26
INSERT INTO calendar VALUES ('2016-01-31', '5', '2016', '0', '4', '2016', '0');
-- ...
CREATE TABLE lecturas_opt (
id_lectura serial NOT NULL,
dt_lectura date NULL,
vl_ch1_410nm numeric not null,
vl_ch2_450nm numeric not null,
vl_ch3_490nm numeric not null,
vl_ch4_530nm numeric not null,
vl_ch5_580nm numeric not null,
vl_ch6_610nm numeric not null,
vl_ch7_670nm numeric not null,
qt_fwhm_ns int null,
id_localizacion int,
no_tipo_crudo varchar(25) NOT NULL,
CONSTRAINT pk_lecturas_opt PRIMARY KEY (id_lectura),
CONSTRAINT fk01_localizacion_opt FOREIGN KEY (id_localizacion)
REFERENCES localizacion (id_localizacion) MATCH FULLON UPDATE NO ACTION ON DELETE NO ACTION
) DISTRIBUTE BY ROUNDROBIN;
CREATE TABLE lecturas_dest(
id_lectura serial NOT NULL,
dt_lectura date NULL,
vl_ch1_410nm numeric not null,
vl_ch2_450nm numeric not null,
vl_ch3_490nm numeric not null,
vl_ch4_530nm numeric not null,
vl_ch5_580nm numeric not null,
vl_ch6_610nm numeric not null,
vl_ch7_670nm numeric not null,
qt_fwhm_ns int null,
id_localizacion int,
no_tipo_crudo varchar(25) NOT NULL,
CONSTRAINT pk_lecturas_dest PRIMARY KEY (id_lectura),
CONSTRAINT fk01_localizacion_dest FOREIGN KEY (id_localizacion)
REFERENCES localizacion (id_localizacion) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
24/26
) DISTRIBUTE BY ROUNDROBIN;
CREATE TABLE lecturas_bi (
dt_lectura date,
id_tipo_crudo integer NOT NULL,
id_localizicion integer NOT NULL,
qt_lecturas integer NOT NULL,
CONSTRAINT Pk_lecturas_bi PRIMARY KEY (dt_lectura, id_tipo_crudo, id_localizicion),
CONSTRAINT fk01_tipo_crudo FOREIGN KEY (id_tipo_crudo)
REFERENCES tipo_crudo (id_tipo_crudo) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk02_localizacion FOREIGN KEY (id_localizicion)
REFERENCES localizacion (id_localizacion) MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
) DISTRIBUTE BY ROUNDROBIN;
Capa de Presentación.
CLASE OBJETO DESCRIPCION
Indicadores Nº de lecturas Cuenta del número de lecturas.
Tipo de Crudo Tipo de Crudo Descripción del tipo de crudo.
Fecha Muestra
Fecha Muestra Fecha de recogida de la muestra.
Año Muestra Año de la fecha de la muestra.
Mes Muestra Mes de la fecha de la muestra.
Localización Código de localización Código de la localización.
Localización Descripción de la localización.
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
25/26
Visión de la Solución CICE / Calidad del agua 06 de diciembre de 2016 Issuing Entity
26/26
4.3. Casos de uso propuestos
4.3.1. Modelo de Casos de uso
Es necesario que el usuario pueda analizar los números de vertidos realizados para un espacio de
tiempo y una determinada localización. Para ello se le permitirá obtener la información filtrando por los
siguientes conceptos:
- Localización.
- Tipo de Crudo.
- Fecha.
o Año.
o Mes.
La información se agrupará por uno o varios de los siguientes conceptos:
- Tipo de Crudo.
- Fecha de Muestra.
o Año
o Mes
- Localización.
Top Related