Amazon Redshift
PB 级云数据仓库服务,通过列式存储和大规模并行处理(MPP)实现高速分析查询
概述
Amazon Redshift 是一项全托管的云数据仓库服务,通过列式存储和大规模并行处理(MPP)架构实现 PB 级数据的高速分析查询。支持标准 SQL,可与现有 BI 工具和 ETL 工具无缝集成。Redshift Serverless 提供无需管理集群容量的选项,按实际计算使用量付费。Redshift Spectrum 可直接查询 S3 上的数据,无需加载到 Redshift 中。
集群架构与节点类型选择
Redshift 集群由领导节点和计算节点组成。领导节点接收查询、制定执行计划并协调计算节点。计算节点存储数据并执行查询。节点类型有 RA3(存储与计算分离,推荐)和 DC2(本地 SSD,适合小规模)。RA3 节点将数据存储在 Redshift Managed Storage(基于 S3)中,热数据缓存在本地 SSD,实现存储和计算的独立扩展。集群大小调整(Resize)支持弹性调整(数分钟内增减节点)和经典调整(数据重分布,数小时)。并发扩展功能在查询高峰时自动添加临时集群处理溢出查询,每天提供 1 小时免费额度。
数据加载与查询优化
数据加载推荐使用 COPY 命令从 S3 并行加载,比逐行 INSERT 快数十倍。分布键(DISTKEY)和排序键(SORTKEY)的设计对查询性能影响巨大。分布键决定数据在节点间的分布方式——频繁 JOIN 的列设为分布键可减少节点间数据移动。排序键决定磁盘上的数据排列顺序——WHERE 子句常用的列设为排序键可跳过不相关的数据块。物化视图预计算复杂查询结果,仪表板等重复查询场景下大幅提升响应速度。查询监控规则(WLM)按队列管理查询优先级和资源分配,防止长时间运行的查询影响短查询。
Serverless 与数据共享
Redshift Serverless 无需预置集群,按 RPU(Redshift Processing Unit)秒计费。适合查询模式不可预测或间歇性分析的场景。基础容量设置 RPU 上限控制成本,空闲时不产生费用。数据共享功能允许在不同 Redshift 集群或 Serverless 工作组间共享实时数据,无需复制。生产集群的数据可实时共享给分析团队的集群,实现读写分离。跨账户数据共享通过 AWS Data Exchange 实现数据的商业化。与 S3 的零 ETL 集成(Auto-copy)自动检测 S3 新文件并加载,简化数据管道。