【发布时间】:2020-04-19 12:59:20
【问题描述】:
我们需要将 cassandra 中表的默认生存时间从 5 天更改为 10 天。如果我更改表并设置新的 ttl 值,现有数据会发生什么。请建议为生产数据执行此操作的最佳选择。
【问题讨论】:
我们需要将 cassandra 中表的默认生存时间从 5 天更改为 10 天。如果我更改表并设置新的 ttl 值,现有数据会发生什么。请建议为生产数据执行此操作的最佳选择。
【问题讨论】:
对表的默认 TTL 值的任何更改都将应用于进入表的新更新(新写入或更新)。现有列的 TTL 值将保持在该列值更新时计算的值。
从您的问题中不清楚您对现有数据的要求是什么。如果您也想更新现有列值的 TTL 值,AFAIK 没有简单的方法可以做到这一点。
【讨论】:
TTL 是决定数据在墓碑之前存入表中的时间的值。 Datastax 在这里做了一个很好的解释。
TTL(生存时间)以秒为单位,其中零被禁用。最大可配置值为 630720000(20 年)。如果该值大于零,则为整个表启用 TTL,并为每列添加一个过期时间戳。每次更新数据时都会计算一个新的 TTL 时间戳,并在所有数据过期后删除该行。 默认值:0(禁用)。您可以参考 Cassandra 中表所有表属性的更多详细信息。 https://docs.datastax.com/en/cql-oss/3.3/cql/cql_reference/cqlCreateTable.html#tabProp__cqlTableDefaultTTL
要更改 default_time_to_live,您需要按照上面的链接提醒表属性。
【讨论】: