分桶
在 StarRocks 中选择 Hash Bucketing 和 Random Bucketing 的简明指南,包括它们的机制、权衡和推荐使用场景。
快速对比
| 方面 | Hash Bucketing | Random Bucketing |
|---|---|---|
| 示例 | DISTRIBUTED BY HASH(id) BUCKETS 16 | DISTRIBUTED BY RANDOM |
| 键声明 | 需要 HASH(col1, …) | 无 – 行按轮询分配 |
| 省略时的初始桶数 | 在 CREATE 时自动选择,然后固定 | 在 CREATE 时自动选择;如果设置了 bucket_size,可以增长 |
| tablet 拆分/缩减 | 手动 ALTER … BUCKETS | 自动拆分 ⇢ 仅增长 (≥ v3.2) |
| 抗倾斜性 | 取决于键的基数 | 高 – 设计上均匀 |
| 分桶裁剪 | ✅ (过滤、连接) | 🚫 (全量 tablet 扫描) |
| Colocate Join | ✅ | 🚫 |
| 本地聚合/Shuffle Join | ✅ | 🚫 |
| 支持的表模型 | 所有 | 仅 Duplicate Key(明细)表 |