Druid es un data store open-source Java pensado para soportar queries OLAP sobre eventos (despliegues de trillones de eventos y PB de datos), el almacenamiento se hace sobre S3 o HDFS
Druid soporta ingesta de datos en real time, exploración de datos flexible y agregación. El lenguaje de consultas de Druid es JSON (estilo ES) pero Apache Calcite tiene un Adapter Druid para consultar en SQL:
Druid está inspirado en data stores analíticas como Google’s BigQuery/Dremel, Google’s PowerDrill y en infraestructuras de búsqueda.
Druid indexa los datos para crear vistas y almacena los datos en un format columnar optimizado para agregaciones y filtros.
Un cluster Druid se compone de diversos tipos de nodos, cada uno de ellos diseñado para desarrollar un conjunto de cosas, estos nodos no requieren estar en HW individual.
Sus características principales son:
- Queries OLAP por debajo de Segundo: Druid tiene un modelo columnar e índicex invertidos lo que permite realizer filtrado multi-dimensional y escaneo en milisegundos.
- Ingesta en Streaming en Real-time: Las bases de datos analíticas típicas ingestan vía Batch, Druid hace la ingesta sin bloqueo y permite la ingesta de forma simultánea a las consultas.
- Aplicaciones Analítics: las características de Druid como el multi-tenancy hace que se puedan desarrollar aplicaciones analíticas para miles de usuarios concurrentes
- Alta Disponibilidad y Escalabilidad por su arquitectura.
Druid es adecuado cuando existen requisitos como:
- Aplicaciones que requieren agregaciones rápidas y Analítica exploratoria
- Análisis de los datos según llegan (en tiempo real)
- Gran volumen de datos
- Data Store sin Single Point of Failure
Seguro que tras leer esto os preguntáis cómo Druid se compara con un Cassandra, con un ES, con un Impala, aquí las respuestas:
- Druid vs Elasticsearch
- Druid vs Key/Value Stores (HBase/Cassandra)
- Druid vs Redshift
- Druid vs Spark
- Druid vs SQL-on-Hadoop (Hive/Impala/Drill/Spark SQL/Presto)
Dentro de las referencias de Druid se habla de:
- 3+ trillion events/month
- 3M+ events/sec through Druid’s real-time ingestion
- 100+ PB of raw data
- 50+ trillion events
- Thousands of queries per second for applications used by thousands of users
- Tens of thousands of cores
[…] Fue allá por 2016 cuando conocía Druid (ver post) […]