摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第一章 绪论 | 第9-16页 |
1.1 研究背景及意义 | 第9-10页 |
1.2 研究现状 | 第10-13页 |
1.2.1 Spark研究现状 | 第10-11页 |
1.2.2 查询优化研究现状 | 第11-13页 |
1.3 研究内容 | 第13-14页 |
1.4 文章组织结构 | 第14-15页 |
1.5 本章小结 | 第15-16页 |
第二章 相关理论研究 | 第16-29页 |
2.1 Spark简述 | 第16-21页 |
2.1.1 弹性分布式数据集 | 第17-19页 |
2.1.2 Spark作业调度与执行 | 第19-21页 |
2.2 Spark SQL简述 | 第21-25页 |
2.2.1 基础数据抽象DataFrame | 第22-23页 |
2.2.2 查询优化框架Catalyst | 第23-25页 |
2.3 查询优化 | 第25-28页 |
2.3.1 基于规则的优化 | 第25-27页 |
2.3.2 基于代价模型的优化 | 第27-28页 |
2.4 本章小结 | 第28-29页 |
第三章 Spark SQL代价模型分析与设计 | 第29-48页 |
3.1 Spark与MapReduce对比 | 第29-31页 |
3.2 Spark上的等值连接实现方式 | 第31-33页 |
3.3 基于代价模型的优化系统架构 | 第33-34页 |
3.4 统计数据字典设计 | 第34-35页 |
3.5 多表连接顺序选择 | 第35-37页 |
3.6 中间结果估计 | 第37-44页 |
3.6.1 选择操作 | 第37-39页 |
3.6.2 等值连接 | 第39-43页 |
3.6.3 Select-Project-Join查询 | 第43页 |
3.6.4 分组聚合操作 | 第43-44页 |
3.7 代价模型 | 第44-47页 |
3.7.1 Shuffle过程代价估算 | 第45-46页 |
3.7.2 选择操作代价估算 | 第46页 |
3.7.3 投影操作代价估算 | 第46页 |
3.7.4 等值连接代价估算 | 第46-47页 |
3.7.5 分组聚合代价估算 | 第47页 |
3.8 本章小结 | 第47-48页 |
第四章 基于代价模型的优化原型实现 | 第48-56页 |
4.1 优化原型在Catalyst中的位置 | 第48-49页 |
4.2 统计数据字典实现 | 第49-53页 |
4.2.1 直方图类定义 | 第50-51页 |
4.2.2 在Spark上的等深直方图生成 | 第51-52页 |
4.2.3 直方图持久化存储 | 第52页 |
4.2.4 统计信息管理 | 第52-53页 |
4.3 查询计划生成与选择 | 第53-55页 |
4.3.1 查询计划代价估算 | 第54页 |
4.3.2 物理查询计划生成 | 第54-55页 |
4.4 本章小结 | 第55-56页 |
第五章 查询优化性能评估 | 第56-69页 |
5.1 实验环境 | 第56-57页 |
5.2 实验数据及测试语句 | 第57-62页 |
5.2.1 TPC-H标准 | 第57-58页 |
5.2.2 测试语句 | 第58-62页 |
5.3 性能测试结果及分析 | 第62-68页 |
5.3.1 实验结果 | 第62-65页 |
5.3.2 结果分析 | 第65-68页 |
5.4 本章小结 | 第68-69页 |
第六章 总结与展望 | 第69-72页 |
6.1 全文总结 | 第69页 |
6.2 存在问题与不足 | 第69-70页 |
6.3 未来工作展望 | 第70-72页 |
致谢 | 第72-73页 |
参考文献 | 第73-76页 |