您所在的位置:首页 » 新闻 » 从架构到特点,带你重新认识分布式数据库

从架构到特点,带你重新认识分布式数据库

文章来源:http://www.51aoling.com/ 上传时间:2018-05-25浏览次数:
文章摘要:四川翱领科技有限公司,从事容灾备份到信息化安全管理,分布式数据库为您提供更好更全方面应用。随着大规模互联网应用的出现,分布式数据库成为近两年的一个热门话题。同样,在众多行业主推X86限制主机与小型机的背景下,传统的单机数据库逐渐出

四川翱领科技有限公司,从事容灾备份到信息化安全管理,分布式数据库为您提供更好更全方面应用。随着大规模互联网应用的出现,分布式数据库成为近两年的一个热门话题。同样,在众多行业主推X86限制主机与小型机的背景下,传统的单机数据库逐渐出现了一些瓶颈,会面临是否引入分布式数据库的问题。为了解决OLAP场景需求,其实很早就出现了分布式架构的产品和解决方案,其与目前的OLTP方案有很多共通的地方。

不同的分布式数据库

1.内部以关系模型存储数据,对外支持ANSI SQL接口;

2.支持事务管理ACID特性,尤其是强一致性(指事务内的修改要么全部失败要么全部成功,不会出现中间状态)。

而后出现各种的“分布式数据库”,大多都是在这两点上做权衡以交换其他方面的能力。“数据库”虽然有经典定义,但很多大数据产品或许是为了标榜对传统数据库部分功能的替代作用,也借用了“数据库”的名号,导致在实践中这个概念被不断放大,边界越来越模糊。
分布式数据存储系统

“分布式”是一种架构风格,用其实现“数据存储”,目的是为了打开数据库产品的性能,并保证系统的可靠,进一步展开,“分布式数据库”的必要条件有两点:

1.支持水平扩展,保证高性能通过增加机器节点的方式提升系统整体处理能力,摆脱对专用设备的依赖,并且突破专用设备方案的性能上限。

2.机器节点,通常是要支持X86服务器。廉价设备+软件,保证高可靠在单机可靠性较低的前提下,依靠软件保证系统整体可靠,又可以细分为“数据存储的可靠”和“服务的可靠”。

作为“分布式数据库”的必要条件,至少有5不同的“分布式数据库”:

1)NoSQL 

2)NewSQL

3)MPP 

4)Hadoop技术生态

5)Like-Mesa

提到Kafka、Zookeeper等,这些虽然也是分布式数据存储,但因为具有鲜明的特点和适用场景,无需再纳入“数据库”概念进行探讨。这五类中,前两类以支持OLTP场景为主,后三类则以OLAP场景为主。主要对OLAP场景下的三类进行概要分析。

1.OLAP场景下的分布式数据库

随着应用系统建设与深入使用,数据规模越来越大。RDBMS得到了大量有运用,Oracle也击败Sybase成为数据库领域的大赢家。在满足了基本的交易场景后,数据得到了累积,进一步的分析性需求自然就涌现了出来。单一数据库内同时支持联机交易和分析需求存在很多问题,往往会造成对联机交易的干扰。MPP(Massively Parallel Processing)是指多个处理器(或独立的计算机)并行处理一组协同计算。为了保证各节点的独立计算能力,MPP数据库通常采用ShareNothing架构。

架构特点:

1)MPP是多机可水平扩展的架构,符合“分布式”的基本要求,其中TD采用外置集中存储而GPDB直接使用本地磁盘,GPDB是更彻底的Share Nothing架构。

2)GPDB属于主从架构,Slave称为Segment是主要的数据加工节点,是在PostgreSQL基础上的封装修改,天然具备事务处理能力,可进行水平扩展,同时承担一定的工作负载,即所有外部对集群的数据联机访问都要经过Master节点。

3)在设计方面,首先设置了Standby Master节点,在Master节点宕机时接管其任务,其次将Segment节点则细分为两类不同角色Primary和Mirror,后者是前者的备节点,数据提交时在两者间进行强同步,以此保证Primary宕机时,Mirror可以被调度起来接替前者的任务。

数据分析性需求对IT能力的要求包括:

1)复杂查询能力;

2)批量数据处理;

3)一定的并发访问能力。

MPP较好的实现了对上述能力的支撑,在前大数据时代得到了大量的应用,但这个时期的数据总量相对仍然有限,普遍在TB级别,对应的集群规模也通常在单集群百节点以下。随着数据价值关注度的不断提升,越来越多的数据被纳入企业分析范围;同时实际应用中考虑到数据存储和传输成本,往往倾向于将数据集中在一个或少数几个集群中,这样推动了集群规模的快速增长。

2.Hadoop生态体系

随着大数据时代的开启,Hadoop生态体系以开源优势,获得了蓬勃发展和快速普及。Hadoop技术体系大大降低了数据分析类系统的建设成本,数据分析挖掘等工作由此步入“数据民主化”时代。Hadoop生态体系中,分析需求所需要的能力被拆分为批量加工和联机访问,通过不同的组件搭配实现。

架构特点:

Hadoop生态体系下HDFS、Spark、Hive等组件,其架构的着力点在于数据高吞吐处理能力,在事务方面相较MPP更简化。

3.Like-Mesa

Mesa是Google开发的近实时分析型数据仓库,其通过预聚合合并Delta文件等方式减少查询的计算量,提升了并发能力。Mesa充分利用了现有的Google技术组件,使用BigTable来存储所有持久化的元数据,使用了Google的分布式文件系统来存储数据文件,使用MapReduce来处理连续的数据。

架构特点:

1) Palo没有复用已有的分布式文件系统和类BigTable系统,而是设计了独立的分布式存储引擎。虽然数据存储上付出了一定的冗余,但在联机查询的低延迟、高并发两方面都得到了很大的改善。

2) Palo在事务管理上与Hadoop体系类似,数据更新的原子粒度值较小为一个数据加载批次,可以保证多表数据更新的一致性。整体架构由Frontend和Backend两部分组成,查询编译、查询执行协调器(负载较轻)和存储引擎目录管理被集成到Frontend。

3)而Backend作为工作负载节点会大幅扩展到几十至上百节点。数据处理部分与Mesa相同采用了物化Rollup(上卷表)的方式实现预计算。Palo和ClickHouse都宣称实现了MPP Data Warehouse,从架构上看已经与传统的MPP发生很大的变化,几乎完全舍弃了批量处理,专注于联机部分。

OLAP和OLTP两个分支技术的发展也必然是交错前行,可以相互借鉴的。OLAP场景到分布式数据库的概要分析,到结合NoSQL与NewSQL的差异。OLTP场景分布式数据库实现方案的关键技术要点,从分布数据到容灾备份让信息更安全。