当前位置: 首页 > news >正文

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

    • 功能:做数据入库

三、分布式查询

数据查询流程

在这里插入图片描述
具体查询流程如下:

  1. 用户通过应用程序发出查询本地数据的SQL请求到Coordinator
  2. Coordinator接收用户的SQL请求,分配服务进程,向GTM请求分配全局事务信息
  3. GTM接收到Coordinator的请求,返回全局事务信息给Coordinator
  4. Coordinator根据数据分布信息以及系统元信息,解析SQL为查询计划树,从查询计划树中提取可以发送到Datanode的执行步骤,封装成SQL语句或者子执行计划树,发送到Datanode执行
  5. Datanode接收到读取任务后,查询具体Storage上的本地数据块
  6. Datanode任务执行后,将执行结果返回给Coordinator
  7. Coordinator将查询结果通过应用程序返回给用户
SQL执行的示例

在这里插入图片描述
对于第三个示例,也可以考虑直接将C1和C2的数据直接拿到Coordinator中进行表合并和相关操作,届时Coordinator则可能会成为性能瓶颈。

在这里插入图片描述

相关文章:

  • 基坑安全:自动化监测系统的革新力量
  • 对于远程仓库, 只给出了下载安装包的选项没有给出克隆虚的相关代码怎么办?
  • 【Python】ftplib的使用
  • pico+unity3d运行测试方法
  • 昇思25天学习打卡营第7天 | MindNLP ChatGLM-6B StreamChat
  • Redis的配置优化、数据类型、消息队列
  • springboot 程序运行一段时间后收不到redis订阅的消息
  • Redis 中String类型操作命令(命令演示,时间复杂度,返回值,注意事项)
  • [终端安全]-6 移动终端之应用程序安全
  • [IDEA插件] JarEditor 编辑jar包(直接新增、修改、删除jar包内的class文件)
  • 面试题008-Java-SpringBoot
  • git列出提交记录的文件路径
  • 论文翻译 | LEAST-TO-MOST: 从最少到最多的提示使大型语言模型中的复杂推理成为可能
  • 2024-07-14 Unity插件 Odin Inspector1 —— 插件介绍
  • LeetCode 每日一题 2024/7/8-2024/7/14
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 2017-09-12 前端日报
  • CSS实用技巧干货
  • echarts花样作死的坑
  • es6--symbol
  • Git学习与使用心得(1)—— 初始化
  • Java 23种设计模式 之单例模式 7种实现方式
  • Javascript设计模式学习之Observer(观察者)模式
  • js中forEach回调同异步问题
  • Markdown 语法简单说明
  • oschina
  • spark本地环境的搭建到运行第一个spark程序
  • SpringBoot 实战 (三) | 配置文件详解
  • tab.js分享及浏览器兼容性问题汇总
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 彻底搞懂浏览器Event-loop
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 工程优化暨babel升级小记
  • 基于web的全景—— Pannellum小试
  • 看域名解析域名安全对SEO的影响
  • 力扣(LeetCode)56
  • 前端临床手札——文件上传
  • 数组大概知多少
  • 系统认识JavaScript正则表达式
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 白色的风信子
  • gunicorn工作原理
  • hi-nginx-1.3.4编译安装
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #考研#计算机文化知识1(局域网及网络互联)
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (19)夹钳(用于送货)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot掌上博客系统 毕业设计063131