【问题标题】:How to actually delete files in Iceberg如何在 Iceberg 中实际删除文件
【发布时间】:2022-11-01 15:32:41
【问题描述】:

我知道在 Apache Iceberg 中我可以设置快照的数量和年龄限制,并且从表中“删除”数据不会导致底层数据删除,它只是屏蔽或删除跟踪信息。

但是,我想实际删除删除时的基础文件。我知道这会使时间旅行不一致,但这仍然是业务需求。

https://iceberg.apache.org/docs/latest/configuration/

据我所知,我必须独立跟踪和管理每个文件的物理生命周期。我错过了什么吗?

【问题讨论】:

  • 这似乎不是编程问题。我猜serverfault.com 会是一个更好的提问地方。

标签: iceberg


【解决方案1】:

如果您不关心表历史记录(或时间旅行),您可以在每次删除后简单地调用expire_snapshots 过程。

【讨论】:

    【解决方案2】:

    你得到的是许多冰山用户的常见问题。 我们经常需要一个异步任务来删除和过期快照数据。 如果你使用 spark,你可以使用https://iceberg.apache.org/docs/latest/spark-procedures/#expire_snapshots,正如 shay 所说。 您也可以使用 iceberg https://iceberg.apache.org/docs/latest/api/ 提供的 java api 来执行此操作。 为每个表启动一个任务很难管理。表通常有不同的 TTL。在这种情况下,您可以将自定义配置添加到表中。手动扫描所有冰山表,然后根据这些配置决定是否删除过期的快照和数据。

    【讨论】:

      猜你喜欢
      • 2015-10-19
      • 2015-10-26
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 2018-08-11
      相关资源
      最近更新 更多