大数据环境下基于MapReduce和并行数据库的混合模式探究

2017-04-13 03:42威,王
河南广播电视大学学报 2017年1期
关键词:关系数据库数据仓库架构

门 威,王 辉

(河南广播电视大学 信息技术中心,河南 郑州 450008)

大数据环境下基于MapReduce和并行数据库的混合模式探究

门 威,王 辉

(河南广播电视大学 信息技术中心,河南 郑州 450008)

基于MapReduce编程模式的数据仓库技术和并行数据库技术是解决大数据分析问题的两种重要途径。MapReduce是一种基于并行运算的编程模型,其优点在于处理大规模非结构化、松散的数据集,但在性能,特别是连接操作的性能上存在很大的缺陷;并行数据库是建立在集群计算环境和MPP的高性能数据库,其优点是具有高效的结构化数据查询处理能力,但其容错能力和扩展能力薄弱。因此,两者都不能成为大数据分析的理想解决方案。本文在综合分析的基础上,结合二者优点,探索基于MapReduce和并行数据库的混合架构,并对多种架构方案进行详细分析,最后对各研究方向进行分析、归纳和展望。

大数据分析;并行数据库;MapReduce

一、引言

在大数据分析过程中,需要处理PB级甚至更高级别的数据,查询分析复杂、数据量大已成为其基本特点。数据处理能力的不足和日益增长的数据分析处理需求之间的矛盾需亟待解决。构建适合于大数据分析的数据仓库架构是解决大数据分析问题的关键途径之一。下面分别从大数据发展趋势、数据仓库面临的问题及其特性需求三个方面进行论述。

(一)发展趋势

随着大数据存储、分析技术的发展及其应用领域的不断扩大,数据本身及应用、处理环境发生了一系列变化,这些变化主要表现在以下几个方面。

1.数据量爆炸式增长。据权威数据显示,当前时期,数据量每两年增加约3倍,年均增长约17%(超过摩尔定律),部分大型数据仓库的数据量近100PB。[1]

2.数据分析需求的转变。数据分析的需求从常规化分析逐步转变到深度化(Deep Analytics)、精细化分析。大数据分析已成为企业决策的重要来源,但逐渐不能满足企业对数据和检测的需求。数据关联度分析、移动平均线分析、回归分析等复杂分析技术不断涌向,它们统称为深度分析,能为企业提供更多的分析手段和预测结果以提高企业竞争力。

3.部分硬件平台从高端服务器迁移到大规模中低档机群平台。随着数据量不断膨胀,数据存储成本不断上升,同时大规模集群和分布式处理技术也在不断进步,很多企业选择将数据从高端平台迁移到大规模机群平台。

(二)典型模型下的数据仓库所面临的问题

当前典型模型下的数据仓库的实现包含4个层次:数据源、数据仓库(集市)、OLAP服务和前端展示,如图1所示。[2]

图1 数据仓库架构简化图

数据源中的数据首先被ETL工具抽取到数据仓库进行集中存储,按照雪花模型、星型模型等组织建模,然后利用OLAP读取数据并生成MOLAP(数据立方)或直接在数据仓库中进行分析(ROLAP)。但是这种计算模式存在两个问题:

1.数据迁移代价较高。数据管理层(数据集市)可以提升待分析数据质量、提高查询效率,同时为数据转存付出时间代价,它首先通过耗时且复杂的ETL方法从数据源抽取数据,然后转化成雪花模型或者星型模型等,在执行分析时需要从数据库中再次抽取部分数据。这种数据迁移方式难以满足PB级数据的处理。

2.难以适应变化频繁的场合。传统的数据分析技术适用于主题固定的场合,对数据质量的要求较高,不考虑预处理代价,但这不能满足大数据时代的需求,即是在时刻变化的环境中进行数据分析。数据集市可通过舍弃冗余数据的方式缓解数据处理压力,但只是权宜之计,被舍弃数据可能被将来用到却难以找回。因此需要探索更加有效的解决方案。

(三)大数据技术对数据仓库特性要求

为满足大数据处理分析的要求,数据仓库必须具备以下几种特性:

1.较强的环境适应能力。企业或单位在信息化发展过程中,已经建设很多信息化基础设施。这些设施的建设时间不一、型号配置复杂。为能有效利用已有资源(闲置资源),数据仓库必须要有较强的环境适应能力,满足不同的环境需要,同时还需要有较高的容错能力和兼容性。

2.可扩展性强。数据仓库建立在大规模计算机集群上,并随着数据规模的不断增大而不断扩展,因此,数据仓库需要有一定的横向扩张能力。

3.高性能、低延迟。为更好地处理不断增长的数据,提高数据处理并行化、高性能化是必需途径,同时也要压缩数据准备时间,降低数据分析延迟,以满足动态数据分析需求。

二、MapReduce和并行数据库的混合架构

基于MapReduce编程模式的数据仓库技术和并行数据库技术是解决大数据分析问题的两种重要途径,但都不是最佳解决方案。MapReduce是一种基于并行运算的编程模型,善于处理大规模非结构化、松散的数据集,但在性能,特别是连接操作性能上受限;并行数据库是在集群计算环境和MPP上建立的高性能数据库,其对结构化数据有较高的查询能力,但在容错能力和扩展能力上受限。可以将二者结合起来,设计出兼有两者优点的数据分析架构。[3]根据二者结合方式不同,混合架构可以分为3类:MapReduce主导型架构、并行数据库主导型架构和兼顾型(集成型)架构。表1是3种架构的简要对比分析。

(一)MapReduce主导型架构

MapReduce主导型架构主要是在MapReduce编程模型中增加对SQL接口的支持,从而增强其易用性,比较典型的系统有Pig Latin和Hive[4]等。其中Pig Latin是雅虎提出的大数据分析方案,它提供一种带有操作符的数据流操作接口,如图2所示。

表1 3种混合架构对比分析

图2 Pig Latin查询示例

图2用于查询计算机学院的学生最喜欢借阅的10本专业书。从图中我们可以看出:Pig Latin的操作接口相当于关系数据库(RDBMS)里面的操作符(如图中右侧部分所示)。可以把Pig Latin理解成Hadoop的操作符形式的封装。[5]

Hive是基于 Hadoop架构的大型的数据仓库,其目的是简化Hadoop的大数据集分析、adhoc查询、数据聚集等操作,它拥有类似于SQL的数据操作语言HiveQL,模仿关系数据库的管理模式,把数据文件(结构化)转化成数据表,最终把HiveQL查询语言转化成MapReduce任务执行,同时也支持自定义的Map或Reduce函数。Hive可以理解为用类SQL语句对Hadoop进行封装。

(二)并行数据主导型架构

并行数据库型架构的设计目标是利用 MapReduce提高并行数据库的处理能力。典型案例如Aster Data[6]系统和Greenplum系统等。其中Greenplum可以同时处理 MapReduce job和 SQL查询,相当于在SQL中加入了 MapReduce处理工具:SQL既可以将查询结果直接输入到MapReduce中,也可以直接使用MapReduce的执行结果。这种整合发生代码级。

Aster Data基于 SQL/MapReduce架构,将SQL和 MapReduce二者整合,它可以利用Python、Java等编写MapReduce函数,然后把该函数当成SQL的子查询使用,这便结合了MapReduce的开放性和SQL的易用性,从而提高了数据分析的能力。

总之,这两种模型都是利用MapReduce改善并行数据库的数据处理能力,但容错能力和扩展能力没有提升。

(三)兼顾型(集成型)架构

MapReduce和并行数据库集成型架构的典型代表是Vertica数据库[7]、Hadapt(也称为HadoopDB)[8]以及Teradata数据库等。其中Vertica善于处理结构化数据、提供高性能交互查询,它支持在MapReduce的task中直接存取Vertica数据库数据,但在面临大规模数据时,扩展能力受限。HadoopDB与之相反,它善于处理非结构化数据和复杂的批处理任务,但是性能上滞后,其原因在于以下几点:

1.维护成本高。Hadoop系统存在大量数据节点,需要较高的维护成本。

2.预处理代价高。每次操作都要包含一次数据库加载和两次任务分解,较为繁琐。

3.动态划分能力差,大部分任务需要手动将数据划分。

4.在处理复杂的多表连接查询时,难以按照固有模式进行表空间划分。总之,HadoopDB以牺牲MapReduce的低预处理代价,换取关系数据库的高性能,但在有些情况下可同时实现MapReduce的扩展性和关系数据库的高性能。

Teradata数据库基于存储层整合,相对简单。它可从Hadoop分布式文件系统中读取数据,也支持MapReduce从Teradata数据库中直接读取数据,但没有解决本身和Hadoop的根本问题。

三、总结、分析与展望

MapReduce的问题在于性能受限,而并行数据库的问题是扩展能力和容错能力不足,二者各有优缺点。本文重点研究了MapReduce和并行数据库相融合的三种混合架构,并对每一种架构的多个案例进行详细的分析。混合架构的目标是将MapReduce的高扩展性和并行数据库的高性能有机结合,以实现更高效的大数据处理分析。下文就改善混合架构的相关问题及研究进行归纳分析:

(一)最大化地将数据处理植入数据库层面

在连接优化方面,Hadoop提出两种策略[9]:第一种策略是通过数据分解,将待处理数据按数据库进行划分,尽量使每次处理的数据分布在一个数据库内,从而实现库内连接操作,但是其应用场合很有限(只用于链式连接)。第二种策略是在广播式连接前,先在某一库内创建每张表的副本(临时表),从而使连接操作压缩到该库中执行,但是该策略增加了磁盘读写和网络传输负担。

(二)提高并行数据库容错性和扩展性

在该方面改进效果较好的是Osprey系统。它采用实际表横向切分、各节点完全复制的冗余备份策略,把星型查询分解成多个子查询,且在每个子查询失败时,都能在备份节点上重新加载执行,不用重复执行整个查询,从而提高了数据仓库的容错能力。

(三)优化提高MapReduce性能

MapReduce性能优化的一个重要方法是借鉴移植关系数据库的计算模式。美国俄亥俄州立大学研究并提出了RCFile存储模式,将关系数据库模型应用到Hadoop平台,使得Hadoop系统获得数据库索引和分区能力,从而提高性能。

总之,基于MapReduce和并行数据库的混合架构虽然能在一定程度上提高大数据分析和处理的能力,但和理想目标还有一定距离,需要通过技术研究和创新,使二者有机结合起来,各取优点,最终形成更加高效的大数据分析处理架构。

[1]王珊,王会举,覃雄派,周烜.架构大数据:挑战、现状与展望[J].计算机学报,2011,34(10):1741-1752.

[2]Chaudhuri S,Dayal U.An overview of data warehousing and OLAP technology[J].SIGMOD Record,1997,(26):65-74.

[3]Stonebraker M,Abadi D J,DeWitt D J,Madden S,Paulson E,Pavlo A,Rasin A.MapReduce and parallelDBMSsFriends orfoes[J]. Communications of the ACM,2010,53(1):64-71.

[4]覃雄派,王会举,杜小勇,王珊.大数据分析——RDBMS与Map Reduce的竞争与共生[J].软件学报,2012,23(1):32-45.

[5]史英杰,孟小峰.云数据管理系统中查询技术研究综述[J].计算机学报,2013,36(2):209-226.

[6]曾耀国.Aster Data——快速处理大型数据的佼佼者[J].电脑与电信,2010,(3).

[7]崔跃生,张勇,曾春,冯建华,邢春晓.数据库物理结构优化技术[J].软件学报,2013,24(4):761-766.

[8]White T.Hadoop权威指南[M].南京:东南大学出版社,2011.

[9]周品.云时代的大数据[M].北京:电子工业出版社,2013.

TP311.13

A

1671-2862(2017)01-0109-04

2016-11-25

本文系2016年度河南省教育厅高等学校重点科研项目“基于云计算解决方案的河南省志愿服务信息云平台的研究设计与构建”(项目编号:16B520008)和2016年度国家开放大学科研项目(青年项目)“基于Hadoop云计算解决方案的开放教育数字化教学资源云平台的研究与设计”(项目编号:G16F2406Q)的研究成果。

门威,男,河南永城人,硕士研究生,河南广播电视大学助教,研究方向:云计算、软件工程;王辉,男,河南郑州人,硕士研究生,河南广播电视大学讲师,研究方向:计算机技术应用、软件系统设计与维护、数字资源在教育中的应用。

猜你喜欢
关系数据库数据仓库架构
基于FPGA的RNN硬件加速架构
关系数据库在高炉数据采集系统中的应用
功能架构在电子电气架构开发中的应用和实践
基于数据仓库的数据倾斜解决方案研究
关系数据库技术在计算机网络设计中的应用
基于云服务的图书馆IT架构
基于数据仓库的住房城乡建设信息系统整合研究
WebGIS架构下的地理信息系统构建研究
探析电力系统调度中数据仓库技术的应用
基于数据仓库的数据分析探索与实践