GaussDB(DWS)数据库-基础篇


软件架构

软件架构:分为存算分离型和存算一体型,二者的区别在于DN和存储(Local-Disk)是否绑定在一起,绑定在一起为存算一体,否则为存算分离。

数据组件(7种类型)

  1. OM(运维管理模块、主备):提供日常运维和配置管理功能,每个节点都部署
  2. CM(集群管理模块、主备):自动化集群管理和监控各单元的物理资源使用情况,每个节点都部署。
  3. GTM(全局事务控制器,主备):主要负责生成并维护全局事务ID、事务快照、时间戳等需要全局唯一的信息。DWS集群部署2个,一主一备,分布在不同节点上。
  4. WLM(工作负载管理):控制资源分配,防止过载对系统冲击导致的业务拥塞和系统崩溃。内置在CN和DN实例中。
  5. CN(Coordinator Node,协调节点,多主):主要处理请求分解、调度、结果返回。负责SQL解析和优化。决定对外业务访问能力,默认部署2个,最大支持5个。
  6. DN(Data Node,数据节点,主备从):负责存储业务数据(支持行存、列存、混合存储)、执行数据查询任务以及向CN返回执行结果。决定对外业务处理能力。根据节点规格,每个节点部署2-4个,最大支持1024个。
  7. GDS Loader(多实例):负责批量数据加载和并行加速。

物理集群由3到多个节点组成,最大支持1024个,节点为ECS/BMS.
数据组件分布:以最简的ECS+EVS结构为例。ECS负责计算资源(CPU+内存+DWS实例(CN+DN等))。EVS负责存储资源,每个DN挂载EVS盘。

DWS资源分配

  1. CPU资源:20%+60%+20%:20%CPU资源用于系统运维,20%CPU资源用于数据接入入库业务,60%CPU资源用于数据分析业务,入库业务和分析业务资源隔离,互不影响。
  2. 内存资源:默认GaussDB(DWS)使用内存占主机Linux系统可用内存的80%。GaussDB 200 默认关闭操作系统的虚拟内存。
  3. 内存参数:
    • max_process_memory :一个数据库节点(DN/CN)可用的最大物理内存
    • 视图pv_total_memory_detail:查看一个数据库节点总的内存分配情况。

业务架构

业务下发的SQL信息是如何在GaussDB(DWS)中的各个组件运行的。CN->DN->CN

  1. 业务的查询信息先下发SQL到CN节点,其中的SQL信息可以是对数据的增删改查。
  2. CN通过优化器生成执行计划,DN按照执行计划处理数据
  3. 在分布式存储中,数据处理的DN和数据存储DN不同,数据处理过程中需要从其他DN获取数据,通过stream流(广播流、聚合流和重分布流)降低数据在DN节点间的流动。
  4. DN返回数据处理结果给CN,CN汇总结果。
  5. CN将汇总结果返回给业务。

分布式架构优点

  1. 支持按需扩展,支持2048节点的超大规模,100PB级的数据容量.
  2. 通过多层级的并行计算引擎,基于鲲鹏CPU的优化,软硬协同,性能相比于X86提升30%。
  3. 通过支持事务ACID,实现全场景数据的一致性数据保障,支持双集群容灾,全组件HA设计,来实现高可用。
  4. 兼容标准SQL 2003、JDBC和ODBC接口,全图形化的运维管理和开发工具,来实现高兼容性。

高性能

