论文部分内容阅读
数据仓库作为决策支持系统的重要分析工具多年来一直备受关注。在进行海量数据决策分析时,分布式数据仓库扮演着重要的角色。本文以天玑大数据引擎中的分布式数据仓库组件——DSQL为原型,从解决实际业务需求的角度出发,带着为决策支持提供更实时服务的目的,对优化DSQL系统架构和执行流程进行了深入地研究和分析。 本文对DSQL系统优化的研究工作主要围绕执行查询时的数据流展开,分别在数据流传输和数据流执行两部分寻找切入点,通过分析原系统在一些查询场景下的缺陷后设计了基于异步数据流的传输和执行方案。 本文在数据流传输场景上指出,原系统采用的Thrift数据通信框架中心化程度高,并发度低,并且数据的来回确认机制增加了网络时延。本文创新性地引入消息队列模型,放弃使用Thrift框架并改变原系统的传输流程,转而使用可扩展协议的高性能通信库nanomsg,从套接字层面设计并实现传输逻辑。此方案改变了数据传输统一管理的设计理念,用套接字互连的策略实现收发双方P2P连接,互不影响的收发双方能同时进行数据传输,提高数据传输的并发度。另外,本文还针对无序传输的场景,使用弱一致性的计数方案进行传输确认,降低网络时延。 在数据流执行过程中,本文发现原系统不能均衡调度系统资源处理计算密集型查询。闲置资源得不到充分利用,导致此类查询效率较低。本文提出了多线程并发的执行引擎方案,优化后的执行引擎能根据存储节点数以及系统资源情况自适应的决定每个操作的线程数,大幅度提高了执行查询时每个执行节点系统资源利用率,提高查询效率。在实现这一方案的过程中,本文重点解决了JOIN操作的并发问题,设计了针对DSQL系统执行引擎的多线程Partition Hash Join算法。本文对数据流执行的优化策略是建立在数据流传输优化方案的基础之上,优化过后的数据流传输模型为多线程数据流执行时的数据分配提供了诸多便捷。 本文实验测试结果表明,建立在数据流传输优化基础上的数据流多线程执行方案对典型查询案例有显著效果提升,而在决策支持实际场景下,对于不同类型的查询优化方案的提升效果有所区别。