【大数据学习之路】SparkSQL,mapreduce(大数据离线计算)方向学习(一)
【大数据学习之路】SparkSQL,mapreduce(大数据离线计算)方向学习(一)
sql语句的模块解析
当我们写一个查询语句时,一般包含三个部分,select部分,from数据源部分,where限制条件部分,这三部分的内容在sql中有专门的名称:
当我们写sql时,如上图所示,在进行逻辑解析时会把sql分成三个部分,project,DataSource,Filter模块,当生成执行部分时又把他们称为:Result模块、DataSource模块和Opertion模块。
那么在关系数据库中,当我们写完一个查询语句进行执行时,发生的过程如下图所示:
整个执行流程是:query -> Parse -> Bind -> Optimize -> Execute
-
1、写完sql查询语句,sql的查询引擎首先把我们的查询语句进行解析,也就是Parse过程,解析的过程是把我们写的查询语句进行分割,把project,DataSource和Filter三个部分解析出来从而形成一个逻辑解析tree,在解析的过程中还会检查我们的sql语法是否有错误,比如缺少指标字段、数据库中不包含这张数据表等。当发现有错误时立即停止解析,并报错。当顺利完成解析时,会进入到Bind过程。
-
2、Bind过程,通过单词我们可看出,这个过程是一个绑定的过程。为什么需要绑定过程?这个问题需要我们从软件实现的角度去思考,如果让我们来实现这个sql查询引擎,我们应该怎么做?他们采用的策略是首先把sql查询语句分割,分割不同的部分,再进行解析从而形成逻辑解析tree,然后需要知道我们需要取数据的数据表在哪里,需要哪些字段,执行什么逻辑,这些都保存在数据库的数据字典中,因此bind过程,其实就是把Parse过程后形成的逻辑解析tree,与数据库的数据字典绑定的过程。绑定后会形成一个执行tree,从而让程序知道表在哪里,需要什么字段等等
-
3、完成了Bind过程后,数据库查询引擎会提供几个查询执行计划,并且给出了查询执行计划的一些统计信息,既然提供了几个执行计划,那么有比较就有优劣,数据库会根据这些执行计划的统计信息选择一个最优的执行计划,因此这个过程是Optimize(优化)过程。
-
4、选择了一个最优的执行计划,那么就剩下最后一步执行Execute,最后执行的过程和我们解析的过程是不一样的,当我们知道执行的顺序,对我们以后写sql以及优化都是有很大的帮助的.执行查询后,他是先执行where部分,然后找到数据源之数据表,最后生成select的部分,我们的最终结果。执行的顺序是:operation->DataSource->Result
sparkSQL原理:
https://blog.csdn.net/bingdianone/article/details/84791251
- 【大数据学习之路】SparkSQL,mapreduce(大数据离线计算)方向学习(三)
- 大数据SQL交互查询 presto/spark/mapreduce 计算引擎对比
- 阿里封神谈hadoop学习之路 封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 spark
- 小白学习大数据之路——在docker集群上搭建spark集群
- 第64课:SparkSQL下Parquet的数据切分和压缩内幕详解学习笔记
- 离线轻量级大数据平台Spark之MLib机器学习库概念学习
- 基于PySpark的网络服务异常检测系统 (四) Mysql与SparkSQL对接同步数据 kmeans算法计算预测异常...
- Hive学习之路 (六)Hive SQL之数据类型和存储格式
- 大数据处理技术怎么学习呢,学习大数据要学习那个方向呢?
- 一共81个,开源大数据处理工具汇总:查询引擎、流式计算、迭代计算、离线计算、键值存储、表格存储、文件存储、资源管理、日志收集系统、消息系统、分布式服务、集群管理、基础设施、搜索引擎、数据挖掘=监控
- Spark学习之路 (二十)SparkSQL的元数据
- Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark实战高手之路】
- 产品经理学大数据——大数据软件框架:Spark(3)之Spark SQL
- 大数据学习之路108-spark streaming基于redis历史state统计
- Oracle学习之路(一):oracle简介+基本sql语句+条件查询+排序数据理论与案例
- 【大数据挖掘学习-1】计算模型:MapReduce
- Spark中组件Mllib的学习18之corr:两组数据相关关系计算(Pearson、Spearman)
- 04大数据内存计算spark系列贴-SHARK(SQL on spark 0.x)
- Spark SQL 初探: 使用大数据分析2000万数据
- 大数据采集、清洗、处理:使用MapReduce进行离线数据分析完整案例