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。Bueckt索引时不配置该参数。 |
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 |
表名必须满足Hive格式要求
- 表名必须以字母或下划线开头,不能以数字开头。
- 表名只能包含字母、数字、下划线。
- 表名长度不能超过128个字符。
- 表名中不能包含空格和特殊字符,如冒号、分号、斜杠等。
- 表名不区分大小写,但建议使用小写字母。
- Hive保留关键字不能作为表名,如select、from、where等。
【示例】
my_table、customer_info、sales_data