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.

Schnelle Fakten Basisdaten ...

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
Thumb

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.

Weitere Informationen Skalierungsfaktor, Hive ...

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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads