开发者论坛 | 海睿思 轻量化数据中台生态引领者

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 319|回复: 0

大数据之Greenplum介绍(下)

[复制链接]

6

主题

9

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 2022-3-16 14:08:21 | 显示全部楼层 |阅读模式

三、Greenplum架构
Greenplum主要由Master节点、Segment节点、interconnect三大部分组成。Greenplum master是Greenplum数据库系统的入口,接受客户端连接及提交的SQL语句,将工作负载分发给其它数据库实例(segment实例),由它们存储和处理数据。Greenplum interconnect负责不同PostgreSQL实例之间的通信。Greenplum segment是独立的PostgreSQL数据库,每个segment存储一部分数据。大部分查询处理都由segment完成。
Master节点不存放任何用户数据,只是对客户端进行访问控制和存储表分布逻辑的元数据
Segment节点负责数据的存储,可以对分布键进行优化以充分利用Segment节点的io性能来扩展整集群的io性能
存储方式可以根据数据热度或者访问模式的不同而使用不同的存储方式。一张表的不同数据可以使用不同的物理存储方式:行存储、列存储、外部表
3.1 大规模数据存储
(1)Greenplum数据库通过将数据分布到多个节点上来实现规模数据的存储。数据库的瓶颈经常发生在I/O方面,数据库的诸多性能问题最终总能归罪到I/O身上,久而久之,IO瓶颈成为了数据库性能的永恒的话题。
(2)Greenplum采用分而治之的办法,将数据规律的分布到节点上,充分利用Segment主机的IO能力,以此让系统达到最大的IO能力(主要是带宽)。
(3)在Greenplum中每个表都是分布在所有节点上的。Master节点首先通过对表的某个或多个列进行hash运算,然后根据hash结果将表的数据分布到Segment节点中。整个过程中Master节点不存放任何用户数据,只是对客户端进行访问控制和存储表分布逻辑的元数据。


图 2 Greenplum存储结构

Greenplum提供称为“多态存储”的灵活存储方式。多态存储可以根据数据热度或者访问模式的不同而使用不同的存储方式。一张表的不同数据可以使用不同的物理存储方式。支持的存储方式包含:
行存储:行存储是传统数据库常用的存储方式,特点是访问比较快,多列更新比较容易。
列存储:列存储按列保存,不同列的数据存储在不同的地方(通常是不同文件中)。适合一次只访问宽表中某几个字段的情况。列存储的另外一个优势是压缩比高。
外部表:数据保存在其他系统中例如HDFS,数据库只保留元数据信息。

3.2 并行查询计划和执行
下图为一个简单SQL语句,从两张表中找到2008年的销售数据。图中右边是这个SQL的查询计划。从生成的查询计划树中看到有三种不同的颜色,颜色相同表示做同一件事情,我们称之为分片/切片(Slice)。最下层的橙色切片中有一个重分发节点,这个节点将本节点的数据重新分发到其他节点上。中间绿色切片表示分布式数据关联(HashJoin)。最上面切片负责将各个数据节点收到的数据进行汇总。




然后看看这个查询计划的执行。主节点(Master)上的调度器(QD)会下发查询任务到每个数据节点,数据节点收到任务后(查询计划树),创建工作进程(QE)执行任务。如果需要跨节点数据交换(例如上面的HashJoin),则数据节点上会创建多个工作进程协调执行任务。不同节点上执行同一任务(查询计划中的切片)的进程组成一个团伙(Gang)。数据从下往上流动,最终Master返回给客户端。
3.3 并行数据加载
(1)并行加载技术充分利用分布式计算和分布式存储的优势,保证发挥出每一块Disk的I/O资源
(2)并行加载比串行加载,速度提高40-50倍以上,减少ETL窗口时间
(3)增加Segment和ETL Server,并行加载速度呈线性增长


四、Greenplum优势
数据存储
当今是个数据不断膨胀的时代,采取MPP架构的数据库系统可以对海量数据进行管理。
Greenplum支持50PB(1PB=1024TB)级海量数据的存储和处理,Greenplum将来自不同源系统的、不同部门、不同平台的数据集成到数据库中集中存放,并且存放详尽历史的数据轨迹,业务用户不用再面对一个又一个信息孤岛,也不再困惑于不同版本数据导致的偏差,同时对于IT人员也降低管理维护工作的复杂度。
高并发
随着商业智能在企业内的快速发展,BI 用户对信息分析平台的访问频率和查询复杂度也快速提升,因此要求相应的数据库系统对高并发查询进行支持。Greenplum利用强大并行处理能力提供并发支持。
Greenplum提供资源管理功能(workload managemnt)来管理数据库资源,利用资源队列管理可实现按用户组的进行资源分配,如Session同时激活数、最大资源值等。通过资源管理功能,可以按用户级别进行资源分配和管理用户SQL查询优先级别,同时也能防止低质量SQL(如没有条件的多表join等)对系统资源的消耗。
线性扩展
Greenplum与其他分布式大数据产品如Yonghong Z-DataMart一样采用了通用的MPP并行处理架构,在MPP架构中增加节点就可以线性提高系统的存储容量和处理能力。Greenplum在扩展节点时操作简单,在很短时间内就能完成数据的重新分布。
Greenplum线性扩展支持为数据分析系统将来的拓展给予了技术上的保障,用户可根据实施需要进行容量和性能的扩展。
高性价比
Greenplum数据库软件系统节点基于业界各种开放式硬件平台,如SUN/HP/DELL等厂商的PC Server等,在普通的x86 Server上就能达到很高的性能,因此性价比很高,相比于其他封闭式数据仓库专用系统,Greenplum每TB的投资是前者的1/5甚至更低。同样,Greenplum产品的维护成本相比同类厂商也低许多。
反应速度
我们面对的是一个瞬息变化的市场,谁能首先感知到市场的需求和变化,就能在竞争中先行一步,获得主动权,在竞争中立于不败之地。
Greenplum通过准实时、实时的数据加载方式,实现数据仓库的实时更新,进而实现动态数据仓库(ADW)。基于动态数据仓库,业务用户能对当前业务数据进行BI实时分析-“Just In Time BI”,能够让企业敏锐感知市场的变化,加快决策支持反应速度。
高可用性
Greenplum是高可用的系统,在已有案例中最多使用了96台机器的集群MPP环境。除了硬件级的Raid技术外,Greenplum还提供数据库层Mirror机制保护,即每个节点数据在另外的节点中同步镜像,单个节点的错误不影响整个系统的使用。
对于主节点,Greenplum提供Master/Stand by机制进行主节点容错,当主节点发生错误时,可以切换到Stand by节点继续服务。
系统易用
Greenplum产品是基于流行的PostgreSQL之上开发,几乎所有的PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上,在Internet上有着丰富的PostgreSQL资源供用户参考。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|开发者论坛 | 海睿思 轻量化数据中台生态引领者 ( 苏ICP备13008384号-7 )

GMT+8, 2022-7-4 23:48 , Processed in 0.045224 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表