2015-01-07 9 views
8

Ich kann nicht helfen zu denken, dass es nicht viele Anwendungsfälle gibt, die von Cassandra besser bedient werden können als Druiden. Als Zeitserienspeicher oder Schlüsselwert können Abfragen in Druid geschrieben werden, um die benötigten Daten zu extrahieren. Das Argument here ist eher um Druiden als Cassandra zu rechtfertigen.Kann Druide Cassandra ersetzen?

Abgesehen von den Fast schreibt in Cassandra, gibt es wirklich noch etwas anderes? Esp, angesichts der Echtzeit-Aggregationen/und Abfrage-Fähigkeiten von Druid, überwiegt es nicht Cassandra.

Für eine geradlinigere Frage, die beantwortet werden kann - stellt Druide nicht eine Obermenge von Eigenschaften zur Verfügung, die mit Cassandra verglichen werden, und würde man nicht besser darin sein, Druide direkt zu verwenden? Für alle Anwendungsfälle?

+0

Bearbeitete die Frage für die Leute, die gerade Fragen mögen :) – TechJack

Antwort

7

Nicht sicher, das ist wirklich eine SO Art von Frage, aber die einfache Antwort ist, dass es eine Frage des Anwendungsfalles ist. Einfach gesagt, Druid glänzt, wenn es sehr schnelle Ad-hoc-Abfragen an Daten ermöglicht, die in Echtzeit aufgenommen wurden. Es ist jetzt konsistent gelesen und Sie sind nicht durch vorberechnete Abfragen beschränkt, um Geschwindigkeit zu erhalten. Auf der anderen Seite können Sie nicht in die Daten schreiben, die es enthält, Sie können nur überschreiben.

Cassandra (von dem, was ich gelesen habe, habe es nicht verwendet) ist eher ein schließlich konsistenter Datenspeicher, der Schreibvorgänge unterstützt und sehr gut mit Pre-Compute funktioniert. Es ist nicht beabsichtigt, Daten kontinuierlich zu erfassen, während Echtzeitzugriff auf Ad-hoc-Abfragen für dieselben Daten bereitgestellt wird.

In der Tat könnten die beiden zusammenarbeiten, wie auf planetcassandra.org in "Cassandra as a Deep Storage Mechanism for Druid Real-Time Analytics Engine!" vorgeschlagen wurde.

+0

danke für Ihren Vorschlag. – TechJack

+0

Ich verstehe, dass Druide eine Begrenzung hat, wenn es um Schreibvorgänge geht, da sie in Zeitfenstern steckengeblieben sind und das ist ein Overhead, um in die Zeit zurückzuschreiben. naja, zumindest ist es kein einfaches Schreiben. Aber das kann meiner Meinung nach von den Daten selbst gesteuert werden und die Fensterberechnungslogik, die einmal vorhanden ist, wäre für immer gut. Ich schaue wirklich beide in einem Todeskampf und sehe, ob Druide ein Gewinner sein könnte. – TechJack

12

Für eine geradlinigere Frage, die beantwortet werden kann - stellt Druide nicht eine Obermenge von Eigenschaften zur Verfügung, die zu Cassandra comparred sind und würde man nicht besser darin sein, Druide direkt zu verwenden? Für alle Anwendungsfälle?

Sie sind überhaupt nicht vergleichbar. Wir sprechen hier über zwei sehr unterschiedliche Technologien. Ein einfacher Weg ist es, Cassandra als eine verteilte Speicherlösung zu sehen, aber Druid als einen verteilten Aggregator (zB ein großartiges Open-Source-OLAP-ähnliches Tool): Der Beitrag, auf den Sie sich beziehen, ist meiner Meinung nach ein bisschen irreführend dass es die beiden Projekte in der Welt des Data Mining vergleicht, die nicht Cassandras Fokus ist.

Druide ist nicht gut in Point Lookup, überhaupt. Es liebt Zeitreihen und seine Partitionierung basiert hauptsächlich auf datumsbasierten Segmenten (B. stündlich/monatlich usw. Segmente, die basierend auf der Größe weitergeführt werden können.)

Druid aggregiert Ihre Daten basierend auf vordefinierten Aggregatoren - das sind Zahlen (z. B. Summe der Klickereignisse auf Ihrer Website mit eine Tagesgranularität usw.) Wenn man eine Schlüsselsuche von einer Zeichenkette speichern möchte, um a zu sagen Egal welcher String oder welche exakte Zahl, Druid ist die schlechteste Lösung, die er finden kann.

0

Es hängt vom Anwendungsfall ab. Zum Beispiel benutzte ich Cassandra für Aggregationszwecke, d. H. Statistiken wie die aggregierte Anzahl von Domänen w.r.t. Benutzer, Abteilungen usw. Ereignistrends (Bandbreite, Benutzer, Apps usw.) mit konfigurierbaren Zeitfenstern. Cassandra mit Druid zu ersetzen, hat sich für mich sehr gut entwickelt, da druid sehr effizient mit Aggregationen ist. Andererseits, wenn Sie Zeitreihendaten mit eventueller Konsistenz benötigen, ist Cassandra besser, wo Sie Details über die Ereignisse bekommen können.

Die Kombination von Druid und Elasticsearch hat sehr gut funktioniert, um Cassandra aus unserer Big Dada Infrastruktur zu entfernen.