Flink流式写Hudi表规则
Flink流式写Hudi表参数规范
Flink流式写Hudi表参数规范如下表所示。
参数名称 | 是否必填 | 参数描述 | 建议值 |
|---|---|---|---|
Connector | 必填 | 读取表类型。 | hudi |
Path | 必填 | 表存储的路径。 | 根据实际填写 |
hoodie.datasource.write.recordkey.field | 必填 | 表的主键。 | 根据实际填写 |
write.precombine.field | 必填 | 数据合并字段。 | 根据实际填写 |
write.tasks | 选填 | 写Hudi表task并行度,默认值为4。 | 4 |
index.bootstrap.enabled | 选填 | Flink采用的是内存索引,需要将数据的主键缓存到内存中,保证目标表的数据唯一,因此需要配置该值,否则会导致数据重复。默认值为FALSE。Bucket索引时不配置该参数。 | TRUE |
write.index_bootstrap.tasks | 选填 | index.bootstrap.enabled开启后有效,增加任务数提升启动速度。 | 4 |
index.state.ttl | 选填 | 索引数据保存时长,默认值为0,表示永久不失效,可根据业务调整。 | 0 |
compaction.delta_commits | 选填 | MOR表Compaction计划触发条件。 | 200 |
compaction.async.enabled | 必填 | 是否开启在线压缩。将compaction操作转移到sparksql运行,提升写性能。 | FALSE |
hive_sync.enable | 选填 | 是否向Hive同步表信息。 | True |
hive_sync.metastore.uris | 选填 | Hivemeta URI信息。 | 根据实际填写 |
hive_sync.jdbc_url | 选填 | Hive JDBC连接。 | 根据实际填写 |
hive_sync.table | 选填 | Hive的表名。 | 根据实际填写 |
hive_sync.db | 选填 | Hive的数据库名,默认为default。 | 根据实际填写 |
hive_sync.support_timestamp | 选填 | 是否支持时间戳。 | True |
changelog.enabled | 选填 | 是否写入changelog消息。默认值为false,CDC场景填写为true。 | false |
hoodie.datasource.write.keygenerator.type | 选填 | Hudi表主键生成类型。当表由SparkSql创建或存在Spark和Flink混合读写同一张表时,参数值必须为“COMPLEX”。 | COMPLEX |
表名必须满足Hive格式要求
- 表名必须以字母或下划线开头,不能以数字开头。
- 表名只能包含字母、数字、下划线。
- 表名长度不能超过128个字符。
- 表名中不能包含空格和特殊字符,如冒号、分号、斜杠等。
- 表名不区分大小写,但建议使用小写字母。
- Hive保留关键字不能作为表名,如select、from、where等。
【示例】表名:
my_table、customer_info、sales_data

