--- title: "Distribution Key" type: concept tags: - Data-Engineering - Database - AWS-Redshift - Performance-Optimization last_updated: 2026-04-14 --- ## Definition Distribution Key(分布键,Dist Key)决定数据在分布式数据仓库集群各计算节点间的分布方式。合理的分布键选择是避免数据倾斜(Data Skew)和最小化跨节点数据传输(Data Shuffling)的关键。 ## Distribution Strategies ### 1. KEY Distribution(关键分布) - 按特定列的哈希值分布数据 - 同一键值的数据会落在同一节点 - 适用场景:事实表与维度表基于外键的关联(Colocation Join) ### 2. ALL Distribution(全分布) - 将小表完整复制到所有节点 - 消除跨节点传输,但增加存储成本 - 适用场景:小维度表(< 10MB) ### 3. EVEN Distribution(均匀分布) - 轮询方式均匀分布数据 - 默认策略,适用于无明显热点的情况 - 适用场景:无法确定最佳分布键时的兜底策略 ## Key Trade-offs | 维度 | KEY | ALL | EVEN | |------|-----|-----|------| | 存储成本 | 低 | 高 | 低 | | Join 性能 | 高(co-located) | 高 | 低(可能 shuffle) | | 数据倾斜风险 | 中(取决于键值分布) | 无 | 无 | | 适用表规模 | 大表 | 小表 | 通用 | ## Related Concepts - [[Sort-Key]]:节点内数据排序,与 Distribution Key 共同构成 Redshift 性能优化双核心 - [[Data-Skew]]:分布键选择不当导致的数据倾斜问题 - [[MPP]]:分布键决定数据局部性,影响 MPP 并行效率 - [[Amazon-Redshift]]:Distribution Key 是 Redshift 架构的核心概念 ## Sources - [[ctp-topic-68-introduction-to-redshift]]:Distribution Key 在 Redshift 集群数据分布中的作用