论文部分内容阅读
目前,工业界尤其是互联网行业,在日常的业务运转中产出了大量的用户与服务数据,对这些数据进行存储、处理和分析的需求也在急剧的增长,这些数据的量已经远远超出了单台计算机的处理能力;如何对海量数据进行管理和分析成为一个研究的热点。分布式思想和基于异构数据源的数据分析为我们提供一个解决问题的思路。针对百度特定的应用需求,现有统一资源查询平台暴露出的问题,以及对业界现有系统的调研分析,设计实现了基于异构数据源的高效查询引擎QueryEngine。本文主要研究了对HDFS上数据的高效Ad hoc查询,在此基础上实现了基于异构数据源的高效查询功能,Query Engine作为一个中间的服务层,对用户屏蔽了底层存储的异构性。本文的主要工作包括以下几点:(1)设计实现了Clinet子模块,参与Query Server子模块的设计与代码的编写。Client子模块是一个命令行交互界面,接收用户输入的命令行,对命令选项进行解析;向Query Server请求一个Query Master为其服务,然后将解析好的命令行提交给Query Master。Query Server负责维护系统中所有Query Master信息。(2)实现了基于异构数据源的高效查询。Query Engine系统是搭建在异构数据源的一个服务层,Query Master子模块对SQL进行解析,通过MetaServer上全局的元数据信息将SQL编译成物理执行计划,MapReduce Node根据执行计划中的依赖关系进行分布式计算,最后将不同数据源上的计算结果合并,对用户屏蔽底层异构存储。(3)Query Engine系统架构设计。通过对分布式计算和分布式存储基础理论的深入分析和当前业界现有系统架构的调研,提出了基于异构数据源的高效查询引擎Query Engine的架构;然后对各子模块的功能进行细化分析,给出了子模块的框架图、时序图,并逐一实现了这些子模块;Query Engine通过建库、建表、权限管理等功能很好的支持了对海量数据的管理,通过实现基于异构数据源的查询功能很好的支持了对海量数据数据分析。