Caracterización de tecnologías de procesamiento de datos en streaming sobre una arquitectura orientada al dato
Characterization of stream processing technologies on a data-oriented architecture
Author
Algorri Álvarez, Miguel
Date
2018-10Director/es
Derechos
Atribución-NoComercial-SinDerivadas 3.0 España
Palabras clave
Flujos de datos continuos
Procesado en tiempo real
Bases de datos en memoria
Bus de datos
Big data
Data streaming
Real time processing
In-memory databases
Data pipelines
Abstract:
RESUMEN: La arquitectura orientada al dato surge como marco arquitectónico para ingerir, procesar y generar valor de las ingentes cantidades datos de distinta tipología que llegan al sistema a gran velocidad. La reciente definición de este marco y de tecnologías para el desarrollo de aplicaciones (microservicios) sobre él hacen necesario un estudio que caracterice a las mismas para los casos de uso más habituales. Este trabajo explora las diferentes tecnologías existentes y compara las prestaciones y el rendimiento de un subconjunto de ellas mediante el uso de benchmarks, utilizando tanto datos simulados como procedentes del mundo real. En particular analiza tres procesadores de streaming, Spark, Storm y S-Store; un gestor de colas, Kafka y, cuatro sistemas de almacenamiento: Redis, Cassandra, MemSQL y S-Store. Estas pruebas de rendimiento han sido ejecutadas en tres entornos diferentes: un servidor on-premise, un clúster de supercomputación y en la cloud. Del análisis de los resultados, se ofrece la caracterización que permitirá establecer criterios de diseño para la implementación de flujos de datos que respondan a los siguientes casos de uso: el procesamiento de lecturas horarias de contadores eléctricos, el análisis de clicks en anuncios y el cálculo de una tabla clasificatoria en una votación en tiempo real.
ABSTRACT: The data-oriented architecture was created as an architectural framework to ingest, process and generate value from huge amounts of different types of data that are inserted to the system at high throughputs. The recent appearance of this framework and technologies to develop applications (microservices) based on it, makes a study that characterizes them for the most common use cases necessary. This work explores these technologies and compares the features and performance of a subset by means of the execution of several benchmarks. In particular, three streaming processors are analyzed: Spark, Storm and S-Store; a message broker: Kafka and four storage engines: Redis, Cassandra, MemSQL and S-Store. These have been tested in three different environments: an on-premise server, a supercomputing cluster and in the cloud. The characterization of these tools is offered from the analysis of the results achieved. These will help us to establish different design criteria to implement data pipelines that solve the following use cases: processing hourly readings from electric counters, analyzing clicks on ads and calculating a chart leaderboard based on real time voting.