Cassandra API Äquivalent von „SELECT FROM ... ... WHERE ID IN ( '...', '...', '...');“
Frage
Nehmen Sie die folgenden Datensatz:
id age city phone
== === ==== =====
alfred 30 london 3281283
jeff 43 sydney 2342734
joe 29 tokyo 1283881
kelly 54 new york 2394929
molly 20 london 1823881
rob 39 sydney 4928381
Um die folgende Ergebnismenge zu erhalten ..
id age phone
== === =====
alfred 30 3281283
joe 29 1283881
molly 20 1823881
.. SQL eine Verwendung würde ausgeben ..
SELECT id, age, phone FROM dataset WHERE id IN ('alfred', 'joe', 'molly');
Was ist die entsprechende Cassandra API-Aufruf, der die gleiche Ergebnismenge in einem Befehl ergeben würde?
Lösung
CQL (Cassandras SQL-ähnliche Abfragesprache) unterstützt nun diese:
SELECT ... WHERE keyalias IN ('key1', 'key2', 'key3', ...);
http://cassandra.apache.org/doc/cql/CQL. html # Filteringrows
Andere Tipps
würden Sie eine multiget_slice w / Schlüssel von alfred tun, joe, und molly, und SlicePredicate column_names von id, Alter, Telefon
Ein Cassandra äquivalent könnte modelliert werden, wie unten beschrieben:
Users = { //this is a ColumnFamily
"alfred": { //this is the key to this Row inside the CF
"age":"30",
"city":"london",
"phone":"3281283"
}, // end row
// more rows...
}
Dabei steht „alfred“ ist Ihre (Zeile) Taste und die Zeile hat drei Spalten; Alter, Stadt und Telefon. (Die Zeitstempel-Feld Ausgelassene (der Einfachheit halber) für die drei Spalten)