Top-Fragen
Zeitleiste
Chat
Kontext
Apache Druid
Software Aus Wikipedia, der freien Enzyklopädie
Remove ads
Druid ist ein freies spaltenorientiertes verteiltes Datenbankmanagementsystem der Apache Software Foundation. Druid wurde entwickelt, um schnell große Mengen an Ereignisdaten einfügen und Abfragen mit geringer Latenz darauf ausführen zu können.[1] Der Name Druid stammt von der gestaltwandelnden Druiden-Charakterklasse, die aus vielen Rollenspielen bekannt ist. Er soll aussagen, dass sich die Architecture des Systems verändern kann, um verschiedene Arten von Datenproblemen zu lösen.
Druid wird häufig in Business-Intelligence-OLAP-Anwendungen verwendet, um große Mengen an Echtzeitdaten und historischen Daten zu analysieren.[2] Druid wird produktiv von Technologieunternehmen wie Alibaba,[2] Airbnb,[2] Nielsen,[2] Cisco,[3][2] eBay,[4] Lyft,[5] Netflix,[6] PayPal,[2] Pinterest,[7] Reddit,[8] Twitter,[9] Walmart,[10] Wikimedia Foundation[11] und Yahoo[12] eingesetzt.
Remove ads
Geschichte
Die Entwicklung von Druid begann 2011 von Eric Tschetter, Fangjin Yang, Gian Merlino und Vadim Ogievetsky[13] als Basis für die Analyseprodukte von Metamarkets. Im Oktober 2012 wurde der Quellcode des Projekt unter GPL-Lizenz veröffentlicht[14][15][16], im Februar 2015 wurde auf die Apache-Lizenz umgestellt.[17][18]
Architektur
Zusammenfassung
Kontext

In voller Ausbaustufe läuft Druid als Cluster spezialisierter Prozesse (sogenannten „nodes“) um eine hochverfügbare Architektur zu realisieren.[19] where data is stored redundantly, and there is no single point of failure.[20] Der Cluster beinhaltet externe Komponenten für die Koordination (Apache ZooKeeper), das Speichern von Metadaten (z. B. MySQL, PostgreSQL oder Derby) und die sogenannte „Deep Storage“ (z. B. HDFS oder Amazon S3) für permanente Daten-Backups.
Abfrage-Management
Abfragen werden von den Broker-Knoten entgegengenommen, die sie an die zuständigen Daten-Knoten weiterleiten (entweder historisch oder Echtzeit). Weil Druid-Segmente partitioniert sind, kann eine Abfrage Daten von verschiedener Segmente und Partitionen (oder Shards) benötigen, die auf verschiedenen Knoten des Clusters gespeichert sind. Broker können lernen, welche Knoten die benötigten Daten enthalten, und sie können Teilergebnisse zusammenführen, bevor das aggregierte Ergebnis zurückgegeben wird.
Cluster-Management
Operationen zum Daten-Management von historischen Knoten werden von Koordinator-Knoten überwacht. Apache ZooKeeper wird benutzt, um alle Knoten zu registrieren, einige Aspekte der Kommunikation zwischen den Knoten zu verwalten und Leader-Election durchzuführen.
Remove ads
Eigenschaften
- (Streaming-)Datenaufnahme mit niedriger Latenz
- Beliebige Slice-and-Dice Datenexploration
- Analytische Abfragen im Sub-Sekunden-Bereich
- Angenäherte und exakte Berechnungen
Geschwindigkeit
Im Jahr 2019 verglichen Forscher die Geschwindigkeit von Hive, Presto und Druid mit einem denormalisierten Sternschema-Benchmark, basierend auf dem TPC-H-Standard. Druid wurde sowohl mit der „Druid Best“-Konfiguration, die Tabellen mit Hashpartitionierung verwendet, als auch mit der „Druid Suboptimal“-Konfiguration getestet, die ohne Hashpartitionierung auskommt.[21]
Für die Tests wurden die 13 TPC-H-Abfragen mit TPC-H-Skalierungsfaktor 30 (einer 30-GB-Datenbank), Skalierungsfaktor 100 (einer 100-GB-Datenbank) und Skalierungsfaktor 300 (einer 300-GB-Datenbank) ausgeführt.
Die gemessene Geschwindigkeit von Druid übertraf in jedem Szenario die von Hive um mindestens 98 % und die von Presto um mindestens 90 %, selbst wenn die „Suboptimal“-Konfiguration genutzt wurde.
Remove ads
Einzelnachweise
Weblinks
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads