前言
Apache Hudi 是一个分布式数据湖,用于实时处理大规模数据,并具有良好的扩展性和容错性。在使用 Hudi 进行数据管理和处理时,需要根据具体的场景和要求进行各种参数设置。下面是一些常见的 Hudi 参数及其含义:
#示例
Hoodie Table Parameters
hoodie.datasource.write.table.name: Hudi 表的名称。
hoodie.datasource.write.recordkey.field: 记录键的字段名。
hoodie.datasource.write.partitionpath.field: 分区键的字段名。
hoodie.datasource.write.precombine.field: 前置合并键的字段名。
hoodie.datasource.write.keygenerator.class: 用于生成记录键和分区键的类。
hoodie.datasource.write.operation: 写入操作类型,包括 insert、upsert 和 bulk_insert 等。
hoodie.datasource.write.payload.class: 存储负载数据的类。
hoodie.datasource.write.storage.type: 存储类型,包括 COPY_ON_WRITE 和 MERGE_ON_READ。
hoodie.datasource.write.hive_style_partitioning: 是否使用 Hive 分区格式。
hoodie.datasource.write.hive_partition_fields: Hive 分区字段列表。
hoodie.datasource.hive_sync.enable: 是否启用与 Hive 的同步功能。
hoodie.datasource.hive_sync.database: Hive 数据库名称。
hoodie.datasource.hive_sync.table: Hive 表名称。
hoodie.datasource.hive_sync.partition_fields: Hive 分区字段列表。
Compaction Parameters
hoodie.cleaner.policy: 清理策略,包括 KEEP_LATEST_COMMITS、KEEP_LATEST_FILE_VERSIONS 和 KEEP_LATEST_FILE_VERSIONS_AND_DELETE_OTHERS。
hoodie.cleaner.commits.retained: 保留的提交数。
hoodie.table.max.commits: 最大提交数。
hoodie.table.compaction.delta_seconds: 基于时间的增量压缩间隔。
hoodie.table.compaction.delta_commits: 基于提交数的增量压缩间隔。
hoodie.table.compaction.strategy: 压缩策略,包括 org.apache.hudi.DefaultCompactionStrategy、org.apache.hudi.AvroCompactionStrategy 和 org.apache.hudi.timeline.service.FIFOCleanBasedCompactionStrategy 等。
hoodie.table.compaction.inline: 是否启用内联压缩。
Tuning Parameters
hoodie.memory.per.write.row: 每个写操作的内存消耗。
hoodie.bulkinsert.shuffle.parallelism: Bulk Insert 操作的并行度。
hoodie.upsert.shuffle.parallelism: Upsert 操作的并行度。
hoodie.insert.shuffle.parallelism: Insert 操作的并行度。
hoodie.delete.shuffle.parallelism: Delete 操作的并行度。
hoodie.copyonwrite.maxmemory.allowed: Copy-On-Write 操作的最大内存消耗。
hoodie.copyonwrite.recordsPerPartitionThreshold: Copy-On-Write 操作的每个分区的最大记录数。
hoodie.common.table.type: Hudi 表的类型,包括 COPY_ON_WRITE 和 MERGE_ON_READ。
hoodie.common.table.basePath: Hudi 表的基础路径。
需要注意的是,在实际使用中,还需要根据具体的场景和要求进行各种参数设置,并进行必要的调整和优化。