中间件速查手册
数据仓库与 OLAPPartition / Bucket

分区分桶 是什么?

先按时间分区,再按哈希分桶,决定数据怎么切

类比:先按月份分柜子,再按编号分格子

两层各管什么

分区(Partition)按时间切,主要为了冷数据管理和分区裁剪;分桶(Bucket)按哈希切,主要为了把数据均匀打散到多个 BE,让查询能并行。

分桶键怎么选

选错会直接导致数据倾斜,一个 BE 忙死其他闲着。

  • 用高基数、分布均匀的字段,比如 user_id、order_id
  • 不要用性别、状态这种低基数字段
  • 桶数建议是 BE 数量的整数倍,方便均匀分布
  • 桶数一旦确定,后期改要重建数据,建表时要估算好

常见规模

单分区数据量 1~10GB 比较合适,桶数按“单桶 1GB 左右”估算。数据量不大时不必分桶过多,否则小文件和小 Tablet 反而拖慢查询。

它出现在这些中间件里

相关问题

相关概念