0

我正在寻找带有 MultigetSliceQuery 的 ColumnSliceIterator 的示例。我没有找到?有什么建议么?

我发现了很多 SliceQuery 的例子,但我们只能提到一个键。我正在寻找对多个行键的查询。

谢谢您的帮助

4

3 回答 3

0

我得到了结果,但它明智地给了它行键,即第一行键它的列名/值第二行键它的列名/值

这里我最后得到的列名是时间戳值,列值是纯字符串

我想对列名进行排序而不考虑行键...在 cassandra 中是否有任何工具可以这样做...(我正在制作墙的功能)

于 2013-05-03T11:38:48.797 回答
0

有趣的是,您想同时对多个行键进行列切片。我唯一能想到的是,如果你想在 100 行上做一个列切片,你可以使用 astyanax 做一个 100 个异步查询(列切片),然后在未来循环,这样所有列切片都在反正同一时间;)。当您拥有异步 api 时,无需进行一次 api 调用。

当 PlayOrm 使用它的 Scalable-SQL 进行连接并且速度很快时,我们使用类似的东西来获取非连续获取。

后来,迪恩

于 2012-10-03T15:55:02.003 回答
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 回答