Cassandra API equivalente a “Selecionar… de… onde id em ('…', '…', '…');”

StackOverflow https://stackoverflow.com/questions/2445878

  •  20-09-2019
  •  | 
  •  

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?

Foi útil?

Solução

CQL (linguagem de consulta do tipo SQL de Cassandra) agora suporta isso:

SELECT ... WHERE keyalias IN ('key1', 'key2', 'key3', ...);

http://cassandra.apache.org/doc/cql/cql.html#filteringrows

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
scroll top