gaussdb200 理论

文章 犀牛 ⋅ 于 2021-06-09 22:34:05 ⋅ 1121 阅读

gauss200简介

​ MPP即大规模并行处理(Massively Parallel Processing ),在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据 库服务,非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。

file

​ 典型特点:

    * 计算靠近数据,避免大量的数据迁移,获得更高的性能
    * 无共享架构,相比共享架构拥有更高的扩展性

gaussDB200架构

​ GaussDB 200采用Share-nothing架构,由多个拥有独立且互不共享CPU、内存、存储等系统资源的节点组成。在这样的系统架构中,业务数据被分散存储在多个物理节点上,数据分析任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。

file

Share-nothing架构具备如下优点:

    • 最易于扩展的架构
      • 为商业智能BI(Business Intelligence)和数据分析的高并发、大数据量计算提供按需扩展的能力
    • 自动化的并行处理机制
    • 内部自动并行处理,无需人工分区或优化
      • 数据加载与访问方式与一般数据库相同
    • 数据分布在所有的并行节点上
    • 每个节点只处理其中一部分数据
    • 最优化的I/O处理
      • 所有的节点同时进行并行处理
    • 节点之间完全无共享,无I/O冲突
    • 增加节点实现存储、查询及加载性能的线性扩展

gaussdb 200组成

file

名称 描述
MPPDBServer(CM) GaussDB 200集群管理模块CM(Cluster Manager),即含CMServer进程的特殊MPPDBServer,负责管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。CM分为主CM和备CM。正常情况下,只由主CM提供GaussDB 200集群管理服务。当主CM发生故障的情况下,备CM会主动升为主CM提供GaussDB 200集群管理服务。CM通过CM服务完成对各个MPPDBServer管理。CM服务由CMServer、CMAgent、Monitor组成。CMServer是整个GaussDB 200集群的大脑,它会根据CMAgent上报上来的各MPPDBServer状态信息来决定是否需要状态变更。CMServer只部署在主备CM上。CMAgent是MPPDBServer上面部署的实例代理线程,负责接收CMServer下发的命令和上报MPPDBServer的Coordinator、Datanode、GTM的状态给CMServer。每个MPPDBServer均会部署一个CMAgent,也包括主备CM和主备GTM。Monitor是watchdog定时任务,其唯一的任务是在CMAgent停止的情况下将CMAgent重启。每个MPPDBServer均会部署一个Monitor,也包括主备CM和主备GTM。
MPPDBServer(GTM) 全局事务管理模块GTM(Global Transaction Manager),即含GTM进程的特殊MPPDBServer,负责生成和维护全局事务ID、事务快照、时间戳等需要全局唯一的信息。GTM分为主GTM和备GTM。正常情况下,只由主GTM提供全局事务管理服务。当主GTM发生故障的情况下,备GTM会主动升为主GTM提供服务。
MPPDBServer 业务模块,即除MPPDBServer(CM)、MPPDBServer(GTM)以外的MPPDBServer,由Coordinator及多个Datanode组成,负责执行CM、GTM下发的任务。业务模块与MPPDBServer(CM)、MPPDBServer(GTM)主要区别是不包含CMServer与GTM进程。
Coordinator(CN) 负责提供外部应用接口、优化全局执行计划、向Datanode分发执行计划,以及汇总、处理执行结果。GaussDB 200通过CCN(Control Coordinator Node)负责集群内的资源全局负载控制,以实现自适应的动态负载管理。CM在第一次集群启动时,通过集群部署形式,选择编号最小的Coordinator作为CCN。若CCN故障之后,由CM选择新的CCN进行替换。
Datanode(DN) 在集群中,DN有多个。每个DN存储了一部分数据。如果DN无高可用方案,则故障时会导致该实例上的数据无法访问。因此GaussDB 200对DN提供了高可用方案:主、备、从备。DN主、备、从备间的工作原理如下:主、备DN同步数据期间,如果主DN突然故障不可用,备DN会升为主DN。在原主DN恢复前,新升为主的DN会将数据日志同步到从备DN。原主DN恢复后将成为备DN,并且会使用“从备DN”上的数据日志恢复异常期间的数据。也就是说从备DN永远只作为从备使用,不会因为主DN或备DN故障而升级为主DN或备DN,从备只存放备DN故障时同步到从备的Xlog数据和数据通道复制产生的数据。
Storage 服务器的本地存储资源,持久化存储数据(支持行存、列存、混合存储)。

数据库对象

对象名称 说明
user 数据库用户,用于权限管理。
database 可以创建多个不同数据库。
schema 用于管理多个用户使用同一数据库。
tablespace 表空间,定义数据库对象文件的存放位置。
table 基本表,分为行存表和列存表。
index 索引,可以调高数据的访问速度。
view 视图,一个或多个表中某些字段组成的虚表。

数据库逻辑结构图:

file

  • Tablespace,即表空间,是一个目录,可以存在多个,里面存储的是它所包含的数据库的各种物理文件,每个表空间可以对应多个Database。
  • Database,即数据库,用于管理各类数据对象,各数据库间相互隔离,数据库管理的对象可分布在多个Tablespace上。
  • Datafile Segment,即数据文件,通常每张表只对应一个数据文件,如果某张表的数据大于1GB,则会分为多个数据文件存储。
  • Table,即表,每张表只能属于一个数据库,也只能对应到一个Tablespace,每张表对应的数据文件必须在同一个Tablespace中。
  • Block,即数据块,是数据库管理的基本单位,默认大小为8KB。

gaussdb 200产品定位

​ GaussDB 200是企业级的大规模并行处理关系型数据库。GaussDB 200采用MPP(Massively Parallel Processing)架构,支持行存储与列存储,提供PB(Petabyte,2的50次方字节)级别数据量的处理能力,GaussDB 200在核心技术上跟传统数据库相比有巨大优势,可以解决很多行业用户的数据处理性能问题,可以为超大规模数据管理提供高性价比的通用计算平台,并可用于支撑各类数据仓库系统、BI(Business Intelligence)系统和决策支持系统,统一为上层应用的决策分析等提供服务。

gaussdb 200应用场景

​ GaussDB 200面向行业大数据应用,可以适用于以下场景:

    • 详单查询具备PB级数据负载能力,通过内存分析技术满足海量数据边入库边查询要求,适用于安全、电信、金融、物联网等行业的详单查询业务。
    • 数据仓库具备百TB级数据支撑能力,可以高效处理百亿行多表连接查询,适用于操作数据存储ODS(Operational Data Store)、企业数据仓库EDW(Enterprise Data Warehouse)、数据集市DM(Data Mart)。
    • 混合负载基于海量数据查询统计分析能力与事务处理能力,行列混存技术同时满足联机事务处理OLTP(On-Line Transaction Processing)与联机分析处理OLAP(Online Analytical Processing)混合负载场景
    • 大数据分析支持结构化数据PB级分析能力。分布式并行数据库集群满足PB级结构化大数据的分析能力。

gaussdb200业务流程

file

具体查询流程如下:

  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将查询结果通过应用程序返回给用户。

gaussdb200数据节点高可用

file

​ gaussdb200提供了双重HA机制,第一层保护:主备机实时的数据页和日志同步,主机故障后备机接管,确保业务不中断,第二层保护:备机故障后,主机日志同步复制到从备节点(handoff机制),确保日志始终是双备份。

友商对比

特性 Teradata Oracle Exadata GreenPlum 华为GaussDB 200
通用服务器支持 不支持 不支持 支持 支持
依赖磁阵/SAN 存储 依赖 依赖 不依赖 不依赖
架构 无共享架构,横向扩展最佳 全共享架构,横向扩展受限制 无共享架构, 协调节点(master)仅 支持主备,数据节点 (segment)能横向扩展 无共享架构, 协调节点(CN)节 点和数据节点(DN) 均能横向扩展
向量化执行/ SIMD指令 不支持 不支持 不支持 支持
行列存储 支持,表级列存储 支持,压缩单元级列存储 支持,表级别列存储 支持,表级别列存储
列存储引擎 不支持 支持,压缩单元级列存储 不支持 支持
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛部落-犀牛,http://hainiubl.com/topics/75655
本帖已被设为精华帖!
本帖由 青牛 于 5月前 加精
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter