【问题标题】:Delta Lake: Partition by version (Azure Databricks)Delta Lake:按版本分区 (Azure Databricks)
【发布时间】:2022-12-18 07:29:07
【问题描述】:

我的一个增量表正在被外部服务使用。然而,这里的主要要求是良好的性能,而该工具在读取增量格式时的性能确实很差。因此,我们目前所做的是使用 Vacuum 命令,以便仅在增量表中保留最新版本的数据。该工具会忽略增量日志,否则它会立即读取该表的所有现有版本。然后,它从给定目录中读取镶木地板。

由于并发问题,以及在具有大量分区的表上产生的高成本,我不想在这里使用 Vacuum。假设我的 delta 表当前在 A 列和 B 列上分区。有没有办法强制 delta 将对应于不同版本的表的 parquet 文件写入单独的目录?

这样我就可以有一条路径,我知道我只有属于最新版本的增量表的文件? IE

delta_table/A/B/version_1/

-> 创建新版本 ->

增量表/A/B/

version_1/

version_2/

【问题讨论】:

    标签: azure databricks delta-lake


    【解决方案1】:

    查看delta-rs

    您可以使用pip install deltalake 安装它。

    以下是获取 Delta 表中所有最新文件的方法:

    dt = DeltaTable("resources/delta/1")
    filenames = ["resources/delta/1/" + f for f in dt.files()]
    

    delta-rs 没有 Spark 依赖项,因此它是可移植且轻量级的。

    【讨论】:

      猜你喜欢
      • 2022-10-05
      • 2020-11-18
      • 2020-11-17
      • 2022-11-05
      • 2020-03-09
      • 2023-03-30
      • 2021-12-04
      • 2022-01-28
      • 2021-10-20
      相关资源
      最近更新 更多