4

假设以下数据集:

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

要获得以下结果集..

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

.. 使用 SQL 会发出 ..

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

在一个命令中产生相同结果集的相应 Cassandra API 调用是什么?

4

3 回答 3

4

你会做一个带有 alfred、joe 和 molly 键的 multiget_slice,以及 id、age、phone 的 SlicePredicate column_names

于 2010-03-15T15:02:52.630 回答
2

Cassandra 等价物可以按如下所述进行建模:

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

其中“alfred”是您的(行)键,该行有三列;年龄、城市和电话。(省略了三列的时间戳字段(为简单起见))

于 2010-03-15T15:23:51.840 回答
1

CQL(Cassandra 的类似 SQL 的查询语言)现在支持这一点:

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

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

于 2012-09-30T16:01:17.467 回答