高斯数据库实现高性能的技术:全并行架构+分布式优化+行列混合引擎

  1. 全并行架构:目的是解决如何利用x86的多核计算资源,如何解决鲲鹏众核的资源利用问题。解决方法:从大到小
    • MPP(节点并行):在集群内并行,通过使用分布式执行框架,支持1000以上的服务器,万级CPU的并行计算
    • SMP(算子并行):在查询内并行,通过多线程并行算法,从而实现在核心算子内的并行执行。众核支持,和NUMA架构优化。
    • SIMD(指令级并行):操作数归并,通过SIMD和向量化引擎 ,实现一个指令执行一批数据的操作,指令可以是x86或者鲲鹏指令.
    • LLVM(动态编译):指令数减少,通过将热点函数预编译成机器码,实现减少SQL执行指令数,从而提升性能。
  2. 分布式优化:用于分布式架构下最优执行计划的生成。
    • 分布式查询重写:
      • 解决问题:单机SQL逻辑无法实现分布式执行的问题
      • 解决方法:利用分布式查询重写技术,在分布式下消除NestLoop和子查询等查询瓶颈。
    • 分布式计划生成:
      • 解决问题:单机统计信息不能全面反应分布式数据特征
      • 解决方案:基于Poisson估算模型,单点和全局cost估算模型,local和Global结合数据处理估算模型,实现单机+全局的自动统计信息收集。
    • 分布式倾斜处理:
      • 解决问题:数据倾斜导致的分布式执行出现木桶效应.
      • 解决方案:针对静态模型,使用分布式倾斜估算模型;针对动态模型,使用动态倾斜处理方案RLBT(Runtime Load Balance Technology)
  3. 行列混合引擎:分为查询引擎和存储引擎。查询引擎分为行存+列存
    • 行存:适合高并发+短事务场景,例如点查询、数据更新、实时数据接入、并发增删改。
    • 列存:适合分析AP场景,例如分析统计分组聚合、统计分析、批量加载、访问大量行少数列。
    • Delta列存:适合实时分析场景,例如实时分析同时进行实时插入和更新、实时插入更新进入行存Delta、实时分析基于列存+行存Delta
      注意:Delta表是列存表附带的行存表,若创建列存表同时开启Delta表,插入列存表的数据也会以行存的形式保存。

高扩展

逻辑集群+异构扩展

  1. 逻辑集群实现如下功能:通过使用CN+DN
    • 逻辑统一+业务隔离:用逻辑集群实现DN层的计算存储资源隔离,从而实现业务隔离。
    • 数据共享:将不同逻辑集群的公共数据放到同一个逻辑集群中
    • 计算弹性:可以利用空闲集群的计算资源用于其他业务的作业。
  2. 异构扩展:用于冷数据的低成本管理
    • 功能:用本地盘做性能加速,用OBS做冷数据区,实现数据存储异构,自动冷热数据迁移(2年以上冷数据)。
      结果:分层存储+成本最优:按需选择存储和计算引擎,实现冷热数据的动态切换。

高可用

主备从HA技术+多租户资源管理+可信安全+多层次多类型备份

主备从HA技术

功能:数据三重保护(主+备+从备)+容忍单副本故障+两副本提供HA保障。
主备流程:
正常情况:主机和备机通过日志+数据页流复制实现强同步,主机和从备仅保持连接,从备不占用额外存储资源
主机故障:集群管理器感知并仲裁备机升为主机,升级后的备机和从备进行主从强同步。
备机故障:主机自动感知,主机的未同步日志和数据发送给从备,实现主从强同步,主备同步利用内核底层实现主从同步切换,事务层不感知

多租户资源管理

和企业组织结构匹配+管理租户资源(计算+存储)+租户资源隔离(容器技术)+租户资源监控

多层级多类型备份

多种介质:云备份推荐使用OBS备份,支持OBS/NBU/华为数据一体机
全量+增量备份:全量物理备份、差异增量、累积增量等类型备份
完全在线:备份期间不加锁,业务SQL无影响
全局一致性:备份全局一致性快照
细颗粒备份恢复:支持集群+schema级+表级备份恢复,支持就地集群恢复。
安全:加密传输。

融合分析

支持直接读写HDFS/OBS/PostGIS数据:
数据源互通:可以读取Oracle/Spark/Hive数据库
外表机制:支持HDFS/OBS/MPP外表,读取HDFS/OBS数据。
兼容性:兼容SQL2003、JDBC/ODBC、SQL2003访问HDFS和OBS

智能运维

适应场景:支持扩容加节点+扩容重分布+空间回收Vacuum full
快照策略:手动快照+自动快照
存储介质选择:OBS + NBU

学习资源来自华为云GaussDB(DWS)数据库官网


文章作者: 青山生柳
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 青山生柳 !
 上一篇
GaussDB(DWS)数据库-数据库管理篇 GaussDB(DWS)数据库-数据库管理篇
GaussDB(DWS)数据库-数据库管理篇,主要介绍DWS数据仓库服务、引擎、表类型、事务、表、分区设计、索引、视图、序列、数据脱敏、审计日志等。
2025-08-03
下一篇 
Hello World Hello World
这是你自定义的文章摘要内容,如果这个属性有值,文章卡片摘要就显示这段文字,否则程序会自动截取文章的部分内容作为摘要
2025-04-25
  目录