默认情况下,rollup360、rollup60、rollup7200、rollup86400等滚动表的default_time_to_live值为0,这意味着数据永远不会过期。但根据操作中心Metrics博客使用Cassandra构建的ttl支持,OpsCenter在rollups60列家族中的列在7天后过期,rollups300列家族在4周后过期,rollups 7200列家族在1年后过期,rollups86400列族中的数据永远不会过期。
但是在opscenterd.conf中,默认值列在下面。
[cassandra_metrics]
1min_ttl = 86400
5min_ttl = 604800
2hr_ttl = 2419200哪种设置比另一种更好?
发布于 2016-04-20 15:55:29
如果没有在文档中定义任何位置,则存在默认设置
1min_ttl以秒为单位设置过期1分钟数据点的时间。默认值为604800 (7天)。 5min_ttl以秒为单位设置过期5分钟数据点的时间。默认值为2419200 (28天)。 2hr_ttl以秒为单位设置过期2小时数据点的时间。默认值为31536000 (365日)。 24hr_ttl设置24小时数据点过期的时间。默认值为0,否则永远不会。
如果您不设置它们,它将使用默认值,但是如果您在opscenterd.conf的opscenterd.conf部分覆盖它们。当节点上的代理存储一段时间的汇总时,它将包含与其相关联的任何TTL,即(不确切地说,操作中心是如何做的,而是为了演示目的):
INSERT INTO rollups60 (key, timestamp, value) VALUES (...) USING TTL 604800;在您的示例中,您降低了TTL,这将减少存储的数据量。因此:
1)设置较低的TTL以减少存储在磁盘上的数据量。您可以按照您在票证中提到的那样配置它。虽然压缩策略会对此产生显著影响。
2)表上有默认的ttl设置,但将其设置为每个查询与将其放在表中并没有太大区别。如果需要更改alter,则执行alter要比仅仅更改插入上的ttl值要昂贵得多。如果表中存在过时数据的问题,请尝试切换到LeveledCompactionStrategy (这不会增加压缩的IO,但可能不会引起注意)
发布于 2016-09-30 14:29:00
https://stackoverflow.com/questions/36746261
复制相似问题