这是我参与「第四届青训营 」笔记创作活动的第1天,今天我预习了青训营官方发的学习资料一的第一节。笔记如下:
1、大数据体系:
理论上的大数据体系包含了hdfs(分布式文件存储系统)、mapreduce(分布式计算框架)、yarn(资料调度器)、hive(数据分析)、flume(日志采集)、hbase(面向列的分布式数据库)等组件。(个人猜想生产系统中的大数据体系也是在这些组件的基础上实现的)
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