摘要 | 第5-6页 |
Abstract | 第6页 |
第一章 引言 | 第11-20页 |
1.1 项目背景 | 第11-12页 |
1.2 工业界主要Query Engine系统现状研究 | 第12-18页 |
1.2.1 Apache Hive | 第12-13页 |
1.2.2 Apache SparkSQL | 第13-15页 |
1.2.3 Google Dremel | 第15-17页 |
1.2.4 分析与总结 | 第17-18页 |
1.3 系统概述 | 第18-19页 |
1.4 本论文的组织结构 | 第19-20页 |
第二章 技术综述 | 第20-28页 |
2.1 分布式Dataflow技术 | 第20-22页 |
2.2 LLVM编译器技术 | 第22-24页 |
2.3 Protocol Buffers技术 | 第24-26页 |
2.4 Flex词法分析和Bison语法解析技术 | 第26-27页 |
2.6 本章小结 | 第27-28页 |
第三章 系统需求分析与设计 | 第28-53页 |
3.1 需求分析 | 第28-36页 |
3.1.1 Data Retrieval Query功能需求分析 | 第29-32页 |
3.1.2 DML功能需求分析 | 第32-33页 |
3.1.3 DDL功能需求分析 | 第33-34页 |
3.1.4 支持多种数据类型功能需求分析 | 第34-36页 |
3.3 系统架构设计 | 第36-41页 |
3.3.1 系统整体架构 | 第36-38页 |
3.3.2 各模块组织关系 | 第38-40页 |
3.3.3 模块间交互 | 第40-41页 |
3.4 各模块详细设计 | 第41-52页 |
3.4.1 Frontend模块设计 | 第41-44页 |
3.4.2 Intermediate Representation(IR)模块设计 | 第44-47页 |
3.4.3 Pass Framework模块设计 | 第47-49页 |
3.4.4 Runtime模块设计 | 第49-52页 |
3.5 本章小结 | 第52-53页 |
第四章 系统关键模块的实现 | 第53-79页 |
4.1 Frontend模块的实现 | 第53-60页 |
4.1.1 抽象语法树AST的实现 | 第53-54页 |
4.1.2 前端查询数据流表示QueryDAG的实现 | 第54-56页 |
4.1.3 语义分析的实现 | 第56-58页 |
4.1.4 查询计划执行的实现 | 第58-60页 |
4.2 IR模块的实现 | 第60-67页 |
4.2.1 逻辑计划Logical Plan的实现 | 第60-62页 |
4.2.2 类型Typelnfo的实现 | 第62-65页 |
4.2.3 表达式Expression的实现 | 第65-66页 |
4.2.4 物理计划生成的实现 | 第66-67页 |
4.3 Pass Framework模块的实现 | 第67-73页 |
4.3.1 Pass的实现 | 第68-69页 |
4.3.2 PassManager的实现 | 第69-70页 |
4.3.3 RuleDispatcher的实现 | 第70-71页 |
4.3.4 谓词下推PredicatePushDown的实现 | 第71-73页 |
4.4 运行时库Runtime模块的实现 | 第73-78页 |
4.4.1 数据流格式RowBatch的实现 | 第74-77页 |
4.4.2 分组算子ShuffleKeyReader的实现 | 第77-78页 |
4.5 本章小结 | 第78-79页 |
第五章 总结与展望 | 第79-81页 |
5.1 总结 | 第79-80页 |
5.2 进一步工作展望 | 第80-81页 |
参考文献 | 第81-87页 |
致谢 | 第87-89页 |