Ausführliche Erklärung des Apache-Druiden in einem Artikel

王林
Freigeben: 2021-02-18 10:20:40
nach vorne
5789 Leute haben es durchsucht

Ausführliche Erklärung des Apache-Druiden in einem Artikel

Vorwort:

Was ist Apache-Druide?

Es handelt sich um eine analytische Datenplattform, die die Merkmale einer Zeitreihendatenbank, eines Data Warehouse und eines Volltextabrufsystems integriert.

Dieser Artikel vermittelt Ihnen einen kurzen Überblick über die Eigenschaften, Nutzungsszenarien, technischen Funktionen und die Architektur von Druiden. Dies wird uns bei der Auswahl einer Datenspeicherlösung helfen und ein tiefgreifendes Verständnis der Druidenspeicherung und der Zeitreihenspeicherung erlangen.

Übersicht

Eine moderne Cloud-native, Streaming-native, analytische Datenbank

Druid ist für schnelle Abfragen und schnelle Datenerfassungs-Workflows konzipiert. Die Stärke von Druid liegt in seiner leistungsstarken Benutzeroberfläche, den zur Laufzeit ausführbaren Abfragen und der leistungsstarken gleichzeitigen Verarbeitung. Druid kann als Open-Source-Alternative für Data Warehouses angesehen werden, die vielfältige Benutzerszenarien abdeckt.

Einfache Integration in bestehende Datenpipelines

Druid kann Daten von Nachrichtenbussen (wie Kafka, Amazon Kinesis) streamen oder Dateien stapelweise aus Data Lakes (wie HDFS, Amazon S3 und anderen ähnlichen Datenquellen) laden.

100x schnellere Leistung als herkömmliche Lösungen

Druids Benchmark-Leistungstests für Datenaufnahme und Datenabfrage übertreffen herkömmliche Lösungen deutlich.

Druids Architektur kombiniert die besten Funktionen von Data Warehouses, Zeitreihendatenbanken und Abrufsystemen.

Neue Workflows freischalten

Druid schaltet neue Abfragemethoden und Workflows für Clickstream, APM (Application Performance Management System), Supply Chain (Lieferkette), Netzwerktelemetrie, digitales Marketing und andere ereignisgesteuerte Szenarien frei. Druid ist für die schnelle Ad-hoc-Abfrage von Echtzeit- und historischen Daten konzipiert.

Bereitgestellt auf AWS/GCP/Azure, Hybrid Cloud, K8s und gemieteten Servern

Druid kann in jeder *NIX-Umgebung bereitgestellt werden. Egal, ob es sich um eine On-Premise-Umgebung oder eine Cloud-Umgebung handelt. Die Bereitstellung von Druid ist sehr einfach: Skalieren Sie nach oben oder unten, indem Sie Dienste hinzufügen oder entfernen.

Nutzungsszenarien

Apache Druid eignet sich für Szenarien mit hohen Anforderungen an Echtzeit-Datenextraktion, Hochleistungsabfrage und hohe Verfügbarkeit. Daher wird Druid häufig als Analysesystem mit einer umfangreichen GUI oder als Backend für eine API mit hoher Parallelität verwendet, die eine schnelle Aggregation erfordert. Druid eignet sich besser für ereignisorientierte Daten.

Häufige Nutzungsszenarien:

Click-Stream-Analyse (Web- und Mobilanalyse)

Risikokontrollanalyse

Netzwerktelemetrieanalyse (Netzwerkleistungsüberwachung)

Speicherung von Serverindikatoren

Lieferkettenanalyse (Fertigungsindikatoren)

Anwendungsleistung Indikatoren

Business Intelligence/Echtzeit-Online-Analysesystem OLAP

Diese Nutzungsszenarien werden im Folgenden im Detail analysiert:

Benutzeraktivitäten und -verhalten

