更新时间:2026-09-14 GMT+08:00

配置Hudi目的端参数

由于MRS Spark JDBC Server不支持拦截已提交的SQL,当Hudi连接采用JDBC模式时,作业停止后已提交的SQL可能无法被取消。

表1 MRS Hudi作为目的端时的作业参数

类别

配置项

配置说明

推荐配置

基本参数

数据库名称

输入或选择写入数据的数据库名称。单击输入框后面的按钮可进入数据库选择界面。

dbadmin

表名

单击输入框后面的按钮可进入表的选择界面。

该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步

说明:

如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。

cdm

自动建表模式

是否自动创建Hudi表。

  • 一键建表:通过自动建表方式自动创建目的端表。
  • 不存在时创建:当目的端的数据库没有“表名”参数中指定的表时,CDM会自动创建该表。如果“表名”参数配置的表已存在,则不创建,数据写入到已存在的表中。

不存在时创建

写入模式

数据写入模式。

  • TRUNCATE+LOAD:TRUNCATE方式会在导入前执行TRUNCATE语句清空填写的分区数据,再进行LOAD写入数据。
  • LOAD:写入前不做任何处理。
  • INSERT_OVERWRITE:对数据进行覆盖写入。

LOAD

分区

写入模式为TRUNCATE+LOAD或INSERT_OVERWRITE时显示该参数。

分区信息,表为分区表的时候,写数据的时候,可以选择需要写入的分区数据。

year=2020,location=sun

运行队列

指定请求参数--queue的值,决定spark任务提交到哪个队列运行。

default

高级属性

sql执行参数

写hudi时,支持spark参数配置,此处填入的参数将会在请求体中以"--conf"参数形式添加,同时也支持Spark Driver、Executor相关配置参数。

--driver-memory=2G,--executor-memory=2G,--driver-cores=1,--executor-cores=1,--num-executors=2

入库时间字段

将一个字段标记为入库时间字段,自动建表时将此字段自动加到建表语句中,写入Hudi时将把此字段的值替换为当前时间。所选字段必须为timestamp类型。

-

写入参数

在执行Spark SQL往hudi插入数据前,通过set语法设置参数,从而控制spark的写入行为。

  • hoodie.datasource.write.operation:指定写入 Hudi 表时的操作类型,决定了数据如何被写入和合并,默认值: insert。
    说明:

    hoodie.datasource.write.operation参数取值说明:

    • upsert(推荐配置):增量数据同步(CDC)。

      根据主键(record key)判断:存在则更新,不存在则插入。最常用的操作模式,适用于CDC同步、增量数据合并等场景。

    • insert:确定无重复的批量插入。

      仅插入,不执行更新。如果主键已存在,行为取决于 hoodie.insert.dup.policy 配置(默认为 FAIL,即报错)。适用于确定无重复数据的场景,性能优于 upsert。

    • bulk_insert:初始全量数据加载。

      批量导入,绕过 Hudi 的索引机制,直接以批量方式写入数据。适用于初始全量数据加载,速度最快,但不保证去重。

    • delete:删除特定记录。

      根据主键删除已有记录。写入的数据中只需包含主键字段即可。

    • delete_partitions:按分区删除数据。

      按分区粒度删除数据。删除指定分区下的所有记录,无需指定具体主键。

    • insert_overwrite:按分区全量覆盖刷新。

      以分区为单位覆盖写入。将指定分区的数据整体替换为新数据(先清空该分区再写入),适用于全量覆盖某个分区的场景。

    • insert_overwrite_table:全表重建。

      以表为单位覆盖写入。先清空整张表再写入新数据,适用于全量重建表的场景。

  • hoodie.combine.before.upsert:控制 upsert 操作前是否对输入数据进行预合并(precombine),默认值: true。
    说明:

    hoodie.combine.before.upsert参数取值说明:

    • true(推荐配置):数据源可能包含同批次重复主键。

      在执行upsert写入之前,Hudi会对输入批次中相同record key的记录进行合并(去重),只保留排序值最大的那条记录。

    • false:数据源已保证单批次内主键唯一,节省预合并开销。

      跳过预合并步骤,直接将所有记录送入upsert流程。

hoodie.combine.before.upsert:true

Compaction模式

配置Compaction的执行方式,此参数仅对MOR表生效。

  • 异步Compaction:数据写入Hudi后仅生成Compaction执行计划,不执行Clean与Archive,需要配合异步Compaction脚本使用。
  • 同步Compaction:数据写入Hudi表后立即执行Compaction、Clean、Archive,Compaction过程会增加作业执行时间。默认5次提交触发Compaction,默认最少保留20个deltacommit,最多保留30个,默认clean后保留10个deltacommit对应的数据文件。

异步Compaction