MultigetSliceQuery を使用した ColumnSliceIterator の例を探しています。見つからない?助言がありますか?
SliceQuery の例はたくさん見つかりましたが、ここで言及できるキーは 1 つだけです。複数の行キーに対するクエリを探しています。
助けてくれてありがとう
興味深いことに、複数の行キーで同時に列スライスを実行したいとします。私が考えることができる唯一のことは、100 行で列スライスを実行したい場合、astyanax を使用して 100 の非同期クエリ (列スライス) を実行し、すべての列スライスが実行されるように将来をループできることです。とにかく同時に;)。非同期 API がある場合、API 呼び出しを 1 回行う必要はありません。
PlayOrm が Scalable-SQL との結合を行う場合、不連続な get に同様のものを使用します。これは高速です。
後、ディーン
結果は得られましたが、行キーごとに与えられます。つまり、最初の行キーはその列名/値 2番目の行キーはその列名/値です
ここで、最後に取得した列名はタイムスタンプの値で、列の値はプレーンな文字列です
行キーに関係なく列名をソートしたい...カサンドラでそうする機能はありますか...(私は壁のような機能を作っています)
必要なイテレータはありません。面倒な作業はすべてコーディングする必要があります。. このようなもの(すべての文字列を想定):
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());
}
}
非常に多数の列がある場合、すべての列を取得するために各行を反復する必要があるため、注意が必要です。