Cassandra API equivalente de “SELECT ... FROM ... donde id IN ( '...' '...' '...');”

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

  •  20-09-2019
  •  | 
  •  

Pregunta

Suponga que el siguiente conjunto de datos:

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 obtener el siguiente conjunto de resultados ..

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

.. utilizando uno SQL emitiría ..

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

¿Cuál es el correspondiente llamada a la API Cassandra que produciría el mismo resultado en un solo comando?

¿Fue útil?

Solución

CQL (lenguaje de consulta SQL-como de Cassandra) ahora es compatible con lo siguiente:

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

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

Otros consejos

lo haría un multiget_slice w / llaves de Alfred, Joe, y Molly, y COLUMN_NAMES SlicePredicate de identificación, edad, teléfono

A equivalente Cassandra podría ser modelada como se describe a continuación:

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

donde "Alfred" su clave (fila) es la fila y tiene tres columnas; edad, ciudad y teléfono. (Se omite el campo de marca de tiempo (por simplicidad) para las tres columnas)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top