在deltaLake表上配置TTL

问题描述

我正在寻找一种将ttl(生存时间)添加到deltaLake表中的方法,以便该表中的任何记录在固定跨度后自动消失,我还没有发现任何具体的东西,任何人知道是否有解决方法吗?

解决方法

不幸的是,Delta Lake表中没有称为TTL(生存时间)的配置。

通过在表上运行vacuum命令,可以删除不再由Delta表引用且早于保留阈值的文件。真空不会自动触发。这些文件的默认保留期限为7天。

Delta Lake为读取提供快照隔离,这意味着即使其他用户或作业正在查询表,也可以安全地运行OPTIMIZE。最终,您应该清理旧快照。

您可以通过运行VACUUM命令来做到这一点:

VACUUM events

您可以使用RETAIN HOURS选项来控制最新保留快照的时间:

VACUUM events RETAIN 24 HOURS

有关有效使用VACUUM的详细信息,请参阅Vacuum