0

MultigetSliceQuery を使用した ColumnSliceIterator の例を探しています。見つからない?助言がありますか?

SliceQuery の例はたくさん見つかりましたが、ここで言及できるキーは 1 つだけです。複数の行キーに対するクエリを探しています。

助けてくれてありがとう

4

3 に答える 3

0

興味深いことに、複数の行キーで同時に列スライスを実行したいとします。私が考えることができる唯一のことは、100 行で列スライスを実行したい場合、astyanax を使用して 100 の非同期クエリ (列スライス) を実行し、すべての列スライスが実行されるように将来をループできることです。とにかく同時に;)。非同期 API がある場合、API 呼び出しを 1 回行う必要はありません。

PlayOrm が Scalable-SQL との結合を行う場合、不連続な get に同様のものを使用します。これは高速です。

後、ディーン

于 2012-10-03T15:55:02.003 に答える
0

結果は得られましたが、行キーごとに与えられます。つまり、最初の行キーはその列名/値 2番目の行キーはその列名/値です

ここで、最後に取得した列名はタイムスタンプの値で、列の値はプレーンな文字列です

行キーに関係なく列名をソートしたい...カサンドラでそうする機能はありますか...(私は壁のような機能を作っています)

于 2013-05-03T11:38:48.797 に答える
0

必要なイテレータはありません。面倒な作業はすべてコーディングする必要があります。. このようなもの(すべての文字列を想定):

MultigetSliceQuery<String, String, String> query = HFactory.createMultigetSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()());
List<String> keys = new ArrayList<String>();
// add my keys
query.setColumnFamily("my cf").setKeys(keys).setRange(startColumn, endColumn, false, count);
// can also use setColumnNames(...) instead of setRange() to get specific columns
Rows<String,String,String> resultRows = query.execute().get();
for (Row<String, String, String> row : resultRows) {
   for (HColumn<String, ByteBuffer> col: row.getColumnSlice().getColumns()) {
      System.out.println("  " + col.getName() + ":" + col.getValue());
   }
}               

非常に多数の列がある場合、すべての列を取得するために各行を反復する必要があるため、注意が必要です。

于 2012-10-04T17:03:50.517 に答える