Ich untersuche gerade, wie man angereicherte zeitbasierte Daten mit bis zu 1000 Spalten pro Zeile speichert und analysiert. Im Moment scheint Cassandra zusammen mit Solr, Hadoop oder Spark von Datastax Enterprise meine Anforderungen an das Rough zu erfüllen. Aber der Teufel steckt im Detail.Cassandra + Solr/Hadoop/Spark - Auswahl der richtigen Werkzeuge
Von den 1000 Spalten werden etwa 60 für echtzeitähnliche Abfragen verwendet (Web-Frontend, Benutzer sendet Formular und erwartet eine schnelle Antwort). Diese Abfragen sind mehr oder weniger GROUPBY-Anweisungen, bei denen die Anzahl oder Vorkommen gezählt werden.
Als Cassandra selbst nicht die erforderlichen analytischen Fähigkeiten bietet (kein GROUPBY), bin ich diese Alternativen links:
- Grob Abfrage über Cassandra und Filtern der Suchresultates in selbstgeschriebenen Code
- Index der Daten mit Solr und laufen facet.pivot fragt
- Verwenden Sie entweder Hadoop oder Funken und die Abfragen ausführen
Der erste Ansatz scheint umständlich und fehleranfällig s ... Solr hat einige analytische Eigenschaften, aber ohne Multifield-Gruppierung bin ich mit Pivots festgefahren. Ich weiß nicht, ob das ein guter oder performanter Ansatz ist ... Zu guter Letzt gibt es Hadoop und Spark, die bekanntlich nicht die besten für Echtzeit-Abfragen sind, die später ziemlich neu und vielleicht nicht produktionsreif sind.
Also welcher Weg zu gehen? Hier gibt es keinen Alleskönner, aber bevor ich in die andere Richtung gehe, möchte ich ein Feedback bekommen. Ich denke, um komplexe oder meine Erwartungen zu hoch sind vielleicht: S
Vielen Dank im Voraus,
Arman
Hallo, ich bin nur neugierig zu erfahren, Wenn Sie irgendeine spezielle Strategie verwendet haben, bitte am Ende? Vielen Dank. – tarilabs
Leider nein. Teilweise, weil sich das Projekt in der Mitte änderte ... Seit meinem Post hier haben Solr und Spark viele Updates erhalten. Der Solr-Weg funktioniert gut, wenn der Index intakt ist, was schwer ist ... Spark auf der anderen Seite sollte die Arbeit besser machen als Hadoop, aber ich hatte keine Zeit, es zu überprüfen. – Arman