更新时间:2022-12-14 GMT+08:00

写入操作配置

表1 写入操作重要配置项

参数

描述

默认值

hoodie.datasource.write.table.name

指定写入的hudi表名。

hoodie.datasource.write.operation

写hudi表指定的操作类型,当前支持upsert、delete、insert、bulk_insert、bootstrap等方式。

  • upsert:更新插入混合操作
  • delete:删除操作
  • insert:插入操作
  • bulk_insert: 用于初始建表导入数据, 注意初始建表禁止使用upsert、insert方式
  • bootstrap:使用这种方式,可以直接将parquet表就地转成hudi表
  • insert_overwrite:对静态分区执行insert overwrite
  • insert_overwrite_table:动态分区执行insert overwrite,该操作并不会立刻删除全表做overwrite,会逻辑上重写hudi表的元数据,无用数据后续由hudi的clean机制清理。效率比bulk_insert + overwrite 高

upsert

hoodie.datasource.write.table.type

指定hudi表类型,一旦这个表类型被指定,后续禁止修改该参数,可选值MERGE_ON_READ。

COPY_ON_WRITE

hoodie.datasource.write.precombine.field

该值用于在写之前对具有相同的key的行进行合并去重。

ts

hoodie.datasource.write.payload.class

在更新过程中,该类用于提供方法将要更新的记录和更新的记录做合并,该实现可插拔,如要实现自己的合并逻辑,可自行编写。

org.apache.hudi.OverwriteWithLatestAvroPayload

hoodie.datasource.write.recordkey.field

用于指定hudi的主键,hudi表要求有唯一主键。

uuid

hoodie.datasource.write.partitionpath.field

用于指定分区键,该值配合hoodie.datasource.write.keygenerator.class使用可以满足不同的分区场景。

partitionpath

hoodie.datasource.write.hive_style_partitioning

用于指定分区方式是否和hive保持一致,建议该值设置为true。

false

hoodie.datasource.write.keygenerator.class

配合hoodie.datasource.write.partitionpath.field,hoodie.datasource.write.recordkey.field产生主键和分区方式。

org.apache.hudi.keygen.SimpleKeyGenerator