【发布时间】:2013-07-02 21:58:50
【问题描述】:
我是 Cassandra 的新手,我想集思广益,在 Cassandra 中存储加权图的时间序列,其中边权重每次都会增加,但也会随着时间而更新。例如,
w_ij(t+1) = w_ij(t)*exp(-dt/tau) + 1
我的第一个镜头涉及两个 CQL v3 表:
首先,我通过连接图形的 id 和特定边上的两个节点来创建一个分区键,例如G-V1-V2。我这样做是为了能够在下面描述的复合键的第二个组件(即时间戳类型)上使用“ORDER BY”指令。将此字符串称为 EID,用于“edge id”。
表格1 - 边缘更新的时间序列 - 主键:EID、时间、重量 表 2 - “最后更新时间”和“最后重量”的值 - 主键:开斋节 - 列:时间,重量每次滴答时,我都会获取并更新存储在表 2 中的时间和权重值。我使用这些值来计算时间增量和新权重。然后我将这些值插入表 1。
此策略是否存在严重的低效率问题? 应该怎么做?我已经知道表 2 的更新过程不是幂等的,可能会导致不一致,但我暂时可以接受。
编辑:我可能会做的一件事是将两个表合并为一个时间序列表。
【问题讨论】:
标签: graph cassandra time-series data-modeling cql