【问题标题】:Delta Table optimize/vacuumDelta 表优化/真空
【发布时间】:2022-01-22 18:00:47
【问题描述】:

我有文件由 kubernetes 作业(在 prem 上运行)以 Delta 表的形式写入 adls gen2 容器。(Kubernetes 上的 spark,这有助于我在 adls 上编写 delta 表)

每小时流动的文件数量巨大(小文件+大文件),我们想要优化/清理增量表。

是否有一种自动方式/设置可以自动优化和清理增量表。

我已经阅读了有关自动优化的 article,但仍不清楚这是否对我有帮助。

谢谢, 拉胡尔·基肖尔

【问题讨论】:

    标签: apache-spark delta-lake


    【解决方案1】:

    链接的文章引用了 Databricks 上 Delta 的功能,它会在写入数据时尝试生成更大的文件 - 这与 OPTIMIZE/VACUUM 的自动执行不同。

    即使在 Databricks 上,您也需要显式运行 VACUUM - 只需创建一个小型 Spark 作业,该作业将在选定的表上执行 VACUUM - 只需按照 documentation 进行正确的语法和设置即可。

    请注意,目前 OPTIMIZE 仅在 Databricks 上可用,如果您使用 OSS Delta,您可以通过读取全部或部分数据来模拟它,重新分区以获得最佳文件大小并将其写回 overwrite模式。 (当你只优化部分数据时要小心——使用replaceWhere选项,如documentation所示)

    2022 年 2 月更新:针对 OSS Delta Lake 的 OPTIMIZE 位于 roadmap for first half of the year

    【讨论】:

      猜你喜欢
      • 2021-12-05
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      相关资源
      最近更新 更多