在Cassandra按时间排序结果

时间:2017-06-15 11:31:40

标签: cql cassandra-3.0

我试图从Cassandra获取一些时间序列数据

我的表格显示在图片上,当我查询时,我收到的数据如下: 首先,我将所有错误数据都看到,无论何时将其插入Cassandra,接下来我都会看到所有真实数据。 我的问题是:当我插入时,我如何按时间顺序对数据进行排序或滚动,以便我能够在插入数据时按顺序获取数据。

当我尝试"通过c2"从table1顺序中选择c1时,我得到以下错误"仅当分区键受EQ或IN限制时才支持ORDER BY。&# 34;

谢谢 My boolean table

1 个答案:

答案 0 :(得分:0)

假设您的架构类似于:

CREATE TABLE table1 (
c1,
c2,
PRIMARY KEY (c1))

这将导致表中的2个分区(c1 = true,c1 = false)。每个分区将由单个节点管理。

您的初始查询将从所有分区中检索表中的数据。因此它将转到第一个分区,然后检索所有行,然后检索所有行,并检索所有行,这就是您看到结果的原因。

Cassandra针对仅在一个分区中检索数据进行了优化,因此您应该考虑调整架构以允许 - 在查询中使用ORDER BY,您只需要跨一个分区检索数据。

根据您的使用情况,您可以查看在您的应用程序中存储数据或执行排序。