![]() |
1
2
问题不在于timeUUID是否是分区键的好选择。问题是,使用分区键上的范围查询从Cassandra读取数据是否是个好主意,答案是否定的。 你选择卡桑德拉是因为你有一个规模问题。为了解决规模问题,您必须通过将数据行聚类到分区来优化读取,这样您只需要读取一个分区就可以获得所需的所有数据。 分区键上的范围查询不会扩展,因为根据定义,Cassandra必须向多个节点发送多个请求,以检索满足范围所需的每个分区——这是一种分散/聚集访问模式。 你还没有发布很多关于你的用例的细节,但在我看来,你所拥有的并不是时间序列。你通常不会在时间序列中存储关于时间的数据——你存储的是关于某个包含时间成分的实体的数据。 例如,以下是测量温度的设备的数据模型:
然后,您可以通过以下方式获取设备记录的温度范围:
使用这个模型,您只需要从一个分区中检索数据,因此速度会非常快。干杯 |
![]() |
2
1
Erick用这个一针见血。如果您确实需要将数据保存在
一旦我完成了这项工作,那么这将通过查询单个分区来实现:
这里需要关注的主要问题是分区的大小。Cassandra的硬限制是每个分区20亿个单元,但总的来说,您希望将分区保持在100MB以下。基本上,“月”可能不是一个足够小的桶,这取决于每月发生的写入次数。如果有很多,那么可能需要一周甚至一天的时间。 |
|
Eco10008 · 使用计数数据运行GLM时出现问题 2 年前 |
![]() |
Buzz · 将液压块更换为气块Simscape 7 年前 |
![]() |
Joe Andersson · 在MDriven中嵌入类之间的连接 7 年前 |
![]() |
FCR · 序列图:与资源(数据库、网络、缓存等)的交互 7 年前 |