1. 表参数
1.1 Memory
参数名称 | 描述 | 默认值 | 备注 |
---|---|---|---|
write.task.max.size | 每个write task使用的最大内存,超过则对数据进行flush | 1024MB | write buffer使用的内存 = write.task.max.size - compaction.max_memory,当write buffer总共使用的内存超过限制,则将最大的buffer进行flush |
write.batch.size | 数据写入batch的大小 | 64MB | 推荐使用默认配置 |
write.log_block.size | Hudi的log writer将数据进行缓存,等达到该参数限制,才将数据flush到disk形成LogBlock | 128MB | 推荐使用默认配置 |
write.merge.max_memory | COW类型的表,进行incremental data和data file能使用的最大heap size | 100MB | 推荐使用默认配置 |
compaction.max_memory | 每个write task进行compaction能使用的最大heap size | 100MB | 如果是online compaction,且资源充足,可以调大该值,如1024MB |
1.2 Parallelism
参数名称 | 描述 | 默认值 | 备注 |
---|---|---|---|
write.tasks | write task的并行度,每一个write task写入1~N个顺序buckets | 4 | 增加该值,对小文件的数据没有影响 |
write.bucket_assign.tasks | bucket assigner operators的并行度 | Flink的parallelism.default参数 | 增加该值,会增加bucket的数量,所以也会增加小文件的数量 |
write.index_boostrap.tasks | index bootstrap的并行度 | Flink的parallelism.default参数 | |
read.tasks | read operators的并行度 | 4 | |
compaction.tasks | online compaction的并行度 | 4 | 推荐使用offline compaction |
1.3 Compaction
只适用于online compaction
参数名称 | 描述 | 默认值 | 备注 |
---|---|---|---|
compaction.schedule.enabled | 是否定期生成compaction plan | true | 即使compaction.async.enabled = false,也推荐开启该值 |
compaction.async.enabled | MOR类型表默认开启Async Compaction | true | false表示关闭online compaction |
compaction.trigger.strategy | 触发compaction的Strategy | num_commits | 可选参数值:1. num_commits:delta commits数量达到多少;2. time_elapsed:上次compaction过后多少秒;3. num_and_time:同时满足num_commits和time_elapsed;4. num_or_time:满足num_commits或time_elapsed |
compaction.delta_commits | 5 | ||
compaction.delta_seconds | 3600 | ||
compaction.target_io | 每个compaction读写合计的目标IO,默认500GB | 512000 |