【发布时间】:2019-01-30 18:55:31
【问题描述】:
我的问题是,在使用 TWCS 时,Cassandra 是使用自己的时间戳(例如,输入行时的时间戳)还是可以使用数据中的时间戳(例如,timeuuid 或时间戳字段行)何时使用时间窗?
例如,如果我有这样的 Cassandra 数据库:
- 我有 TTL 为 30 秒的数据
- 我有 1 秒长的时间窗口
- 我每秒写入大约 100 行 1MB 行
- 我的集群中有 3 个节点
- 我有一个由 (id, second_of_a_minute) 组成的分区键
我的理解是我应该有大约 29 个 SSTable,加上最近时间窗口中的 SSTable,加上任何尚未被垃圾收集的 SSTable,加上 30 秒后任何时间在 memtable 中的任何数据。
现在,如果我查询保存在(现在 - 20 秒)和(现在 - 10 秒)之间的数据,我的数据将存储在大约 10 个 SSTable 中。 Cassandra 是从每个时间窗口检查 SSTables 以检查它是否在我的时间范围内存储数据,还是只在适合我的时间查询的时间窗口内查询 SSTables?
【问题讨论】:
标签: database database-design cassandra time-series