Cassandra API equivalente di “SELECT ... FROM ... WHERE id IN ( '...', '...', '...');”

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

  •  20-09-2019
  •  | 
  •  

Domanda

Si supponga il seguente set di dati:

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

Per ottenere il set di risultati seguente ..

id       age  phone
==       ===  =====
alfred   30   3281283
joe      29   1283881
molly    20   1823881

.. utilizzando SQL uno avrebbe emesso ..

SELECT id, age, phone FROM dataset WHERE id IN ('alfred', 'joe', 'molly');

Qual è la chiamata API Cassandra corrispondente che darebbe lo stesso risultato impostato in un solo comando?

È stato utile?

Soluzione

CQL (SQL-like linguaggio di query di Cassandra) supporta ora questa:

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

http://cassandra.apache.org/doc/cql/CQL. html # Filteringrows

Altri suggerimenti

si farebbe un multiget_slice w / chiavi di Alfred, Joe, e Molly, e COLUMN_NAMES SlicePredicate di id, età, telefono

A Cassandra equivalente potrebbe essere modellato come descritto di seguito:

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...
}

dove "Alfred" è la chiave il vostro (riga) e la riga ha tre colonne; l'età, la città e il telefono. (Omesso il campo timestamp (per semplicità) per le tre colonne)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top