gpt4 book ai didi

nosql - 我可以让行按键排序并随机分区吗?

转载 作者:行者123 更新时间:2023-12-02 03:51:45 26 4
gpt4 key购买 nike

例如,如果我处理大量交易 [timestamp (key), value, trader,..] 我想进行随机分区以实现负载平衡。

但为了查询,我希望这些事务在每个节点上按时间戳排序,这样可以非常快速地处理最后 5 分钟(或其他时间段)内的所有事务并使用 MapReduce 合并总计.

如果我使用随机分区程序,为什么 cassandra 会随机排序文件中的键?

问题 1:是否有解决方法?我可以使用索引,但它并不理想。

Q2.出于好奇,我想知道为什么一个节点中的键排序与分区策略有关?

最佳答案

节点在Cassandra中是环状的,环中的每个节点负责key range(数据集)。这个想法是,在环中的所有节点上平均分配数据,另外独立执行每个写操作——这样我们就不需要跟踪最后的更新来平衡环中的数据。

随机分区程序使用 Consistent Hashing为了将行键存储在随机节点上,以便以后找到它们。它主要生成真实行键的散列(这是 BigInteger),并在环中找到负责该散列的节点(在该节点的范围内)。

例如,我们在环中有 4 个节点(为了简单起见,我将使用较小的数字):

  • 节点 1 = initial_token: 0
  • 节点 2 = initial_token: 100
  • 节点 3 = initial_token: 200
  • 节点 4 = initial_token: 300

行键“value1”的哈希值为 23,因此它将存储在节点 1 上

行键“value2”的哈希值为 123,因此它将存储在节点 2 上

为了解决您的问题,您需要编写手动索引,二级索引可能不是完美的想法 - 它有一些限制(低狂热)

关于nosql - 我可以让行按键排序并随机分区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com