Apache Druid

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Apache Druid

Informations
Dernière version 0.12.1 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/apache/druidVoir et modifier les données sur Wikidata
Écrit en JavaVoir et modifier les données sur Wikidata
Type Système de gestion de base de donnéesVoir et modifier les données sur Wikidata
Licence Apache-2.0Voir et modifier les données sur Wikidata
Site web druid.ioVoir et modifier les données sur Wikidata

Druid est une base de données distribuées, orientée colonnes et open source, écrite en Java. Druid est conçu pour ingérer rapidement d’énormes quantités de données d’événement et renvoyer les données avec un faible temps de latence[2]. Le nom Druid fait référence aux druides de nombreux jeux de rôle, afin l'aptitude de l'architecture du système à se métamorphoser pour résoudre différents types de problèmes de données.

Druid est couramment utilisé dans les applications d'informatique décisionnelle et de traitement analytique en ligne pour analyser de gros volumes de données historiques et en temps réel[3]. Druid est utilisé en production par les sociétés technologiques telles que Alibaba, Airbnb, Cisco[4], eBay[5], Netflix[6], PayPal, Yahoo[7] et Wikimedia Foundation[8].

Historique[modifier | modifier le code]

Druid a été lancé en 2011 pour alimenter le produit d'analyse de la société Metamarkets. Le projet a été open source sous licence GPL en octobre 2012[9],[10] et est passé à une licence Apache en février 2015[11],[12].

Au fil du temps, un certain nombre d’organisations et de sociétés ont intégré Druid dans leur back office[3] et des committers de nombreuses organisations différentes ont été ajoutés[13].

En octobre 2015, la société commerciale Imply a été lancée pour fournir un produit d'entreprise construit autour de Druid[14].

En octobre 2018, Spicule Ltd a publié une version prise en charge de Druid sur la plate-forme Juju de Canonical[15].

Architecture[modifier | modifier le code]

Architecture of the Druid cluster

Entièrement déployé, Druid s'exécute en tant que cluster de processus spécialisés (appelés nœuds dans Druid) afin de prendre en charge une architecture tolérante aux pannes[16] les données sont stockées de manière redondante et en l'absence de point de défaillance unique[17] Le cluster inclut des dépendances externes pour la coordination (Apache ZooKeeper), le stockage de métadonnées (par exemple MySQL, PostgreSQL ou Derby) et une installation de stockage profond (par exemple HDFS ou Amazon S3) pour la sauvegarde permanente des données.

Gestion des requêtes[modifier | modifier le code]

Les requêtes du client sont d’abord envoyées aux nœuds broker, qui les transfèrent ensuite aux nœuds appropriés (historiques ou en temps réel). Comme les segments Druid peuvent être partitionnés, une requête entrante peut nécessiter des données provenant de plusieurs segments et partitions stockés sur différents nœuds du cluster. Les brokers peuvent savoir quels nœuds ont les données requises et fusionner ensuite des résultats partiels avant de renvoyer le résultat agrégé.

Gestion de cluster[modifier | modifier le code]

Les opérations relatives à la gestion des données dans les nœuds historiques sont supervisées par des nœuds de coordination. Apache ZooKeeper est utilisé pour enregistrer tous les nœuds, gérer certains aspects des communications entre nœuds et organiser des élections d'un leader.

Caractéristiques[modifier | modifier le code]

  • Ingestion de données à faible latence (streaming)
  • Exploration de données arbitraire sur les tranches
  • Requêtes analytiques en moins d'une seconde
  • Calculs approximatifs et exacts

Articles connexes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Release 0.12.1 » (consulté le 8 juin 2018)
  2. (en) Nicole Hemsoth, « Druid Summons Strength in Real-Time » [« Druid appelle la force en temps-réel »], sur Datanami, (consulté le 23 mai 2019).
  3. a et b (en) druid, « Druid | Powered by Druid », druid.io (consulté le 29 juin 2016). Erreur de référence : Balise <ref> non valide ; le nom « powered » est défini plusieurs fois avec des contenus différents
  4. (en) Butler, « Under the hood of Cisco’s Tetration Analytics platform » (consulté en 23 mai2019).
  5. (en) « Druid at Pulsar - ebay的专栏 - 博客频道 - CSDN.NET », blog.csdn.net (consulté en 23 mai2019).
  6. (en) « The Netflix Tech Blog: Announcing Suro: Backbone of Netflix's Data Pipeline », techblog.netflix.com (consulté le 23 mai 2019).
  7. (en) « Complementing Hadoop at Yahoo: Interactive Analytics with Druid » (consulté le 23 mai 2019).
  8. (en) Andrew Otto et Fangjin Yang, « Analytics at Wikipedia: Big data conference: Strata Data Conference, September 25 - 28, 2017, New York, NY » (consulté le 23 mai 2019).
  9. Tschetter, Eric. "Présentation du druide" , Druid.io , 24 octobre 2012.
  10. Higginbotham, Stacey. "Metamarkets open sources Druid, sa base de données en mémoire" , GigaOM , 24 octobre 2012.
  11. Harris, « The Druid real-time database moves to an Apache license », (consulté le 4 août 2015).
  12. « Druid Gets Open Source-ier Under the Apache License » (consulté le 4 août 2015).
  13. druid, « Druid | Druid Community », druid.io (consulté le 23 juin 2016).
  14. Novet, Jordanie. "Imply lance 2 M $ pour commercialiser le magasin de données open source Druid" , VentureBeat , 19 octobre 2015.
  15. Downie, Stephen. "L'entreprise de données Spicule met la puissance du magasin d'analyse utilisé par Netflix entre les mains des clients" , EIN Presswire , 7 novembre 2018.
  16. Documentation du projet druide.
  17. Yang, Fangjin; Tschetter, Eric; Léauté, Xavier; Ray, Nelson; Merlino, Gian; Ganguli, Deep. "Druide: un magasin de données analytiques en temps réel" , Metamarkets , extrait le 6 février 2014.