【问题标题】:Cassandra RandomPartitioner and "full table scans"Cassandra RandomPartitioner 和“全表扫描”
【发布时间】:2013-02-06 23:05:41
【问题描述】:

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

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

【问题讨论】:

    标签: cassandra


    【解决方案1】:

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

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

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

    3. 您可以在另一个库中执行范围切片 using Hector like this 或类似的构造。

    【讨论】:

      猜你喜欢
      • 2019-07-17
      • 2020-10-02
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      相关资源
      最近更新 更多