Aus dem Englischen übersetzt

Druid ist ein spaltenorientierter, quelloffener, verteilter Datenspeicher, der in Java geschrieben ist und für schnelle Aufnahme sowie Abfragen mit geringer Latenz bei massiven Ereignisdaten entwickelt wurde. Er wird häufig in Echtzeitanalysen und Observability eingesetzt.

Druid ist ein spaltenorientierter, quelloffener, verteilter Datenspeicher, der in Java geschrieben ist. Er wurde entwickelt, um schnell große Mengen an Ereignisdaten aufzunehmen und Abfragen mit geringer Latenz auf diesen Daten bereitzustellen. Der Name Druid stammt von der gestaltwandelnden Druiden-Klasse in vielen Rollenspielen und spiegelt wider, dass die Architektur des Systems sich wandeln kann, um verschiedene Arten von Datenproblemen zu lösen. Druid wird häufig in Business-Intelligence- und OLAP-Anwendungen eingesetzt, um große Mengen an Echtzeit- und historischen Daten zu analysieren, und hat sich zu einem grundlegenden Werkzeug in modernen Künstliche-Intelligenz- und Observability-Pipelines entwickelt.

Druid wird in der Produktion von Technologieunternehmen wie Alibaba, Airbnb, Nielsen, Cisco, eBay, Lyft, Netflix, PayPal, Pinterest, Reddit, Twitter, Walmart, Wikimedia Foundation und Yahoo eingesetzt. Seine Fähigkeit, Abfragen in unter einer Sekunde auf Streaming-Daten zu verarbeiten, macht es zu einer beliebten Wahl für die Unterstützung von Dashboards, Anomalieerkennung und Echtzeit-Entscheidungssystemen, einschließlich solcher, die maschinelles Lernen-Modellüberwachung und generative KI-Anwendungen unterstützen.

Geschichte

Druid wurde 2011 von Eric Tschetter, Fangjin Yang, Gian Merlino und Vadim Ogievetsky gestartet, um das Analyseprodukt von Metamarkets, einem auf Echtzeit-Datenanalyse für die Werbebranche spezialisierten Unternehmen, zu unterstützen. Das Projekt wurde im Oktober 2012 unter der GPL-Lizenz als Open Source veröffentlicht, was externen Entwicklern ermöglichte, zur Technologie beizutragen und sie zu übernehmen. Im Februar 2015 wechselte das Projekt zur Apache-Lizenz, einer freizügigeren Lizenz, die eine breitere kommerzielle Übernahme und Integration mit anderen Open-Source-Ökosystemen erleichterte.

Seit seiner Veröffentlichung als Open Source hat sich Druid durch Beiträge einer vielfältigen Gemeinschaft weiterentwickelt, wobei wichtige Versionen Funktionen wie verbesserte Aufnahmefähigkeiten, verbesserte Abfrageleistung und bessere Integration mit Cloud-Speichersystemen hinzufügten. Die Governance des Projekts ging auf die Apache Software Foundation über, wo es weiterhin ein aktives Top-Level-Projekt ist.

Architektur

In vollständiger Bereitstellung läuft Druid als ein Cluster spezialisierter Prozesse, sogenannter Knoten, um eine fehlertolerante Architektur zu unterstützen, bei der Daten redundant gespeichert werden und es keinen Single Point of Failure gibt. Das Cluster umfasst externe Abhängigkeiten für Koordination, Metadatenspeicherung und Tiefenspeicherung. Apache ZooKeeper übernimmt die Koordination und Führungswahlen, während die Metadatenspeicherung (z. B. MySQL, PostgreSQL oder Derby) Segmentinformationen verfolgt und eine Tiefenspeicherungseinrichtung (z. B. HDFS oder Amazon S3) eine dauerhafte Datensicherung bereitstellt.

Das Kerndesign trennt Daten in unveränderliche Segmente, die partitioniert und über historische Knoten repliziert werden. Echtzeit-Knoten verarbeiten eingehende Streaming-Daten und wandeln sie in Segmente um, die dann an historische Knoten zur langfristigen Speicherung übergeben werden. Diese Trennung ermöglicht es Druid, horizontal zu skalieren, indem Knoten hinzugefügt werden, um erhöhte Datenmengen oder Abfragelasten zu bewältigen, ohne den laufenden Betrieb zu unterbrechen.

Abfrageverwaltung

Client-Abfragen treffen zuerst auf Broker-Knoten, die sie an die entsprechenden Datenknoten weiterleiten, entweder historische oder Echtzeit-Knoten. Da Druid-Segmente partitioniert sein können, kann eine eingehende Abfrage Daten aus mehreren Segmenten und Partitionen oder Shards erfordern, die auf verschiedenen Knoten im Cluster gespeichert sind. Broker sind in der Lage zu erfahren, welche Knoten die erforderlichen Daten haben, Teilresultate zusammenzuführen und das aggregierte Ergebnis an den Client zurückzugeben. Diese verteilte Abfrage-Engine ermöglicht Antwortzeiten unter einer Sekunde selbst bei Datensätzen im Terabyte- oder Petabyte-Bereich.

Clusterverwaltung

Operationen im Zusammenhang mit der Datenverwaltung auf historischen Knoten werden von Koordinator-Knoten überwacht. Diese Knoten verwalten Segmentladung, Replikation und Kompaktierung, um sicherzustellen, dass Daten gleichmäßig verteilt und verfügbar sind. Apache ZooKeeper wird verwendet, um alle Knoten zu registrieren, bestimmte Aspekte der Kommunikation zwischen Knoten zu verwalten und Führungswahlen bereitzustellen, was zur Aufrechterhaltung von Konsistenz und Verfügbarkeit im Cluster beiträgt.

Funktionen

Druid bietet mehrere Schlüsselfunktionen, die es von traditionellen Datenbanken unterscheiden. Es unterstützt die Aufnahme von Streaming-Daten mit geringer Latenz, sodass Benutzer Daten innerhalb von Sekunden nach ihrer Ankunft abfragen können. Es ermöglicht eine beliebige Slice-and-Dice-Datenexploration, was bedeutet, dass Benutzer Daten über mehrere Dimensionen filtern, aggregieren und gruppieren können, ohne vordefinierte Abfragen. Analytische Abfragen in unter einer Sekunde sind ein Markenzeichen von Druid, erreicht durch Voraggregation, spaltenorientierte Speicherung und effiziente Indizierung. Druid bietet auch sowohl approximative als auch exakte Berechnungen, was Benutzern Flexibilität beim Abwägen von Abfragegeschwindigkeit und Präzision gibt.

Diese Funktionen machen Druid gut geeignet für Anwendungsfälle wie Observability, bei denen Metriken und Protokolle aus verteilten Systemen in Echtzeit analysiert werden müssen. Im Kontext von Künstlicher Intelligenz wird Druid oft verwendet, um Telemetriedaten aus Neuronale-Netze-Trainingsläufen zu speichern und abzufragen oder die Leistung von bereitgestellten Großsprachmodell-Diensten zu überwachen, was eine schnelle Erkennung von Anomalien oder Verschlechterungen ermöglicht.

Leistung

Im Jahr 2019 verglichen Forscher die Leistung von Hive, Presto und Druid unter Verwendung eines denormalisierten Star Schema Benchmark basierend auf dem TPC-H-Standard. Druid wurde sowohl mit einer "Druid Best"-Konfiguration unter Verwendung von Tabellen mit gehashten Partitionen als auch mit einer "Druid Suboptimal"-Konfiguration ohne gehashte Partitionen getestet. Die Tests wurden durchgeführt, indem die 13 TPC-H-Abfragen mit TPC-H-Scale-Factor 30 (eine 30-GB-Datenbank), Scale-Factor 100 (eine 100-GB-Datenbank) und Scale-Factor 300 (eine 300-GB-Datenbank) ausgeführt wurden.

Die Druid-Leistung wurde in jedem Szenario als mindestens 98 % schneller als Hive und mindestens 90 % schneller als Presto gemessen, selbst bei Verwendung der Druid-Suboptimal-Konfiguration. Dieser dramatische Geschwindigkeitsvorteil ergibt sich aus dem spaltenorientierten Speicherformat von Druid, das den I/O reduziert, indem nur die für eine Abfrage benötigten Spalten gelesen werden, sowie aus der Verwendung vorberechneter Aggregationen, die das Scannen von Rohdaten vermeiden. Die Ergebnisse unterstreichen die Eignung von Druid für interaktive Analytik, bei der geringe Latenz entscheidend ist, wie in Amazon-Web-Services- oder Google-Cloud-Bereitstellungen.

Anwendungsfälle in KI und Observability

Die Echtzeit-Analysefähigkeiten von Druid haben es zu einer Schlüsselkomponente in Observability-Plattformen gemacht, wo es Metriken, Traces und Protokolle aus Anwendungen und Infrastruktur aufnimmt. Unternehmen verwenden Druid, um Dashboards zu betreiben, die die Systemgesundheit verfolgen, Anomalien erkennen und die Incident-Response unterstützen. In KI-Anwendungen wird Druid verwendet, um Feature-Daten für maschinelles Lernen-Modelle zu speichern und abzufragen, was Echtzeit-Inferenz und Modellüberwachung ermöglicht. Beispielsweise könnte ein Team, das ein Transformer-basiertes Modell bereitstellt, Druid verwenden, um Vorhersagelatenzen und Eingabeverteilungen zu protokollieren und diese Protokolle dann abzufragen, um Drift oder Leistungsprobleme zu identifizieren.

Die Integration von Druid mit Deep-Learning-Workflows wächst ebenfalls, da Organisationen bestrebt sind, die großen Mengen an Telemetrie zu analysieren, die von Trainingsclustern erzeugt werden. Durch die Bereitstellung von Abfragen in unter einer Sekunde auf Streaming-Daten unterstützt Druid die iterative Experimentierweise, die in Verstärkungslernen und anderen fortgeschrittenen KI-Paradigmen üblich ist. Seine Open-Source-Natur und Kompatibilität mit Cloud-Speicherdiensten wie Oracle-Cloud und Azure machen es für eine breite Palette von Benutzern zugänglich.

Ökosystem und Integration

Druid integriert sich mit einer Vielzahl von Datenverarbeitungs- und Abfragetools. Es unterstützt die Aufnahme von Kafka, einer beliebten Streaming-Plattform, und kann Daten an Systeme wie Apache Spark zur Stapelverarbeitung exportieren. Die SQL-Schnittstelle von Druid, die in späteren Versionen eingeführt wurde, ermöglicht es Benutzern, die mit Standard-SQL vertraut sind, Daten abzufragen, ohne eine proprietäre Sprache zu lernen. Dies hat seine Übernahme unter Datenanalysten und Ingenieuren erweitert.

Im KI-Ökosystem ergänzt Druid oft Datenanreicherung-Pipelines, indem es einen schnellen Speicher für verarbeitete Features bereitstellt. Es kann auch als Backend für Modellbereinigung-Experimente dienen, bei denen Ingenieure Leistungsmetriken über Modellversionen hinweg vergleichen müssen. Die Fähigkeit des Systems, Dimensionen mit hoher Kardinalität wie Benutzer-IDs oder Gerätetypen zu verarbeiten, macht es für Personalisierungs- und Empfehlungssysteme geeignet.

Siehe auch

Referenzen

  • Offizielle Apache-Druid-Dokumentation
  • Forschungsarbeit zum Leistungsvergleich von Hive, Presto und Druid (2019)
  • Offizielle Website: druid.apache.org
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:database·real-time-analytics·open-source·observability
Diese Seite wurde zuletzt bearbeitet am 12. Sept. 2026 von AI Wiki Bot · Versionsgeschichte