Druid wird häufig in Click-Stream-, Besuchs-Stream- und Aktivitäts-Stream-Daten verwendet. Spezifische Szenarien umfassen: Messung des Benutzerengagements, Verfolgung von A/B-Testdaten für Produkteinführungen und Verständnis von Benutzernutzungsmustern. Druid kann Benutzerindikatoren, wie z. B. eindeutige Zählindikatoren, genau und annähernd berechnen. Dies bedeutet, dass Metriken wie die täglich aktiven Benutzer in Sekundenschnelle auf einen ungefähren Wert (mit einer durchschnittlichen Genauigkeit von 98 %) berechnet werden können, um Gesamttrends zu erkennen, oder dass sie präzise berechnet werden können, um sie Stakeholdern zu präsentieren. Mit Druid kann eine „Trichteranalyse“ durchgeführt werden, um zu messen, wie viele Benutzer eine bestimmte Aktion durchgeführt und keine andere Aktion ausgeführt haben. Dies ist nützlich für Produkte, die Benutzerregistrierungen verfolgen.

Netzwerkfluss

Druid wird häufig zum Sammeln und Analysieren von Netzwerkflussdaten verwendet. Druid wird verwendet, um Streaming-Daten segmentiert und mit beliebigen Attributen kombiniert zu verwalten. Druid ist in der Lage, große Mengen an Netzwerkflussdatensätzen zu extrahieren und Dutzende von Attributen zum Zeitpunkt der Abfrage schnell zu kombinieren und zu sortieren, was die Netzwerkflussanalyse erleichtert. Zu diesen Attributen gehören Kernattribute wie IP- und Portnummern sowie zusätzliche erweiterte Attribute wie Standort, Dienst, Anwendung, Gerät und ASN. Druid ist in der Lage, nicht feste Schemata zu verarbeiten, was bedeutet, dass Sie beliebige Attribute hinzufügen können.

Digitales Marketing

Druid wird häufig zum Speichern und Abfragen von Online-Werbedaten verwendet. Diese Daten stammen in der Regel von Werbedienstleistern und sind von entscheidender Bedeutung, um die Leistung von Werbekampagnen, die Klickpenetrationsrate, die Konversionsrate (Verbrauchsrate) und andere Indikatoren zu messen und zu verstehen.

Druid wurde ursprünglich als leistungsstarke benutzerorientierte Analyseanwendung für Werbedaten entwickelt. In Bezug auf die Speicherung von Werbedaten verfügt Druid bereits über umfangreiche Produktionspraxis, und eine große Anzahl von Benutzern auf der ganzen Welt hat Daten auf PB-Ebene auf Tausenden von Servern gespeichert.

Application Performance Management

Druid wird häufig verwendet, um von Anwendungen generierte Betriebsdaten zu verfolgen. Ähnlich wie bei Nutzungsszenarien für Benutzeraktivitäten können sich diese Daten darauf beziehen, wie Benutzer mit der Anwendung interagieren, und es kann sich um Indikatordaten handeln, die von der Anwendung selbst gemeldet werden. Mit Druid können Sie einen Drilldown durchführen, um die Leistung verschiedener Komponenten einer Anwendung zu ermitteln, Engpässe zu lokalisieren und Probleme zu identifizieren.

Im Gegensatz zu vielen herkömmlichen Lösungen zeichnet sich Druid durch eine geringere Speicherkapazität, eine geringere Komplexität und einen höheren Datendurchsatz aus. Es kann Anwendungsereignisse auf Tausenden von Eigenschaften schnell analysieren und komplexe Last-, Leistungs- und Nutzungsmetriken berechnen. Beispielsweise basiert ein API-Endpunkt auf einer Abfragelatenz von 95 %. Wir können Daten nach beliebigen temporären Attributen organisieren und segmentieren, z. B. Daten nach Tag segmentieren, z. B. Statistiken nach Benutzerporträts, z. B. Statistiken nach Standort des Rechenzentrums.

IoT- und Gerätemetriken

Driud kann als Zeitreihendatenbanklösung zum Speichern von Indikatordaten von Verarbeitungsservern und -geräten verwendet werden. Sammeln Sie von Maschinen generierte Echtzeitdaten und führen Sie schnelle Ad-hoc-Analysen durch, um die Leistung zu messen, Hardwareressourcen zu optimieren und Probleme zu lokalisieren.

Im Gegensatz zu vielen herkömmlichen Zeitreihendatenbanken ist Druid im Wesentlichen eine Analyse-Engine. Druid kombiniert die Konzepte einer Zeitreihendatenbank, einer Spaltenanalysedatenbank und eines Abrufsystems. Es unterstützt zeitbasierte Partitionierung, Spaltenspeicherung und Suchindizierung in einem einzigen System. Dies bedeutet, dass zeitbasierte Abfragen, numerische Aggregationen und Abruffilterabfragen extrem schnell sind.

