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');

1つのコマンドで同じ結果セットを生成する対応するCassandraAPI呼び出しは何ですか?

4

3 に答える 3

4

alfred、joe、mollyのキーを使用してmultiget_sliceを実行し、id、age、phoneのSlicePredicatecolumn_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」は(行)キーであり、行には3つの列があります。年齢、都市、電話。(3つの列のタイムスタンプフィールド(簡単にするため)は省略)

于 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 に答える