大数据体系和SQL的处理流程| 青训营笔记

179 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第1天

--------20220724

昨天是大数据进阶班上课的第一天,因为我发现我上课真的容易走神,于是,我决定用文字来进行一个记录.这一篇记录的是我们23号上午第一节课:SQL Optimizer 解析

在我们上课之前,老师分享了这篇文章,也就是需要我们在课前进行一个预习,文章链接如下【大数据专场 学习资料一】第四届字节跳动青训营 - 掘金 (juejin.cn)
那下面就是对于周东炎老师的上课内容

大数据体系

因为版权的问题,我就自己用Figma画了一张图 image.png

第一部分讲解了大数据体系,其分为三栏,最左边这一栏从底往上将大数据的各种应用划分为了不同的层次,最低下是基础设施,然后往上依次是存储系统、资源调度、分析引擎、权限管控、数据开发和业务应用。然后中间这一栏的话是对左边的大类里面更细节的划分。右边这一栏是工程里面为了让系统更好的运行,一些管理的组件。有感控运维、集群运维、集群创建、服务管理、用户管理、监控报警、日志查询。
首先下面是基础设施,像ECS,存储,VPC之类的
然后是存储系统,国内目前常用的是HDFS,还有一些自研数据库之类的
这一块大家其实可以看一下我上面放的图,没什么好讲的
这一次的青训营,我们会从分析引擎,也就是计算这一块展开。

大数据体系和SQL

大数据体系中的SQL

(介绍大数据体系和SQL的处理流程,重点介绍SQL在分布式环境下的处理)
把SQL查询放在第一节课讲,其实是有原因的,就是首先SQL是非常流行的,很多人都在用,并且用法较为简单。像我在图中画的分析引擎那一块,都可以用SQL接口\

SQL的处理流程

SQL会经过四个组件的处理,第一步是一个SQL输入,变成输出为AST,然后AST会经过一个Analyzer的处理,输出为一个Logical Plan(就是逻辑的计划),之后经过一个优化器处理,也即是本节课的重点内容 Optimizer,然后优化器处理之后,会输出为一个Physical Plan(物理执行计划),最后是Executor,他会执行其计划,然后处理数据,然后发给用户。


个人总结:所以其实SQL一条语句,在SQL中查询是通过select语句以及一些辅助的子句来实现需要的输出,我课下也去了解了一下Mysql SQL的处理流程。mysql client和 mysql server进行通信的时候,如果走完所有的MySQL Server模块,需要依次经过连接器、解析器、优化器、执行器、存储引擎。过程还是较为复杂的。SQL的内部实现过程我们不用关心,但是对于查询请求,它的执行过程和执行顺序对我们对结果的认识有很大的影响,但是真正的执行过程需要深入数据库内部才能明白使用哪些方式(例如索引)优化。
大家一起加油呀!!!!!