首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点工具紧凑型TimeWindowCompactionStrategy表

节点工具紧凑型TimeWindowCompactionStrategy表
EN

Stack Overflow用户
提问于 2019-05-14 13:47:22
回答 1查看 354关注 0票数 1

使用cassandra版本3.11.4,我们在用TimeWindowCompactionStrategy、compaction_window_unit (小时)和compaction_window_size (1)创建的表中导入了几天的“时间序列类似”数据:

代码语言:javascript
复制
CREATE TABLE MYTABLE (
  some_fields text,
(...)
AND compaction = {
  'class' : 'TimeWindowCompactionStrategy',
    'compaction_window_unit': 'HOURS',
    'compaction_window_size': 1
};

由于这是从另一个DB导入的历史数据,因此我们以这种方式更改了insert查询的时间戳:

代码语言:javascript
复制
INSERT INTO MYTABLE (...) USING TIMESTAMP [timestamp of the record] AND TTL ...

其中,记录的时间戳是插入的每个时间序列记录的时间戳。

显然,此方法起了作用,可以在org.apache.cassandra.db.compaction包上启用跟踪级别日志记录:

代码语言:javascript
复制
TRACE [CompactionExecutor:421] ...TimeWindowCompactionStrategy.java:252 - buckets {
1523124000000=[BigTableReader(path='.../md-487-big-Data.db')], 
1523070000000=[BigTableReader(path='.../md-477-big-Data.db')], 
1523109600000=[BigTableReader(path='.../md-530-big-Data.db')], 
1523134800000=[BigTableReader(path='.../md-542-big-Data.db')] }, 
max timestamp 1523134800000

在那里我们发现了几个“一小时”大桶。

当我们在每个cassandra节点上运行nodetool紧凑型时,问题就出现了。

我们所期望的是为每个“一个小时的水桶”获得一个稳定的系统。我们得到的是一个巨大的稳定系统(每个节点),所有的行都合并了!

这就是所谓的行为吗?我们做错什么了吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-14 15:19:52

这是预期的行为。您可以将节点离线并将马厩拆分为X,也可以等待所有TTL过期,然后观看单个大型sstable被清除。记住用STWS关闭表上的修复,否则,事情会变得很混乱。我学到了艰难的方法。否则,对于时间序列数据来说,这是一个很好的压缩策略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56132031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档