Amazon Redshift 数据仓库是一个企业级的关系数据库查询和管理系统。
特点:
- 支持与多种类型的应用程序建立客户端连接
- 多阶段操作。(检索、比较、计算)
- MPP(大规模并行处理), 列式存储,
架构:
- 基于 PostgreSQL 8.0.2 , 通过 PostgreSQL JDBC 和 ODBC 驱动程序进行通信。
- 以集群形式存在。
- 群集由一个或多个组成 compute nodes 。如果群集配置了两个或以上计算节点,则需要 leader node 协调 compute 节点并处理外部通信。 客户端仅直接与 Leader 节点交互。 compute 节点对于外部是透明的。
- Leader 节点管理与客户端的通信以及与计算节点之间的所有通信。
作用: 分析和制定 执行计划。 当执行复杂查询时, 会根据执行计划, Leader 节点编译、将编译后的内容分发给计算节点,并指定每个计算节点执行。- 领导节点仅在查询引用计算节点上存储的表时,才将 SQL 语句分发给计算节点。所有其他查询仅在领导节点上运行。
- 计算节点执行编译后的代码,并将中间结果发送回领导节点以便最终聚合。
每个计算节点均拥有自己的专用 CPU、内存和连接的磁盘存储,这都由节点类型决定。 - 一个计算节点分为多个切片。将为每个切片分配节点的内存和磁盘空间的一部分,从而处理分配给节点的工作负载的一部分。
*领导节点管理向切片分发数据的工作,并将任何查询或其他数据库操作的工作负载分配给切片。然后,切片将并行工作以完成操作。 - 领导节点和计算节点之间 为 极快的私有网络。计算节点在客户端应用程序绝对无法直接访问的独立的、隔离网络上运行。
性能:
- MPP
- 列式存储
- 数据压缩
- 查询优化
- 在领导节点的内存中缓存特定查询类型的结果
在满足以下所有条件时,将为新查询使用缓存的结果:
The user submitting the query has access privilege to the objects used in the query.
The table or views in the query haven’t been modified.
The query doesn’t use a function that must be evaluated each time it’s run, such as GETDATE.
The query doesn’t reference Amazon Redshift Spectrum external tables.
Configuration parameters that might affect query results are unchanged.
The query syntactically matches the cached query. - 领导节点分发完全优化的编译的代码。
编译后的代码将跨同一个集群中的多个会话进行缓存和共享
列式存储
每个数据块中存储相同列的数据。
并且保存相同类型的数据,数据块数据可以使用专门针对列数据类型选择的压缩方案,进一步减少磁盘空间和I/O.
数据块 1MB
Workload management
管理工作负载中的优先级,以便时间较短的、快速运行的查询在队列中不会被长时间运行的查询阻碍。
在运行查询时,WLM 会根据用户的用户组或通过将队列配置中列出的查询组与用户在运行时设置的查询组标签匹配来将查询分配给队列。
使用A配置一个队列 concurrency level 五个,最多可以同时运行五个查询。 最多 8 个队列。每个队列可配置最高 50 的并发级别。所有用户定义的队列(不包括超级用户队列)的最高并发级别总数为 50。
其他 AWS 服务集成
- S3
- DynamoDB
- DMS