Wir verwenden Cassandra, um eine Reihe von Analysetabellen zu speichern, zB "Benutzerklicks", "Benutzeranmeldungen" usw. Unser Datenmodell ist so konzipiert, dass unsere Anwendung immer nach dem Partitionsschlüssel fragt, zB Logins für Benutzer holen id "usw. Manchmal müssen wir jedoch eine Ad-hoc-Analyse durchführen, wie" Wie hoch war die durchschnittliche Anzahl der Logins pro Benutzer pro Monat in den letzten 6 Monaten? " und dafür verwenden wir Spark SQL.Verwendet Spark SQL Cassandra Sekundärindizes?
Meine Frage ist: Ich verstehe, dass Spark SQL im Grunde über jede Zeile in Cassandra iterieren und die Bedingungen der SQL-Abfrage auf jede Zeile anwenden wird, diejenigen, die nicht übereinstimmen und diejenigen, die übereinstimmen (und schließlich Anwendung einer Aggregation usw. erforderlich). Wenn ich einen sekundären Index für eine Cassandra-Spalte erstelle (zum Beispiel "Login-Zeit"), und dann in Spark SQL mache ich etwas wie "Wählen Sie * aus Logins, wo logintime> '2016-05-17'" Spark SQL schieben die mit dem sekundären Index nach Cassandra filtern, oder wird es immer noch durch jede Zeile iterieren? Gibt es eine Konfiguration, die ich manuell festlegen muss, welche Spalten Indizes haben, um die indizierten Prädikate nach unten zu drücken?
Ah, die pure SparkSQL war das Bit, das ich vermisste - erstaunlich, danke! Vermutlich wird dies mit Sparks HiveThriftServer für SparkSQL funktionieren? – Matt