【问题标题】:How Can Apache Hudi merge delta asynchronously?Apache Hudi 如何异步合并增量?
【发布时间】:2021-07-02 02:04:18
【问题描述】:

我是 Apache Hudi 的新手。

在 Apache Hudi 中,合并读取表类型异步合并增量数据。 查询数据或满足合并配置(interval or unmerged commit count)时合并。

但是Hudi没有自己的后台进程,否则Hive。 Hudi如何合并数据?

谢谢。

【问题讨论】:

    标签: data-lake apache-hudi


    【解决方案1】:

    您可以在编写时使用以下 hudi 选项:

    hudi_options = {
      "hoodie.table.name": "<YOUR TABLE NAME>",
      "hoodie.datasource.write.table.type": "MERGE_ON_READ",
      "hoodie.datasource.write.recordkey.field": "<YOUR UNIQUE KEY>",
      "hoodie.datasource.write.precombine.field": "<YOUR PRECOMBINE FIELD>",
      "hoodie.datasource.write.hive_style_partitioning": "true",
      "hoodie.index.type": "BLOOM",
      "hoodie.bloom.index.filter.type": "DYNAMIC_V0",
      "hoodie.compact.inline": "true",
      "hoodie.compact.inline.max.delta.commits": 10 <YOU CAN PROVIDE SEP VAL BASED ON YOUR NEED>
    }
    inputDF.write.format('org.apache.hudi').option('hoodie.datasource.write.operation', 'upsert').options(**hudi_options).mode('append').save('<YOUR OUTPUTPATH>')
    

    hoodie.compact.inline'hoodie.compact.inline.max.delta.commits' 帮助 hudi 执行合并。一旦 hoodie.compact.inline.max.delta.commits 中提到的值达到 hudi 执行合并操作

    如果有帮助请告诉我。

    【讨论】:

    • 但是什么进程可以完成这项工作?胡迪写完之后。
    • @SHRIN Hudi 在每个max.delta.commits 之后自动为您处理。这意味着每 10 次提交后 - hudi 会自动运行一个压缩,将 delta 日志(avro)与基本文件(parquet)合并并生成新的柱状(parquet)文件。所以你不需要做任何事情,除了在你的工作中有这个配置
    • @SHRIN 请让我知道它是否有效以及回答您的问题。
    猜你喜欢
    • 1970-01-01
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2022-07-26
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多