在Cassandra中按时间排序结果

kfgdxczn  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(185)

我想从 cassandra 那里得到一些时间序列数据
我的表显示在图片上,当我进行查询时,得到的数据如下所示:首先,我看到的是所有错误的数据,无论我何时将它们插入Cassandra,然后我看到的是所有真实的数据。我的问题是:如何在插入数据时按时间对数据进行排序,以便在插入数据时能够保持数据的顺序。
当我尝试“select c1 from table1 order by c2”时,我得到以下错误“ORDER BY仅在分区键受EQ或IN限制时才受支持”。
谢谢你

mspsb9vt

mspsb9vt1#

假设您的模式类似于:

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

这将在表中产生2个分区(c1 = true和c1=false)。每个分区将由一个节点管理。
初始查询将从所有分区的表中检索数据。因此,它将转到第一个分区,检索所有行,然后转到第二个分区,检索所有行,这就是为什么您会看到这样的结果。
Cassandra是针对仅跨一个分区检索数据而优化的,因此您应该考虑调整您的模式以允许这样做-要在查询中使用ORDER BY,您需要仅跨一个分区检索数据。
根据您的用例,您可以考虑在应用程序中对数据进行分组或执行排序。

相关问题