更新时间:2024-05-28 GMT+08:00

Flink流式写Hudi表规则

Flink流式写Hudi表参数规范

Flink流式写Hudi表参数规范如下表所示。

表1 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