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

在Cassandra中存储加权图时间序列

王刚毅
2023-03-14

我是Cassandra的新手,我想在Cassandra中存储加权图的时间序列,其中边权值随时间而增加,但也随时间而更新。例如,

w_ij(t+1) = w_ij(t)*exp(-dt/tau) + 1

我的第一个镜头涉及两个CQL v3表:

TABLE 1
- a time series of edge updates
- PRIMARY KEY: EID, time, weight


TABLE 2
- values of "last update time" and "last weight"
- PRIMARY KEY: EID
- COLUMNS: time, weight

这个策略有什么可怕的低效吗?应该怎么做?我已经知道表2的更新过程不是幂等的,可能会导致不一致,但我暂时可以接受这一点。

edit:我可以做的一件事是将这两个表合并到一个时间序列表中。

共有1个答案

太叔何平
2023-03-14

当涉及到Cassandra时,您应该避免任何类型的先读后写(以及任何其他不能对写执行比较交换操作的数据库)。

 类似资料:
  • 我们正在评估Cassandra用于金融时间序列数据的过程中,并试图了解以最高效的方式存储和检索我们需要的数据的最佳方法。我们在一个虚拟机上运行Cassandra,该虚拟机上已经分配了8个内核和8GB RAM。主机的剩余资源(另外8个内核和12GB RAM)用于开发测试客户机应用程序。我们的数据目前存储在平面文件中,每天大约有100-150GB(未压缩)。就从cassandra检索数据而言,我们需要

  • 问题内容: 我需要将一些时间序列数据存储到Redis中。我有unix时间戳,并且我需要关联一个值(时间戳<->值) 我尝试将时间戳记作为得分(以便我可以在时间戳记上进行zrange)并将值作为成员的排序集。 但是我遇到了一个问题,成员没有重复,而对于不同的时间戳,我的值可以相同。知道如何处理吗?其他数据类型更好吗? 问题答案: 解决此问题的一个简单技巧是将时间戳记和值连接起来。 而不是存储: 您可

  • 我试图在包含微秒级时间戳的cassandra中存储数据。cassandra的文档称“时间戳”数据类型可以存储纪元以来的毫秒,但互联网上的几条消息似乎暗示cassandra可以本地存储微秒时间戳。 在卡桑德拉中存储微秒级时间的最佳方法是什么?我是不是应该省略日期部分,存储很长一段呢? 正在中止记录#1的导入。以前插入的记录仍然存在,之后的一些记录也可能存在。 我的cassandra版本:[cqlsh

  • 我有许多python进程,每个进程都重复查询一个单独的投注API。请求一次以~20-100的突发形式出现,然后该过程消失以解析响应并在大约一秒后重复。我希望使用卡桑德拉作为我的请求和响应的原始存储。这将允许我调试解析数据的问题和/或稍后重新解析。我正在尝试为此设计一个架构。 我想每个API都可以有一个单独的表(列族),这一点没什么可说的。我对表模式的最初想法是: 然后,我可以在请求和响应发生时将它

  • 我将我的数据存储在卡珊德拉·NoSQL数据库中,模式如下: 然后我使用。我希望数据是按时间序列排列的,第一天确实如此,但今天情况发生了变化。 我认为数据库忽略了日期,而只关心时间。 知道怎么解决这个问题吗?

  • 我想将 JSON 存储在卡桑德拉数据库中。JSON 的每个字段都应映射到其各自的列。 可能吗?如果可能的话,我如何才能实现它?。 请帮帮我..