论文部分内容阅读
随着信息技术的发展,很多领域对信息系统的建设处在转型阶段。以金融领域为例,后续IT建设的重心逐步从建设“核心业务交易系统”进入到构建“以客户为中心、以风险控制和盈利分析为目标的信息管理系统”的发展阶段。这种转型需要对原有业务系统的数据进行统一分析,实现数据跨部门、跨时间和跨平台共享。为此海量数据分析处理需求强烈。MapReduce是由Google公司首先提出的,一种能在大型计算机集群上并发地处理海量数据的框架模型。使用者通过指定一个Map函数将输入数据转化成为一系列中间键-值对,然后由一个自定义的reduce函数将具有相同键的值聚集起来,将结果输出。很多现实世界对海量数据的处理,都可以用这种模型来表示。并行数据库作为一种高性能的数据库系统,是并行技术和数据库技术结合的产物,它大大提高了关系数据库中对数据的处理效率。常见的并行数据库根据并行架构的不同,可以分为共性内存、共性磁盘、无共享的三种架构方式。本文在分析Mapreduce和并行数据库的基础上,提出了一种并发处理海量数据的更通用、更可扩展的平台大概架构。并对相关的产品进行了详细的测试。首先,我们分析了MapReduce和并行数据库对海量数据处理的并行方式,具体的了解了两种方法的发展以及实现思路。接着,我们从多个方面对两者进行了详细的比较,得到了它们的优缺点,为后续的设计打下了基础。接着我们提出了三种MapReduce和SQL结合的方式,分别是MapReduce引擎增加SQL层、MapReduce调度SQL语句、SQL语句调用MapReduce,通过三种结合方式的比较,我们认为SQL语句调用MapReduce的方法是最好的一种。然后,我们提出了将并行数据库和MapReduce结合的大概设计框架,这种架构采用客户端、主控节点、分支节点的三点式架构。其中,主控节点负责收集与处理其他节点的各种信息;分支节点负责任务的具体执行。接着,我们通过MapReduce的自定义函数对SQL进行了扩展,提出了将MapReduce嵌入到SQL语句里面的方式和具体的执行方式。接着,我们描述了数据分布策略和镜像处理的概要情况。最后,我们对当前比较优秀的并行数据库Greenplum进行了详细的测试,测试数据以真实的一家证券公司的业务数据为基础,从数据加载、统计分析执行等几个方面进行了性能比较。得到了其针对海量数据处理的性能结果。