gauss200简介

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

​ 典型特点:

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

gaussDB200架构

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

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

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

gaussdb 200组成

名称 描述
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 视图,一个或多个表中某些字段组成的虚表。

数据库逻辑结构图:

  • 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业务流程

具体查询流程如下:

  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数据节点高可用

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

友商对比

特性 Teradata Oracle Exadata GreenPlum 华为GaussDB 200
通用服务器支持 不支持 不支持 支持 支持
依赖磁阵/SAN 存储 依赖 依赖 不依赖 不依赖
架构 无共享架构,横向扩展最佳 全共享架构,横向扩展受限制 无共享架构, 协调节点(master)仅 支持主备,数据节点 (segment)能横向扩展 无共享架构, 协调节点(CN)节 点和数据节点(DN) 均能横向扩展
向量化执行/ SIMD指令 不支持 不支持 不支持 支持
行列存储 支持,表级列存储 支持,压缩单元级列存储 支持,表级别列存储 支持,表级别列存储
列存储引擎 不支持 支持,压缩单元级列存储 不支持 支持

海汼部落原创文章,原文链接:http://www.hainiubl.com/topics/75655

gaussdb200 理论相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. LLVM数据流分析的理论

    LLVM数据流分析的理论 标量优化(scalar目录): 死代码消除(BDCE.cpp[code],ADCE.cpp[code],DCE.cpp[code]), 全局值编号(GVN.cpp[code] ...

  3. 参数服务器训练基本理论

    参数服务器训练基本理论 参数服务器训练是分布式训练领域普遍采用的编程架构,主要解决以下两类问题: • 模型参数过大:单机内存空间不足,需要采用分布式存储. • 训练数据过多:单机训练太慢,需要加大训练 ...

  4. ARM NEON指令集优化理论与实践

    ARM NEON指令集优化理论与实践 一.简介 NEON就是一种基于SIMD思想的ARM技术,相比于ARMv6或之前的架构,NEON结合了64-bit和128-bit的SIMD指令集,提供128-bi ...

  5. CPU消耗,跟踪定位理论与实践

    CPU消耗,跟踪定位理论与实践 一.性能指标之资源指标定位方案 1.打tprof报告方法 抓取perfpmr文件 60秒. perfpmr.sh 60 从结果文件中取出tprof.sum 或直接抓取t ...

  6. 机器学习入门(09)— 偏导数、梯度概念、梯度下降法理论和实现

    1. 偏导数概念 对于式 4-6 而言 式(4.6)有两个变量,求导数时有必要区分对哪个变量求导数,即对 x0 和 x1 两个变量中的哪一个求导数.另外,我们把这里讨论的有多个变量的函数的导数称为偏导 ...

  7. 学习动力之“学习金字塔 (爱德加•戴尔)”理论

    一.什么是学习金字塔? 学习金字塔是美国缅因州的国家训练实验室研究成果,它用数字形式形象显示了:采用不同的学习方式,学习者在两周以后还能记住内容(平均学习保持率)的多少.它是一种现代学习方式的理论.最 ...

  8. rtklib 天线相位中心_基于传输线匹配理论的OAM透射阵天线设计

    摘要 本文基于极小传输损耗的耶路撒冷环型缝隙单元,设计了一款OAM透射阵天线.首先利用传输线匹配理论对具有不同金属层结构的四层透射单元的等效电路模型进行了分析,结果显示该单元可以在更小的传输损耗下实现 ...

  9. 弹性网络_理论物理所建立解析模型研究凝胶网络弹性介导的液液相分离现象

    细胞为了调控其内部复杂的生化反应,需要具有两个重要性质的细胞隔室--有一个边界用于隔离外界环境(细胞质).内部物质可自由扩散.一些隔室通过细胞膜与外界隔开,然而有些隔室是无膜的(如核仁等).理解无膜隔 ...

最新文章

  1. 使用OpenCV对运动员的姿势进行检测
  2. html5 银行卡号校验,js 实现 银行卡号 格式验证 示例代码
  3. document.getElementByTagName()的用法
  4. JDBC驱动的动态加载
  5. IT从业者都应关注的软件行业的变化
  6. python导入不在同一路径的函数_python语言基础都有哪些
  7. 用 WebClient 轻松实现文件下载上传、网页抓取
  8. flutter 如何判断在哪个页面_Agora 教程:构建你的第一个 Flutter 视频通话应用
  9. gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...
  10. XVII Open Cup named after E.V. Pankratiev. GP of Siberia, Division 1
  11. ElasticJob‐Lite:作业监听器
  12. 联想拯救者y7000p加内存条_怎么给笔记本升级内存和硬盘 联想Y7000P加装内存和硬盘图文介绍...
  13. 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结
  14. Android开发辅助工具类 Utils
  15. kpu 处理器_深度学习及 KPU 基础知识
  16. DSP实验报告—实验8  单路、多路数模转换(DA)
  17. 视频教程-监控云台软件编写-C/C++
  18. Java基础项目——客户信息管理软件
  19. 【互动多媒体】应用形式(一)互动拍照
  20. 新颖交互形式的H5案例浅析(技术分析)

热门文章

  1. 开机 米兔积木机器人_小米之家携手米兔积木机器人 开展编程表演赛
  2. Pikka 2.1.0 macOS菜单栏屏幕取色器
  3. 【产品管理】产品管理四要素
  4. python正则表达式:re库的使用
  5. C++ std::string::find()函数(在字符串中查找内容)
  6. c语言record的作用,C语言基础 record 2-指针,结构体,链表,文件的输入输出
  7. 快速将图片背景去掉教程
  8. STL源码剖析(一)STL简介
  9. 大数据分析和人工智能科普
  10. 大模型微调技术(Adapter-Tuning、Prefix-Tuning、Prompt-Tuning(P-Tuning)、P-Tuning v2、LoRA)