大数据平台架构设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据平台
总体架构规格说明书
V1.0版
●目录
●目录 (2)
I.简介 (4)
1.目的 (4)
2.词汇表 (4)
3.引用 (4)
II.整体介绍 (5)
1.系统环境 (5)
2.软件介绍 (5)
3.用途 (6)
4.简介 (6)
5.核心技术 (7)
●大规模并行处理MPP (7)
●行列混合存储 (8)
●数据库内压缩 (8)
●内存计算 (9)
6.M ASTER N ODE (9)
7.D ATA N ODE (9)
III.MASTER NODE (10)
1.简介 (10)
2.C ONTROL 模块 (10)
3.SQL模块 (10)
4.A CTIVE-P ASSIVE SOLUTION (16)
IV.DATA NODE (19)
1.简介 (19)
2.重要模块 (19)
3.数据存储 (20)
4.数据导入 (21)
V.分布式机制 (23)
1.概括 (23)
2.数据备份和同步 (24)
3.时间同步机制 (27)
4.分布式LEASE机制查询过程备忘 (27)
VI.内存管理机制 (29)
VII.V3.0版的初步设计思路 (30)
I.简介
1.目的
本文详细描述了DreamData数据库系统。介绍了系统的目标、功能、系统接口、系统行为、系统约束以及系统如何响应。本文面向系统参与者以及系统开发人员。
2.词汇表
3.引用
II.整体介绍
1.系统环境
图 1 –系统环境
2.软件介绍
DreamData是在从分布式数据库的基础上发展而来,同时加入一些NoSQL的基因的新一代大数据实时分析分布式数据库,并且支持内存计算。
DreamData最大的特色就是大而快,它能极快地导入和处理海量的数据,并在这个基础上能极快地进行用户所需数据统计和分析。相对传统数据库Oracle而言,DreamData的单机性能要高出50倍以上,并且随着节点数量的增加,整体性能会同步提升。
3.用途
●实时决策能力;
●提高业务效率;
●快速智能发现新观点和商业机会;
●提供业务产出;
●提升IT效率;软件架构
4.简介
图 2 –系统架构图
5.核心技术
DreamData采用了大量最新的技术成果,最核心的技术包括:大规模并行处理MPP、行列混合存储、数据库内压缩和内存计算。这些技术之间并不是孤立存在,而是相互关联,形成一个高效的系统。
大规模并行处理MPP
DreamData被设计为能在可用内核的数量,和跨越主机分配使用的并行执行上很好地进行扩展。如图3所示。
图3. 并行处理原理示意
一张大表拆分成多个Tablet,被复制分布存储在不同的节点上以便并行处理;通过内存本地化处理把大数据量和计算量分散到不同处理器;同时任何节点宕机将不影响数据完整和业务连续性,提供了系统的高可用性。
MPP系统不共享资源,处理单元可获得全部计算资源,处理效率高;处理单元之间互不影响,当通信占比较小时MPP优于传统的SMP数据库架构,更适合数据分析与决策的场景。
●行列混合存储
DreamData主要面向大数据的实时处理,为了提高数据处理效率,尤其是常用的聚合、扫描和快速搜索功能,系统采用行列混合存储的方式,按行分区保留数据的关联性,按列组织提高数据压缩效率和快速聚合能力。
从概念上来说,一张数据库表是一个二维的数据结构,以行和列形式组织单元。而计算机内存则是以线性顺序组织。对于存储至线性存储器中的表,如图3中所示,列式数据组织方式意味着更高的压缩效率和快速聚合能力。
图4. 列式数据组织的优势
●数据库内压缩
采用经典的高效无损压缩算法技术,进一步提高性能,并极大地节省了数据存储空间。用户可获得10倍以上的空间节省,并且同时获得相应有效I/O性能提升。系统无需解压即可访问数据,轻量级压缩算法减少压缩/解压时间。
●内存计算
硬件上得益于近年来性能的提升,CPU普遍采用多核架构(每块CPU 8Core),X86服务器硬件成本较低,可采用多服务器或多刀片大规模并行扩展。同时加上DreamData软件技术上的创新,包括行列混合存储技术、高效压缩、数据分片、快速索引、增量插入等方法手段,允许系统实现内存计算:
◆将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能;
◆采用列式存储可以将更多的数据装进内存;
◆数据装进内存里的同时也会同步写入硬盘,即使宕机也不会丢失数据。
6.Master Node
现在主要包括Control模块和SQL模块这两个部分,在这个基础上加入专门用于解析数据挖掘,并支持R语言的Data Mining模块,为了可用性,安全性,以及性能,一个集群中可以有多个Master Node,在SQL和Data Mining这两个功能层面上,每个Master Node之间会采用负载均衡的方式来进行调度,但在Control 功能方面将会只有一个Master Node处于Active状态,其他的Master Node处于 Passive模式。
7.Data Node
Data Node是实际对数据进行存储,并且能够对数据进行初步处理和过滤,以仅可能少的数据返回给Master Node端,Data Node存储数据的单位是Tablet,并且一个Data Node会有多个Tablet,并且他们是扁平的,在底层存储数据的时候用到了行列混合存储以及深度压缩和浅度压缩技术。还有Data Node提供多线程技术的设置,通过来进行加速。