GaussDB DWS 详解
文章目录
- GaussDB DWS 详解
- 一、简介
- 二、DWS的分布式架构
- 架构概述
- 关键组件
- 三、分布式查询
- 数据查询流程
- SQL执行的示例
批注:本文引鉴了@Forlogen博主的一些内容,并加以补充,以供学习了解。
GaussDB DWS 详解
一、简介
DWS(Data Warehouse Service)是一种基于公有云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。
GaussDB(DWS)是系统的数据库
部分,通过JDBC/ODBC接口与应用层交互,提供数据服务,通过Plugin API和Manager模块进行交互,Manager模块负责系统管理和安全管理,管理层通过REST,snmp,Syslog与应用层进行通信。
二、DWS的分布式架构
架构概述
Shared-Nothing
架构是一种分布式系统架构。其核心观点是每个节点(机器)都有自己独立的硬件资源,节点之间没有共享硬件组件。每台机器运行一个独立的GaussDB实例,通过大规模集群通讯网络互联,组成一个整体的数据集群。对用户而言,整个集群表现为一个统一的数据库系统。
关键组件
-
OM(运维管理):
- 功能:提供日常运维和配置管理,包括扩容和升级。
-
CM(集群管理):
- 功能:负责集群管理和监控各单元物理资源使用情况,以及负责单节点的故障管理。
-
GTM(全局事务管理):
- 功能:管理全局事务和多版本并发控制(MVCC)
-
WLM(工作负载管理):
- 功能:资源隔离和多租户的划分
-
Coordinator(协调器):
- 功能:承接上层应用链接,处理请求分发、调度、结果返回、SQL解析和优化。
- 位置:协调器节点是分布式的,可以有多个实例(Coordinator-1,Coordinator-2,…,Coordinator-n),每个实例负责一部分请求。
-
Data Node(数据节点):
- 功能:负责数据存储和执行,包括数据分布和多种形式的存储。
- 位置:每个数据节点连接到本地磁盘(Local-Disk),实现数据存储的无共享架构。图中展示了多个数据节点(Data Node-1,Data Node-2,…,Data Node-n)。
-
GDS Loader:
- 功能:做数据入库
三、分布式查询
数据查询流程
具体查询流程如下:
- 用户通过应用程序发出查询本地数据的SQL请求到Coordinator
- Coordinator接收用户的SQL请求,分配服务进程,向GTM请求分配全局事务信息
- GTM接收到Coordinator的请求,返回全局事务信息给Coordinator
- Coordinator根据数据分布信息以及系统元信息,解析SQL为查询计划树,从查询计划树中提取可以发送到Datanode的执行步骤,封装成SQL语句或者子执行计划树,发送到Datanode执行
- Datanode接收到读取任务后,查询具体Storage上的本地数据块
- Datanode任务执行后,将执行结果返回给Coordinator
- Coordinator将查询结果通过应用程序返回给用户
SQL执行的示例
对于第三个示例,也可以考虑直接将C1和C2的数据直接拿到Coordinator中进行表合并和相关操作,届时Coordinator则可能会成为性能瓶颈。