当前位置: 首页 > 知识库问答 >
问题:

基于时间戳列的时间序列数据的卡桑德拉数据清除

黄景胜
2023-03-14

我每天都在cassandra中存储时间序列数据。我们希望每天归档/清除超过2天的数据。我们正在使用Hector API来存储数据。有人能建议我每天删除超过2天的cassandra数据的方法吗?对cassandra行使用TTL方法是不可行的,因为删除数据的天数是可配置的。现在表格中没有时间戳列。我们计划添加时间戳列。但问题是,时间戳不能单独用于where子句,因为这个新列不是主键的一部分。请提供您的建议。

共有3个答案

夏季萌
2023-03-14

严格地根据您的描述,我认为唯一的解决方案是添加< code>timestamp列,并在其上添加二级索引。

然而,这是一个巨大的指标,表明您的数据模型远未适应这种情况。

强调我的初步意见:

你的模型适应/设计成别的了吗?因为这看起来不像Cassandra中的timeseries数据:timestamp like列应该是集群键的一部分。

柯乐池
2023-03-14

我不明白是什么阻止了你使用TTL方法。

TTL不仅可以在定义模式时使用,而且可以在使用datastax cassandra驱动程序将数据保存到表中时使用。

所以,实际上你可以为每一行设置单独的TTL,由你的java代码来配置。

此外,正如克里斯已经提到的,TTL为此使用内部时间戳。

焦阎宝
2023-03-14

正确答案是TTL,使用的每个突变都附有一个内部时间戳,因此您无需添加时间戳。手动清除几乎不是一个好主意。您可能需要对您的数据模型做一些工作,查看时间序列的数据税务学院示例

此外,节俭已被冻结两年,现已正式弃用(在4.0中删除)。赫克托和其他节俭客户不再真正维护(见这里)。使用 CQL 和 java 驱动程序将提供更好的结果,并提供更多可供学习的资源。

 类似资料:
  • 我正在尝试评估Cassandra DB在存储和检索不同通道的时间序列数据方面的性能。 数据以文件格式记录,最大记录速率为8个样本/秒,每个样本都有一个以毫秒为单位的时间戳。给定时间记录的通道数可能会有所不同。 受以下链接的启发,我使用时间序列数据建模入门创建了以下表: 创建表uhhdata ( ch_idx int,date timestamp,dt timestamp,val float,PRI

  • 我正在尝试使用Cassandra来存储来自一些传感器的数据。我读了很多关于Cassandra的时间序列数据模型的文章。我从时间序列数据建模入门开始,“时间序列模式2”看起来是最好的方法。所以我创建了一个复制因子为2的键空间和一个这样的表 其中是唯一的设备ID,是一天(例如2017-08-30),是时间戳。 我的查询是 如您所见,我需要从多天中检索数据,这意味着在我的集群中读取多个分区。在我看来,查

  • 我使用的是spring数据cassandra,需要使用jpa映射一个字段,在cassandra中,该字段的类型为

  • 我目前在cassandra中有一个名为macrecord的表,类似于以下内容: 在这种情况下,我想不出其他解决方案,只有在macadd值重复的情况下删除整行,然后插入具有更新时间戳的新行。 是否有更好的解决方案在macadd值重复时更新时间戳,或者在我的原始表中只有macadd是主键的范围内查询时间戳值的替代方法。

  • 如何在具有时间戳类型的列上使用Spring data JPA从表中检索数据。数据库是mySQL 列定义 域对象 Spring数据JPA代码 服务等级 由于DB列有一个时间戳(2017-05-07 06:45:19),因此它总是返回null,基本上我想返回所有最后更新日期为今天/当前日期的记录。

  • 在你否决之前,我想声明,我看了所有类似的问题,但我仍然得到可怕的“主键列不能被限制”错误。 下面是我的表结构: 谢谢,德尼兹