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业务流程
具体查询流程如下:
- 用户通过应用程序发出查询本地数据的SQL请求到Coordinator。
- Coordinator接收用户的SQL请求,分配服务进程,向GTM请求分配全局事务信息。
- GTM接收到Coordinator的请求,返回全局事务信息给Coordinator。
- Coordinator根据数据分布信息以及系统元信息,解析SQL为查询计划树,从查询计划树中提取可以发送到Datanode的执行步骤,封装成SQL语句或者子执行计划树,发送到Datanode执行。
- Datanode接收到读取任务后,查询具体Storage上的本地数据块。
- Datanode任务执行后,将执行结果返回给Coordinator。
- Coordinator将查询结果通过应用程序返回给用户。
gaussdb200数据节点高可用
gaussdb200提供了双重HA机制,第一层保护:主备机实时的数据页和日志同步,主机故障后备机接管,确保业务不中断,第二层保护:备机故障后,主机日志同步复制到从备节点(handoff机制),确保日志始终是双备份。
友商对比
特性 | Teradata | Oracle Exadata | GreenPlum | 华为GaussDB 200 |
---|---|---|---|---|
通用服务器支持 | 不支持 | 不支持 | 支持 | 支持 |
依赖磁阵/SAN 存储 | 依赖 | 依赖 | 不依赖 | 不依赖 |
架构 | 无共享架构,横向扩展最佳 | 全共享架构,横向扩展受限制 | 无共享架构, 协调节点(master)仅 支持主备,数据节点 (segment)能横向扩展 | 无共享架构, 协调节点(CN)节 点和数据节点(DN) 均能横向扩展 |
向量化执行/ SIMD指令 | 不支持 | 不支持 | 不支持 | 支持 |
行列存储 | 支持,表级列存储 | 支持,压缩单元级列存储 | 支持,表级别列存储 | 支持,表级别列存储 |
列存储引擎 | 不支持 | 支持,压缩单元级列存储 | 不支持 | 支持 |
海汼部落原创文章,原文链接:http://www.hainiubl.com/topics/75655