Motor consultas analíticas políglota

  1. KRANAS, PAVLOS
Dirigida por:
  1. Marta Patiño Martínez Director/a
  2. Ricardo Jiménez-Peris Codirector/a

Universidad de defensa: Universidad Politécnica de Madrid

Fecha de defensa: 26 de noviembre de 2021

Tribunal:
  1. Luis Mengual Galán Presidente/a
  2. Ainhoa Azqueta Alzúaz Secretario/a
  3. Panagiotis Tsanakas Vocal
  4. Patricio José Martínez García Vocal
  5. Dimosthenis Kyriazis Vocal

Tipo: Tesis

Resumen

Hoy en día las empresas manejan gran cantidad de datos provenientes de diversas fuentes de datos como por ejemplo la página web de la empresa, las distintas redes sociales o los propios sistemas de información de la empresa. En la actualidad, no hay un sistema de gestión de datos que sea capaz de almacenar y procesar los distintos tipos de datos que estas fuentes generan. Esto hace que, por ejemplo, una entidad bancaria, emplee una base de datos relacional para almacenar los datos de las cuentas de sus clientes con el fin de garantizar transaccionalidad y coherencia de los datos. Esta organización también puede tener la necesidad de usar una base de datos NoSQL para almacenar y procesar la información sobre opiniones u otros hechos relevantes para la empresa que se producen en redes tipo Twitter. Las bases de datos o gestores de datos NoSQL permiten almacenar información con modelos más flexibles que el relacional y además suelen escalar más que las bases de datos relacionales. Estas propiedades se obtienen a costa de sacrificar la transaccionalidad en el acceso a los datos. Desde hace varios años ha habido una explosión de distintos tipos de gestores de datos NoSQL (clave-valor, orientado a documentos, grafos…), los cuales no disponen de un lenguaje de consulta estándar como las bases de datos relacionales, sino que cada gestor tiene su propio lenguaje de consulta. Este hecho, añadido a la gran cantidad de datos que se genera cada día, hace que el procesamiento de datos en las empresas se cada vez más complejo. La persistencia políglota surge como solución a este problema proporcionando un motor de consultas capaz de interaccionar con distintos tipos de gestores de datos, permitiendo incluso combinar los resultados de consultas entre los distintos tipos de gestores de datos, por ejemplo, permitiendo la realización de operaciones tipo join. El lenguaje ofrecido por el motor de consultas políglota debería: (i) preservar la expresividad nativa del lenguaje de consulta de cada gestor de datos con el fin de mantener la expresividad del mismo (ii) Aprovechar el paralelismo inherente a la disponibilidad de varios gestores de datos para realizar el procesamiento en paralelo de las consultas y de esta forma ser capaz de trabajar con grandes cantidades de información. Los objetivos principales de esta tesis se centran en ambos puntos desarrollando un gestor de datos políglota que proporciona el lenguaje de consultas CloudMdsQL para expresar consultas nativas combinando con instrucciones SQL. El gestor políglota se ha implementado en el motor de consultas distribuido de LeanXcale, una base de datos relacional altamente escalable. El gestor políglota paraleliza las consultas teniendo en cuenta que cada gestor de datos puede ser, a su vez, un gestor de datos distribuido. Además, el gestor políglota implementa técnicas de optimización, como por ejemplo el bind join, que puede mejorar el rendimiento de las operaciones de unión (join) selectivas. El rendimiento del motor de consultas poliglota ha sido evaluado emplean do benchmarks industriales (TPC-H) en una variedad de escenarios. Otro de los objetivos de esta tesis ha sido el diseño de una arquitectura novedosa que permita realizar analíticas tanto sobre datos históricos como sobre datos obtenidos en tiempo real sin tener que esperar a realizar procesos tipo ETL. La arquitectura presentada en esta tesis permite procesar consultas federadas en un conjunto de datos actual e histórico manteniendo la coherencia de los datos incluso mientras que se mueven los datos al gestor de datos para el procesamiento analítico.