【问题标题】:What happens behind the scenes on altering Cassandra table property "default_time_to_live"?改变 Cassandra 表属性“default_time_to_live”的幕后会发生什么?
【发布时间】:2021-07-09 20:31:28
【问题描述】:

我阅读了许多关于“default_time_to_live”属性的文档和博客,但我不确定如果我在 Cassandra 集群中具有 TB 数据的现有表上“更改”此属性,它会产生什么影响?这是否会影响通过“UPDATE”查询设置了 TTL 的现有数据,或者幕后究竟发生了什么。

此属性是否仅影响该表的元数据,并且仅适用于设置该属性后将被索引的行?

ALTER TABLE test WITH default_time_to_live = 86400;

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    如果您还记得,SSTable 是不可变的——一旦写入磁盘,它们就再也不会改变了。

    当您更改表的默认 TTL 时,新的过期时间将仅适用于 新的突变。 Cassandra 不会对已写入磁盘的数据追溯应用新的 TTL,因此现有的 SSTables 不会改变。

    如果要更新现有数据的 TTL,则需要编写 ETL 应用程序(最好是 Spark 作业)。干杯!

    【讨论】:

      猜你喜欢
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多