3.4 Análisis de datos: Algoritmos
4.2.3 Análisis de datos
• Desarrollo de algoritmos declustering para la agrupación de elementos.
• Aplicación del algoritmo LDA para la agrupación por temas de los Tweets recopilados durante
la primera fase del proyecto.
• Integración de los resultados en la base de datos relacional Oracle 12c.
• Proceso de selección de variables y desarrollo de algoritmos de aprendizaje automático super-
visado para la construcción de un modelo predictivo.
• Desarrollo del análisis de textos y sentimientos a través de algoritmos deText Mining
4.2.4 Visualización
• Instalación del container Docker con Shiny para la visualización de los resultados.
• Estudio de los resultados, elecciones sobre el diseño de los cuadros de mando.
• Visualización de los resultados obtenidos tras el uso de los algoritmos de clustering, LDA, aprendizaje supervisado y minería de textos.
48 4.3. MARCO TECNOLÓGICO 4.2.5 Documentación
• A lo largo del desarrollo,se ha generado documentación sobre procedimientos, metodología, uso de herramientas y cualquier aspecto digno de mencionar en este trabajo.
• Elaboración de este documento.
4.2.6 Testing
• Una vez finalizado el desarrollo de todo el código necesario, se procede a realizar una revisión del mismo para eliminar comentarios innecesarios y depurarlo lo máximo posible con el fin de
depurar su funcionamiento.
• Revisión de este documento para eliminar erratas, corregir errores de formato, modificar secciones, etc.
4.3 MARCO TECNOLÓGICO
En este apartado se detalla por categorías el amplio marco tecnológico del que se ha hecho uso durante el desarrollo de este trabajo.
4.3.1 Docker
Docker es un proyecto Open Source que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de
virtualización de aplicaciones en múltiples sistemas operativos. Para llevar a cabo esta función, utiliza características de aislamiento de recursos del kernel Linux, permitiendo así que contenedores independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y
mantener máquinas virtuales.
Figura 4.3: Logo Docker
Su funcionamiento es el siguiente: el soporte del kernel Linux para los espacios de nombres aísla
la vista que tiene una aplicación de su entorno operativo; que incluye árboles de proceso, red, ID de usuario y sistemas de archivos montados. Por otro lado, los cgroups del kernel proporcionan aislamiento de recursos; que incluyen la CP U, memoria, el bloque de Entrada / Salida y la red.
Además, Docker incluye la bibliotecalibcontainer como su propia manera de utilizar directamente las facilidades de virtualización que ofrece el kernel Linux.
Esta herramienta es fundamental para el desarrollo de este trabajo en todas sus fases. Se usan
contenedores para albergar ambas bases de datos, para el módulo R que implementa el análisis de los datos, o para el canal de comunicación entre el Data Lake y la fuente. Esto permite un gran ahorro de
CAPÍTULO 4. METODOLOGÍA 49
espacio en la máquina local, además de permitir utilizar herramientas en distintos sistemas operativos
e implementaciones de forma conjunta.
En la siguiente figura se ejemplifica la estructura de Docker con el fin de facilitar la compresión del funcionamiento de esta herramienta
Figura 4.4: Arquitectura Docker [https://hub.docker.com]
4.3.2 Apache Kafka
Apache Kafka es una plataforma distribuida de streaming oDistributed Streaming Platform. Es decir, esta plataforma cumple con tres funciones:
• Provee un sistema de publicación / suscripción a registros de unstream de datos. Tiene un funcionamiento muy similar a una cola de mensajes.
• Almacenaje de unstreaming de datos tolerable a fallos.
• Procesado en directo de los registros de unstreaming de datos en tiempo real.
50 4.3. MARCO TECNOLÓGICO
En la figura inferior, podemos ver la arquitectura de Kafka. En esta figura identificamos dos
roles principales dentro de un sistema Kafka, que son comunes a cualquier sistema de publicación / suscripción.
• Producer: hace uso de una API que permite a la aplicación publicar un stream de registros de uno o variostopics de Kafka.
• Consumer: hace uso de una API que permite a la aplicación suscribirse y procesar los registros provenientes de uno o variostopics de Kafka.
Untopic o “tema” de Kafka es una categoría donde los registros provenientes de un stream de datos son publicados. Todos lostopics de Kafka son multi-suscriptor. Esto significa que un topic puede tener cero, uno, o varios consumidores suscritos al mismo.
Figura 4.6: Arquitectura Apache Kafka [kafka.apache.org]
En este trabajo la función de Kafka es vital, pues se utiliza para procesar en tiempo real todos los Tweets recopilados por el sistema para posteriormente ser almacenados en las respectivas bases de datos. Es decir, que se utiliza Kafka como canal comunicativo entre la fuente de datos y elData Lake.
4.3.3 Bases de datos
En esta sección se incluyen las bases de datos que se han utilizado durante el desarrollo del trabajo para el almacenamiento de datos en el Data Lake.
CAPÍTULO 4. METODOLOGÍA 51
(a) Oracle NoSQL (b) Oracle 12c
Figura 4.7: Bases de datos
4.3.3.1 Oracle NoSql Database
Oracle NoSql Database es una base de datos clave-valor distribuida del tipo NoSQL diseñada por Oracle Corporation. Proporciona semántica trascaccional para la manipulación de datos, escalabilidad horizontal y administración y monitorización sencillas. Además de las características presentadas,
ofrece la posibilidad de modelar los datos como si de una base de datos relacional se tratara o incluso de modelar los datos en formato JSON.
En este trabajo, se utiliza esta base de datos para almacenar los datos minados de Twitter preser-
vando el formato de origen. Esta es una regla vital en la construcción de un Data Lake, donde es una premisa indispensable que los datos no sean modificados en el momento de guardarlos.
4.3.3.2 Oracle 12c Database
Oracle 12c Database es una versión estable y mejorada de la base de datos estándar de Oracle. Es
una base de datos de alto rendimiento y de clase empresarial. Según Oracle, esta es "la primera base de datos diseñada para la nube". Oracle Database 12c también introduce 500 nuevas características a la base de datos, entre las que destacan las bases de datos conectables y la arquitectura multiusuario.
La versión 12.0.1.2 de Oracle Database 12c también incluye la Oracle Database 12c In-Memory, un complemento opcional que proporciona capacidades en memoria. La opción en memoria convierte a Oracle Database 12c en la primera base de datos Oracle en ofrecer análisis en tiempo real.
Esta gran introduccion de mejoras, y sobretodo, la capacidad de análisis de datos en tiempo real
la han convertido en la elección para el desarrollo de este trabajo.