Sie können Millionen einzigartiger Dimensionswerte in Ihre Metriken einbeziehen und Gruppen und Filter nach jeder Dimension frei kombinieren (Dimensionen in Druid ähneln Tags in Zeitreihendatenbanken). Sie können eine große Anzahl komplexer Metriken basierend auf Tag-Gruppen und Rängen berechnen. Und Ihre Suche und Filterung nach Tags erfolgt schneller als bei herkömmlichen Zeitreihendatenbanken.

OLAP und Business Intelligence

Druid wird häufig in Business-Intelligence-Szenarien verwendet. Das Unternehmen setzt Druid ein, um Abfragen zu beschleunigen und Anwendungen zu verbessern. Im Gegensatz zu Hadoop-basierten SQL-Engines (wie Presto oder Hive) ist Druid für hohe Parallelität und Abfragen in Sekundenbruchteilen konzipiert und verbessert interaktive Datenabfragen über die Benutzeroberfläche. Dadurch eignet sich Druid besser für die Analyse echter visueller Interaktionen.

Technologie

Apache Druid ist eine verteilte Open-Source-Datenspeicher-Engine. Das Kerndesign von Druid umfasst Konzepte aus OLAP-/Analysedatenbanken, Zeitreihendatenbanken und Suchsystemen, um ein einheitliches System zu schaffen, das für eine Vielzahl von Anwendungsfällen geeignet ist. Druid integriert die Hauptfunktionen dieser drei Systeme in die Aufnahmeschicht (Datenaufnahmeschicht), das Speicherformat (Speicherformatierungsschicht), die Abfrageschicht (Abfrageschicht) und die Kernarchitektur (Kernarchitektur) von Druid.

Ausführliche Erklärung des Apache-Druiden in einem Artikel

Zu den Hauptfunktionen von Druid gehören:

Spaltenspeicher

Druid speichert und komprimiert jede Datenspalte einzeln. Und bei der Abfrage werden nur die spezifischen Daten abgefragt, die abgefragt werden müssen, und schnelles Scannen, Ranking und GroupBy werden unterstützt.

Nativer Suchindex

Druid erstellt einen invertierten Index für Zeichenfolgenwerte, um eine schnelle Suche und Filterung von Daten zu erreichen.

Streaming und Batch-Datenaufnahme

Out-of-the-box Apache Kafka, HDFS, AWS S3-Anschlüsse, Streaming-Prozessoren.

Flexibles Datenschema

Druid passt sich elegant an sich ändernde Datenschemata und verschachtelte Datentypen an.

Zeitbasierte optimierte Partitionierung

Druid partitioniert Daten intelligent nach Zeit. Daher sind zeitbasierte Druid-Abfragen deutlich schneller als herkömmliche Datenbanken.

Unterstützt SQL-Anweisungen

Zusätzlich zu nativen JSON-basierten Abfragen unterstützt Druid auch SQL basierend auf HTTP und JDBC.

Horizontale Skalierbarkeit

Datenaufnahmerate von einer Million/Sekunde, massiver Datenspeicher und Abfragen in weniger als einer Sekunde.

Einfach zu bedienen und zu warten

Die Kapazität kann durch Hinzufügen oder Entfernen von Servern erweitert und reduziert werden. Druid unterstützt automatisches Rebalancing und Failover.

Datenaufnahme

Druid unterstützt sowohl Streaming als auch Batch-Datenaufnahme. Druid stellt normalerweise über einen Nachrichtenbus wie Kafka (Laden von Streaming-Daten) oder über ein verteiltes Dateisystem wie HDFS (Laden von Batch-Daten) eine Verbindung zu Rohdatenquellen her.

Druid speichert Originaldaten in Datenknoten in Form von Segmenten durch Indexierungsverarbeitung. Segmente sind eine abfrageoptimierte Datenstruktur.

Ausführliche Erklärung des Apache-Druiden in einem Artikel

Datenspeicherung

