3

我似乎无法找到有关如何使用 aRandomPartitioner拆分键来遍历列族中所有行的信息。我看到列出的完整扫描的常用方法是“使用 MapReduce”(这将是一个选项,但现在不是)并创建一个范围切片查询以批量检索行,用最后一个更新范围的下限每批后看到的关键。当您不能保证对键进行排序时,这似乎是一种奇怪的方法,所以我想知道在这种情况下可接受的做法是什么。

需要明确的是,整个列族遍历并不是经常发生的事情,也不是我们对数据库的标准访问模式的一部分。它不需要特别快(尽管它会很好,当然!)我们只需要偶尔检查一下垃圾等。我们不希望返回的行是一致的快照或类似的东西。

4

1 回答 1

2

使用 Hadoop MapReduce 将是执行此操作的正确方法,但我知道目前这对您来说不是一个可行的选择。所以你有几种可能性:

  1. 如果您的密钥具有某种逻辑顺序并且可以预先计算或以其他方式已知,您可以批量获取一堆密钥。

  2. 您可以创建类似于 Cassandra 的ColumnFamilyInputFormat工作方式的范围客户端。

  3. 您可以像这样使用 Hector或其他库中的一些类似结构来进行范围切片。

于 2013-02-06T15:05:41.880 回答