论文部分内容阅读
目前人类己经进入了大数据云计算时代,生活处处都在产生数据,随着计算机技术的发展,互联网及物联网等领域的飞速发展对大规模数据的收集和处理带来了很大挑战。早期的SQL查询受到单点计算的影响,既无法进行高并发查询作业又难于实现完美的隔离机制,不能满足日益增长的数据查询处理需求。所以传统的SQL查询已经不能满足数据处理需求,而容器技术是近些年新兴的热门技术。容器以轻量级、读写分离和可移植性高等特点迅速受到技术开发人员等青睐,基于容器的SQL并行查询的优化更值得我们去探讨和研究,以便更高质量、高效率地处理日益增长的数据。并行查询是指允许多个查询在同一台计算机上共存并同时执行,SQL并行查询的优点是能够最大程度地使用多个节点的计算资源,可以提高数据库的工作效率。Docker容器技术是由PaaS提供商DotCloud开源的一个基于LXC的高级容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源。自从2013年发布以来,Docker以惊人的速度被全世界科学家及计算机技术爱好者广泛使用和改进。容器技术作为轻量级虚拟技术,能保证性能与物理机性能持平,并且可以实现按需扩展,能减少网络IO,还可以实现数据库中计算与存储分离,提高SQL查询性能。本文从三个方面对基于Docker容器的SQL并行查询进行优化研究,以达到高效利用计算资源的目的。首先,对SQL并行查询的基本过程进行研究分析,讨论分布式环境下连接查询优化算法。本文针对SQL并行查询优化,将传统SQL语句分割成逻辑相关的多个子查询语句,每个子查询可以按照最优顺序并行执行,最后将每个子查询的结果进行逻辑组合得到和原始查询相同的查询结果。SQL并行查询可以有效利用系统的计算资源,并防止系统中节点出现负载过高或过低的极端现象。其次,对SQL并行查询环境中的Docker容器进行优化研究,通过镜像优化、构建私有镜像仓库和Docker持续集成优化等措施,使得容器可以进行快速启停并使占用的物理资源最小化。Docker支持自建镜像和私有镜像仓库,可以根据实际需求进行优化,高效且充分地利用计算资源。通过缩小镜像大小和自建企业级私有镜像仓库等一系列措施可以有效减少网络耗时,以达到快速部署的目的。Docker技术还支持一系列集群编排和监管工具对Docker集群进行更完善的使用,利用Docker技术构建集群数据库能充分利用Docker的隔离性和快速分发更新的特性。最后,本文研究Docker容器技术与SQL并行查询相结合的优势,利用Docker容器技术在分布式节点上构建拥有统一映像的SQL并行查询处理系统。在本文的最后一部分进行总体设计分析和关键技术的研究,并对系统的效率进行测试分析。本文的创新点在于将SQL并行查询和Docker容器的进程级虚拟化机制完美结合在一起。Docker的“瘦身级”虚拟化机制比普通物理机和虚拟机更节约计算和存储资源,更完美适应于计算集群的搭建、部署和开发,可以将SQL并行查询更专注于自动化,轻松部署,操作安全可靠,并有助于规模化横向扩展。在容错机制方面,一旦分布式的Docker集群中出现宕机影响查询结果时,可以利用Docker容器集群管理方案进行整体回滚,将所有非系统应用进行容器化有助于快速启动备用计算容器节点。增加容器集群调度优化处理更能在系统“瘦身”的基础上更细粒度的分化物理节点并增加系统资源的利用率,所以这一课题很有研究和应用价值。