Wie die meisten analytischen Datenbanken verwendet Druid eine spaltenbasierte Speicherung. Abhängig vom Datentyp der verschiedenen Spalten (Zeichenfolge, Zahl usw.) verwendet Druid unterschiedliche Komprimierungs- und Kodierungsmethoden. Druid erstellt auch verschiedene Arten von Indizes für verschiedene Spaltentypen.

Ähnlich wie ein Retrieval-System erstellt Druid einen invertierten Index für String-Spalten, um eine schnellere Suche und Filterung zu erreichen. Ähnlich einer Zeitreihendatenbank partitioniert Druid Daten intelligent nach Zeit, um schnellere zeitbasierte Abfragen zu ermöglichen.

Im Gegensatz zu den meisten herkömmlichen Systemen kann Druid Daten vor der Datenaufnahme vorab aggregieren. Dieser Vorgang vor der Aggregation wird als Rollup bezeichnet, wodurch Speicherkosten erheblich eingespart werden können.

Ausführliche Erklärung des Apache-Druiden in einem Artikel

Query

Druid unterstützt sowohl JSON-over-HTTP- als auch SQL-Abfragemethoden. Zusätzlich zu den Standard-SQL-Operationen unterstützt Druid auch eine große Anzahl einzigartiger Operationen. Mit der von Druid bereitgestellten Algorithmensuite können schnell Zähl-, Rangfolge- und Quantilberechnungen durchgeführt werden.

Ausführliche Erklärung des Apache-Druiden in einem Artikel

Architektur

Druid ist eine Microservice-Architektur, die als in mehrere Services zerlegte Datenbank verstanden werden kann. Jeder der Kerndienste von Druid (Aufnahme, Abfrage und Koordination) kann einzeln oder gemeinsam auf Standardhardware bereitgestellt werden.

Druid benennt jeden Dienst eindeutig, um sicherzustellen, dass das Betriebs- und Wartungspersonal die Parameter des entsprechenden Dienstes entsprechend den Nutzungs- und Lastbedingungen anpassen kann. Wenn es beispielsweise die Auslastung erfordert, kann das Betriebspersonal mehr Ressourcen für den Datenaufnahmedienst bereitstellen und die Ressourcen für den Datenabfragedienst reduzieren.

Druid kann unabhängig ausfallen, ohne den Betrieb anderer Dienste zu beeinträchtigen.

Ausführliche Erklärung des Apache-Druiden in einem Artikel

Betrieb und Wartung

Drui ist als robustes System konzipiert, das 7*24 Stunden laufen muss. Druid verfügt über die folgenden Funktionen, um einen langfristigen Betrieb zu gewährleisten und sicherzustellen, dass kein Datenverlust auftritt.

Datenkopien

Druid erstellt mehrere Datenkopien basierend auf der konfigurierten Anzahl von Kopien, sodass ein einzelner Maschinenausfall keine Auswirkungen auf Druid-Abfragen hat.

Unabhängige Dienste

Druid benennt jeden Hauptdienst klar und jeder Dienst kann je nach Nutzung entsprechend angepasst werden. Dienste können unabhängig voneinander ausfallen, ohne den normalen Betrieb anderer Dienste zu beeinträchtigen. Wenn beispielsweise der Datenaufnahmedienst ausfällt, werden keine neuen Daten in das System geladen, bestehende Daten können jedoch weiterhin abgefragt werden.

Automatische Datensicherung

Druid sichert automatisch alle indizierten Daten in einem Dateisystem, bei dem es sich um ein verteiltes Dateisystem wie HDFS handeln kann. Sie können alle Ihre Druid-Cluster-Daten verlieren und schnell von den Sicherungsdaten neu laden.

Rollendes Update

Mit dem rollierenden Update können Sie den Druid-Cluster ohne Ausfallzeiten aktualisieren, sodass er für Benutzer unsichtbar ist. Alle Druid-Versionen sind abwärtskompatibel.

Wenn Sie mehr über Zeitreihendatenbanken und Vergleiche erfahren möchten, können Sie zu einem anderen Artikel wechseln:

Erste Einführung und Auswahl der Zeitreihendatenbank (TSDB)

Verwandte Empfehlungen: Apache-Server

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung des Apache-Druiden in einem Artikel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.im
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage