hudi系列-KeyGenerator & 分区提取器

本文详细介绍了Hudi中的KeyGenerator和PartitionValueExtractor的使用,包括NonpartitionedAvroKeyGenerator、GlobalAvroDeleteKeyGenerator、SimpleAvroKeyGenerator等KeyGenerator的用法,以及HiveStylePartitionValueExtractor、SinglePartPartitionValueExtractor等PartitionValueExtractor的提取规则。内容涵盖Hudi键的生成逻辑,以及在Flink中的应用和分区提取策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

record key与hoodie key

hudi支持数据更新,在upsert语义下,需要用记录级别的主键来表示每行数据的唯一性。主键是由record key和分区路径共同构成的

  • record key:记录键,分区下唯一,当为非分区表时等同于主键,虽然在源码中声明了a recordKey that acts as primary key for a record
  • hoodie key:由record key + 分区路径组成,所以它是真正表示主键,无论是否分区表

在flink基于状态索引写过程中,基于record key进行哈稀,即同一个record key出现在不同分区,则表示分区值发生了修改(全局索引)
基于bucket写过程中,基于hoodie key进行哈稀,即同一个record key出现在不同分区,则表示是两条不同的记录(非全局索引,不支持分区值修改)

KeyGenerator

hudi中的KeyGenerator就是从行数据中提取record key值和分区值来生成HoodieKey对象。以插件化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值