【发布时间】:2021-07-02 02:04:18
【问题描述】:
我是 Apache Hudi 的新手。
在 Apache Hudi 中,合并读取表类型异步合并增量数据。 查询数据或满足合并配置(interval or unmerged commit count)时合并。
但是Hudi没有自己的后台进程,否则Hive。 Hudi如何合并数据?
谢谢。
【问题讨论】:
标签: data-lake apache-hudi
我是 Apache Hudi 的新手。
在 Apache Hudi 中,合并读取表类型异步合并增量数据。 查询数据或满足合并配置(interval or unmerged commit count)时合并。
但是Hudi没有自己的后台进程,否则Hive。 Hudi如何合并数据?
谢谢。
【问题讨论】:
标签: data-lake apache-hudi
您可以在编写时使用以下 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 执行合并操作
如果有帮助请告诉我。
【讨论】:
max.delta.commits 之后自动为您处理。这意味着每 10 次提交后 - hudi 会自动运行一个压缩,将 delta 日志(avro)与基本文件(parquet)合并并生成新的柱状(parquet)文件。所以你不需要做任何事情,除了在你的工作中有这个配置