Cassandra API equivalente a “Selecionar… de… onde id em ('…', '…', '…');”
Pergunta
Suponha o seguinte conjunto de dados:
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
Para obter o seguinte conjunto de resultados ..
id age phone
== === =====
alfred 30 3281283
joe 29 1283881
molly 20 1823881
.. Usando o SQL, um emitiria ..
SELECT id, age, phone FROM dataset WHERE id IN ('alfred', 'joe', 'molly');
Qual é a chamada Cassandra API correspondente que produziria o mesmo resultado definido em um comando?
Solução
CQL (linguagem de consulta do tipo SQL de Cassandra) agora suporta isso:
SELECT ... WHERE keyalias IN ('key1', 'key2', 'key3', ...);
Outras dicas
Você faria uma multiget_slice com chaves de Alfred, Joe e Molly e SlicePredicate Column_Names of ID, idade, telefone
Um equivalente a Cassandra pode ser modelado conforme descrito abaixo:
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...
}
onde "Alfred" é a sua tecla (linha) e a linha possui três colunas; idade, cidade e telefone. (Omitiu o campo de timestamp (por simplicidade) para as três colunas)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow