Ich habe eine Cassandra Tabelle wie folgt:Wie auf Cassandra mehr Abfragen in einer einzigen Charge auszuführen
create table experience.userstats (stream varchar, user varchar, computer varchar, experience varchar, amount int, primary key (experience, stream, user, computer);
ich Apache Sturm Schrauben verwenden diese Aufzeichnungen in Cassandra aus einer Warteschlange Auslauf zu erstellen.
Ich möchte aggregierte Statistiken generieren und den Zähler für verschiedene Erfahrungen für einen bestimmten Stream als Kreisdiagramm anzeigen. Zum Beispiel, 30% zufrieden, 40% gemischt und 30% unzufriedene Erfahrung.
Da ich Zähler online nicht aktualisieren kann, verwende ich einen Clock-Auslauf (Timer), um diese Daten zu lesen und Zähler in einer neuen Tabelle zu generieren. Aber Cassandra unterstützt keine Gruppenklauseln und daher muss ich dreimal lesen, um den Zähler für jede Erfahrung wie folgt zu erhalten.
select count(*) from experience.userstats where experience='satisfied' and stream='xyz';
select count(*) from experience.userstats where experience='unsatisfied' and stream='xyz';
select count(*) from experience.userstats where experience='mixed' and stream='xyz';
Das Problem bei diesem Ansatz ist, dass ich drei Abfragen auf Datenbank auszuführen haben die Zähler für die drei Arten von Erfahrungen und Erfahrungen zu sammeln konnte in der mittleren Zeit modifiziert werden diese Zähler im Widerspruch zu machen.
Gibt es eine Möglichkeit, oben drei Select-Anweisungen in einem einzigen Batch auszuführen? Oder könnten Sie bitte einen alternativen Designansatz vorschlagen?
http://docs.datastax.com/de/cql/3.1/cql/cql_reference/batch_r.html –
Es unterstützt nur dml nein? – pavybez