一. 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 索引的对比
- bucket index没有 state 的存储计算开销, 性能较好
- bucket index 无法扩 buckets, state index 则可以根据文件的大小动态扩容
- bucket index 不支持跨 partition 的变更(如果输入是 cdc 流则没有这个限制),state index 没有限制。
网友评论