Cassandra API équivalent de « SELECT ... FROM ... WHERE id IN ( '...', '...', '...'); »
Question
Supposons que l'ensemble de données suivantes:
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
Pour obtenir l'ensemble de résultat suivant ..
id age phone
== === =====
alfred 30 3281283
joe 29 1283881
molly 20 1823881
.. en utilisant un SQL publierait ..
SELECT id, age, phone FROM dataset WHERE id IN ('alfred', 'joe', 'molly');
Qu'est-ce que l'appel API Cassandra correspondant qui produirait le même résultat défini dans une commande?
La solution
CQL (de Cassandra langage de requête comme SQL) supporte maintenant ceci:
SELECT ... WHERE keyalias IN ('key1', 'key2', 'key3', ...);
http://cassandra.apache.org/doc/cql/CQL. html # Filteringrows
Autres conseils
vous faire multiget_slice w / clés de alfred, Joe et molly et SlicePredicate column_names d'identité, âge, téléphone
A Cassandra équivalent pourrait être modélisé comme décrit ci-dessous:
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...
}
où « alfred » est votre clé (ligne) et la ligne a trois colonnes; âge, ville et téléphone. (Omis dans le champ d'horodatage (par souci de simplicité) pour les trois colonnes)