我有一个搜索服务,它将过去1分钟的查询频率写入cassandra,如下所示。现在我需要聚合过去1小时的频率,即计算过去1小时内每个查询的频率总和。
假设1小时窗口中的唯一查询数为500万。现在,我有三个聚合器节点从cassandra读取数据,进行聚合并将其写回另一个表。
但我不确定如何在聚合器节点之间分配工作负载,即如何协调工作?每个记录只能由一个节点处理。如果是sql,我可能可以使用事务以原子方式读取几百条记录,并将它们标记为正在处理。但我不知道如何在Cassandra做到这一点。
我有一个搜索服务,它将过去1分钟的查询频率写入cassandra,如下所示。现在我需要聚合过去1小时的频率,即计算过去1小时内每个查询的频率总和。
假设1小时窗口中的唯一查询数为500万。现在,我有三个聚合器节点从cassandra读取数据,进行聚合并将其写回另一个表。
但我不确定如何在聚合器节点之间分配工作负载,即如何协调工作?每个记录只能由一个节点处理。如果是sql,我可能可以使用事务以原子方式读取几百条记录,并将它们标记为正在处理。但我不知道如何在Cassandra做到这一点。
暂无答案!
目前还没有任何答案,快来回答吧!