redshift计算引擎的介绍
核心定义
Amazon Redshift 是亚马逊 AWS 提供的一种完全托管的、云原生的大规模并行数据仓库服务。
简单来说,它是一个在云上专门用来对海量数据进行快速、复杂的分析查询的数据库系统。它不属于处理交易的传统数据库(如 MySQL、PostgreSQL),而是属于分析型数据库 或 OLAP(在线分析处理) 数据库。
核心概念与工作原理
要理解 Redshift,需要掌握以下几个关键点:
-
大规模并行处理 (MPP)
Redshift 的核心架构是 MPP。这意味着它不是一台强大的计算机,而是由许多台计算机(节点)组成的集群。当你执行一个查询时,Redshift 会将工作并行地分发到所有节点上执行,每个节点只处理自己那一小部分数据,最后将结果汇总返回。这种“分而治之”的策略使其处理海量数据的速度极快。 -
列式存储
-
传统行式数据库(如 MySQL):按行存储数据。读取一条记录时,会获取该行所有列的值,即使你只查询其中一列。
-
Redshift (列式数据库):按列存储数据。所有行的第一列存储在一起,第二列存储在一起,以此类推。
-
优势:
-
查询极快:分析查询通常只涉及少数几个列(例如,只查询“销售额”和“日期”)。列式存储只需读取所需的列,大幅减少了磁盘 I/O。
-
压缩效率高:同一列的数据类型相同,压缩算法可以更高效地压缩数据,通常压缩比可达 3-5 倍。这意味着存储成本更低,且需要从磁盘读取的数据量更少。
-
-
-
完全托管
AWS 负责所有繁琐的管理工作,包括:-
硬件配置和 provisioning
-
软件安装和打补丁
-
设置、配置和扩展集群
-
提供自动备份和时间点恢复功能
-
监控集群健康和性能
用户只需要专注于加载数据和执行查询,无需担心底层基础设施。
-
-
基于 SQL
Redshift 使用与 PostgreSQL 高度兼容的 SQL 方言。这意味着你可以使用熟悉的 SQL 工具、客户端库(如psycopg2for Python,JDBCfor Java)和 SQL 语法来连接和查询 Redshift,学习成本较低。
与传统数据库和大数据框架的对比
| 特性 | Amazon Redshift | 传统事务数据库 (MySQL, PostgreSQL) | Hadoop/Spark |
|---|---|---|---|
| 工作负载 | OLAP:复杂分析、报表、大规模聚合 | OLTP:高频、短时的事务处理(插入、更新、删除) | 灵活:可处理 ETL、分析、机器学习等多种任务 |
| 数据规模 | PB 级别 | TB 级别 | PB 级别 |
| 数据模型 | 高度范式化或星型/雪花模式(利于分析) | 高度范式化(减少冗余,保证一致性) | 灵活(结构化和非结构化) |
| 典型操作 | SELECT, JOIN, GROUP BY(读多) | INSERT, UPDATE, DELETE(写多读多) | Map, Reduce, 分布式处理 |
| 架构 | 大规模并行处理 (MPP) + 列式存储 | 单节点或简单主从复制 | 分布式存储 (HDFS) + 分布式计算 (MapReduce/Spark) |
主要特点和优势
-
极高的性能:MPP 和列式存储架构为其分析查询提供了无与伦比的速度。
-
可扩展性:可以轻松地通过增加节点来扩展集群性能,以应对数据增长和查询需求。
-
成本效益:采用按需付费模式,无需前期硬件投资。高数据压缩率也降低了存储成本。
-
与 AWS 生态无缝集成:
-
数据注入:可以非常方便地从 S3(数据湖)、DynamoDB、RDS 等服务加载数据。
-
数据分析:可与 QuickSight(BI 工具)、SageMaker(机器学习)等服务集成。
-
-
安全性:提供网络隔离、静态和传输中数据加密、SSL 加密连接等企业级安全功能。
典型工作流程
-
创建集群:在 AWS 控制台上配置一个 Redshift 集群,选择节点类型和数量。
-
设计模式:设计表结构,通常使用星型模式或雪花模式(包含事实表和维度表)。
-
加载数据:从 S3、RDS 或其他源将数据批量或持续地加载到 Redshift 表中。常用命令是
COPY,它能高速并行地从 S3 加载数据。 -
分析查询:使用 SQL 客户端、BI 工具(如 Tableau, Looker)或应用程序执行复杂的分析查询。
-
可视化:将查询结果连接到 BI 工具生成报表和仪表盘。
总结
Amazon Redshift 是一个为云时代构建的、专用于超大规模数据分析的利器。 它非常适合企业需要对数 TB 到 PB 级别的数据进行快速、复杂的查询、生成商业智能报表和进行数据挖掘的场景。它通过并行化和列式存储技术,将数据仓库的性能和可扩展性提升到了一个新的水平,同时完全托管的模式极大地减轻了运维负担。
更多推荐



所有评论(0)