Hudi系列20: Bucket索引

一. Bucket 索引概述

从 0.11 开始支持
默认的flink 流式 写入使用 state 存储索引信息: primary key 到 fileID 的映射关系。 当数据量比较大的时候, state的存储开销可能成为瓶颈, bucket 索引通过固定的 hash 策略, 将相同 key 的数据分配到同一个 fileGroup 中,避免了索引的存储和查询开销。

1.1 WITH参数

名称 Required 默认值 说明
index.type false FLINK STATE 设置 BUCKET 开启 Bucket索引功能
hoodie.bucket.index.hash.fileID false 主键 可以设置成主键的子集
hoodie.bucket.index.num.buckets false 4 默认每个partition 的 bucket 数,当前设置后则不可再变更

1.2 和 state 索引的对比

  1. bucket index没有 state 的存储计算开销, 性能较好
  2. bucket index 无法扩 buckets, state index 则可以根据文件的大小动态扩容
  3. bucket index 不支持跨 partition 的变更(如果输入是 cdc 流则没有这个限制),state index 没有限制。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容