在CFS文件上设置TTL(生存时间)

时间:2019-06-05 23:16:57

标签: apache-spark cassandra cassandra-3.0

我将文件存储在cassandra文件系统(CFS)中,但是文件数量会随着时间的推移而增加。需要自动删除较旧的文件。有没有办法在文件级别或键空间级别的cfs上设置TTL?

1 个答案:

答案 0 :(得分:0)

您只能定义TTL子句only per column or table level。设置时,需要考虑的一些事项是:

  • 一旦 TTL gc_grace_seconds 通过,就可以回收空间; gc_grace_seconds的默认值为10天。
  • 将释放空间的过程是 compact ,它具有不同的行为,具体取决于为表定义的压缩策略。您可以使用命令 nodetool compact 强制执行压缩; here提供了有关其执行的更多信息。
  • 一旦您使用 default_time_to_live 子句更改了表,则TTL将在指定后应用于新数据。对于现有数据,您将需要重新插入所有数据;可选地,您可以为ttl定义一个不同的值,但是您需要考虑到Cassandra具有仅追加的方法,因此磁盘使用量会暂时增加;因此,如果磁盘空间已经受到限制,则在应用TTL之前,您可能需要评估按比例扩展群集。