技术干货|趣说GBase 8a数据库集群(二)

各位GBase数据库的粉丝以及对其感兴趣的朋友,大家好,GBase 8a数据库集群是南大通用自研的的核心分析型数据库产品,自2009年启动研发以来,历经13年演化及发展,已经在金融、电信领域实现规模化部署,并覆盖除金融电信外的其他各个行业,总节点数超过30000+个,管理数据总量250+PB。
通过上一篇“趣说”,我们了解到GBase 8a MPP Cluster产品演进分为三个阶段,即:列存数据库阶段、MPP+列存数据库阶段和逻辑数仓LDW阶段。前一阶段是后一阶段的研发基础,本篇“趣说(二)”将续接第一篇内容来和大家聊一聊GBase 8a的产品架构,同样也大致分为三个:
(一)列存数据库阶段的架构 列存数据库阶段是GBase 8a MPP Cluster产品核心功能特性的新生阶段,它是一款单机架构产品,在架构上与传统的关系型数据库架构相近,其不同点在于,传统的关系型数据库通常都是行存数据库,而GBase 8a单机数据库是一款列存数据库,即在数据存储的组织方式上与传统关系型数据库不同,这是GBase 8a单机数据库最核心的部分,同时围绕着列存还引入了数据压缩存储特性、智能索引特性和并行执行特性。这些特性引入的作用是什么呢?就一个字“快”,它使GBase 8a单机数据库面对分析类查询语句的性能有指数级的提升,下图就是“快”的原理:
技术干货|趣说GBase 8a数据库集群(二)
文章图片

大部分应用中性能的瓶颈是磁盘IO。所以GBase 8a单机数据库的设计都以降低磁盘IO为主要设计目标。为此采用的技术有列存储,压缩,智能索引(粗粒度)。每一项技术都有可能提升10倍的性能。理论极值是1000倍提速,实际达成10-100倍提速。在上图中,基于存储空间占用1T的表执行统计查询时,在列存储技术支持下,通过只读取查询访问的列进行剪枝处理降低磁盘IO,通过数据压缩技术降低磁盘IO,通过智能索引技术过滤掉访问不涉及的行数据降低磁盘IO,如此便提升了查询性能。也许您会问,“Select *”也有性能提升么?我给您的回答是,如果上述的原理清楚了,您自己会得到这个结果,比我回答您Yes或者No准确得多。
(二)MPP+列存数据库阶段的架构 MPP+列存数据库阶段是GBase 8a MPP Cluster产品成长壮大和成熟阶段,历经了三个大版本的迭代演进,支持的节点规模从几十个节点到百节点,再到三百节点以上,GBase 8a就是这样一步一个脚印地,在GBase 8a研发人员夜以继日、通宵达旦不断投入中成长,在MPP+列存数据库阶段有三种架构,分别是基于安全组的对称部署架构、基于多副本的非对称部署架构和联邦架构。
废话少说,上图。一图顶千言,懂的人一看就懂,不懂的人再多的言语也是白搭:
技术干货|趣说GBase 8a数据库集群(二)
文章图片
基于安全组的对称部署架构
该集群架构在部署时,以安全组为集群的组成单位,每个安全组最多可以由三个节点组成,用于实现数据高可用,多个安全组用于实现数据分布,并行计算提升性能。在每个集群节点上均部署和运行Gcluster服务、Gnode服务和Gcware服务,分别用于实现集群管理功能、集群存储和计算功能以及集群一致性服务功能。
技术干货|趣说GBase 8a数据库集群(二)
文章图片
多副本的非对称部署架构
相比于上一个版本而言,多副本的非对称部署架构不再基于安全组,而是基于多副本实现高可用,Gcluster服务、Gnode服务和Gcware服务各自的职能更为独立,Gcluster服务、Gnode服务在部署时可以分别部署在各自的集群节点上(上一个版本每个集群节点都要部署全部服务),即Gcluster集群作为集群服务层可以单独部署,Gnode集群作为计算存储层也可以单独部署。
技术干货|趣说GBase 8a数据库集群(二)
文章图片
联邦架构
相比于上一个版本而言,计算存储层可以部署多套Gnode集群,每个集群被称作为VC,统一共用同一个集群服务层Gcluster集群。
(三)逻辑数仓LDW阶段的架构 【技术干货|趣说GBase 8a数据库集群(二)】逻辑数仓LDW阶段的架构将植入云原生特性,即云计算的计算与存储分离架构特性。如下:
技术干货|趣说GBase 8a数据库集群(二)
文章图片

整个架构分为三层,云服务层、虚拟仓库层和数据存储层。其中云服务提供管理和运维服务能力,包括订单管理、计费管理、云数据仓库实例账户管理、云服务监控运维管理、云数据仓库实例管理和升级云服务管理、升级云数据仓库管理。提供云数据仓库实例访问入口(URL)、鉴权、访问控制、语法解析、生成执行计划、优化、元数据管理与存储、事务管理及执行调度管理、用户及权限管理、Warehouse管理、Database管理和云数据仓库功能服务等;虚拟仓库层负责提供不同规格计算资源的算力,用于执行云服务层下发的计算任务;数据存储层,提供分布式文件存储或者对象存储能力,用于持久化云数据仓库数据文件,以及提供查询过程中临时表数据的缓存和结果集缓存的持久化。

    推荐阅读