sql预习 | 青训营笔记

140 阅读3分钟
这是我参与「第四届青训营 」笔记创作活动的第1天,今天我预习了青训营官方发的学习资料一的第一节。笔记如下:

1、大数据体系:

理论上的大数据体系包含了hdfs(分布式文件存储系统)、mapreduce(分布式计算框架)、yarn(资料调度器)、hive(数据分析)、flume(日志采集)、hbase(面向列的分布式数据库)等组件。(个人猜想生产系统中的大数据体系也是在这些组件的基础上实现的)

大数据体系.png

2、sql的基本用法:增删查改

增:insert into ...

删:delete from ...

查:select * from ...

改:update ... set ...

?(不太记得了)sql的关系代数基础知识:

选择运算:

投影运算:

并运算:

差运算:

交连接:

自然连接:

3、编译原理:

a.词法分析:编译的第一的阶段,从左到右逐行扫描源程序的字符,识别出各个单词,确定单词的类型,并将识别出的单词转换成统一的机内表示:词法单元(token)形式;

b.语法分析:编译的核心部分,其任务是检查词法分析器输出的token序列中识别出各类短语,并构造语法分析树;

c.抽象语法树:描述句子的语法结构。(?不太了解)

4、sql里的执行计划

a.逻辑计划(Logical Plan)

b.物理计划(Physical Plan)

c.分布式执行计划:Plan Fragment

d.Left-deep tree

5、sql执行的基本流程:

a.打开客户端,与sql服务器建立连接并认证账号和权限校验;

b.认证完成后,客户端发送查询sql脚本给服务器;

c.服务器检查查询缓存,如果存在该查询缓存,则直接返回存储在缓存中的结果,否则进行sql的解析和预处理,然后根据优化器生成的执行计划来调用存储引擎的api来执行查询,最终返回结果。

任务调度:DAG(有向无环图?)

6、分布式系统中 shuffle 的实现方式

mapreduce确保每个reducer的输入都是按键排序的。系统执行排序、将map输出作为输入传给reducer的过程成为shuffle。

hash shuffle、consolidation hash shuffle、sort shuffle、tungaten shuffle

7、SQL 中 group-by 和 join 的执行方式

a.group-by的执行方式:依据by后的规则对数据进行分组,即将数据集划分成若干个“小组”,针对若干个小组做处理;

b.join的执行方式:连接数据库中的两张或两张以上的表,join分为:

内连接:(inner join)

外连接:(outer join)

而外连接又有3种:

左外连接:(left join)

右外连接:(right join)

?全外连接:(full join)

其实学习资料里还有很多内容,如查询优化器和sql相关的前沿趋势,我想等上过课后有更清晰的认识后再进行记录。 当然本篇内容有很多错漏之处,还请大家指教(或者后面懂了也会来补充)!非常感谢!

一更于2022年7月23日晚22:28