【发布时间】:2018-09-25 04:14:44
【问题描述】:
我在 Cassandra 有一张桌子,我在其中存储即将到来的事件,对不同阶段的事件进行不同的处理。事件与事件发生时间一起输入到表中。我需要获取事件时间小于某个时间的所有事件并对它们进行一些处理。由于它是一个选择范围查询,并且它总是会使用分散聚集。有人可以建议最好的方法来做到这一点。这个过程将每 5 秒发生一次,并且 Cassandra 中频繁发生的分散聚集不是一个好主意,因为它对 Cassandra 本身造成了开销,这会降低我的整体应用程序性能。
表格如下: PAS_REQ_STAGE (PartitionKey = EndpointID, category ; clusterkey= Automation_flag,alertID)
- 警报ID
- BatchPickTime:时间戳
- Automation_Threshold
- 资源ID
- 条件ID
- 类别
- Automation_time:时间戳
- Automation_flag
- 过滤器值
我上面提到的事件时间是 BatchPickTime..
调度器定时唤醒,获取所有 BatchPickTime 小于当前调度器唤醒时间的记录,并将它们从表中清除以进行处理。
由于这个用例,我无法为查询提供任何特定的分区键,因为它必须获取所有已过期且小于当前调度程序唤醒时间的数据。
【问题讨论】:
-
您当前的表结构是什么?查询时不能指定分区键吗?
-
No 查询时不能提供分区键
标签: cassandra cassandra-2.0 cassandra-3.0