这是我参与「第四届青训营 」笔记创作活动的的第1天。
之前并没有写过技术文章也没有接触过大数据,这次借字节跳动大数据青训营去学习一下大数据,同时我会发布学习过程中我的一些预习复习笔记和个人感受以及给大家推一些学习过程中我参考的很有价值的博客。我注意到笔记是用markdown写的,刚好熟练下。
因为是第一次写技术类的笔记,尤其是还发在了网上,所以下面如果有侵权或者违反社区规定的地方,我第一时间删除。如果友友们有关于这些知识点更详细的文章的话,在评论区可以发出来一起学习。三人行必有我师焉,希望在这个暑假我可以学到更多。
大数据体系,批式计算、流式计算、交互分析引擎
大数据体系
大数据分析,听这个名字我想的是那是不是有所谓的小数据分析,在掘金上翻看了一些文章后我才明白,数据分析已经经历了很长时间的发展了,在大数据技术来临之前,已经有了成系统的数据分析技术,最著名的是以BI系统为主的数据分析,大数据的到来只是给数据分析这个名词提升了曝光度,把他推向了更多人的视觉范围里。下面我画了一副关于BI系统的流程图:
graph TD
各种数据 --> 数据加载与转换 --> Cube --> BI应用
BI系统的Cube是一个核心模块,在Cube上可以进行多种操作。而且很多BI系统都是基于关系型数据库,因而底层是SQL语句,但是由于SQL语句在多维操作和分析上有限制,所以Cube有自己独特的MDX语言。
但因为一系列问题的出现,大数据分析平台应运诞生,期中有很多架构,比如流式架构、Lambda架构、Kappa架构、Unified架构等
批式计算与流式计算
批式计算:统一收集数据,存储到数据库中,然后对数据进行批量处理的数据计算方式。 流式计算:对数据流进行处理,是实时计算。
交互分析引擎
多维MOLAP(Multidimensional OLAP)和关系型ROLAP(Relational OLAP) 以及混合HOLAP(Hybird) 详解大数据交互式引擎的分类 - 掘金 (juejin.cn)我是通过上面这篇文章学习的,其他青训营小伙伴可以去康康。
关系代数基础知识
投影(Projection):投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作 πA(R)πA(R),
其形式如下:πA(R)={t[A]|t∈R}πA(R)={t[A]|t∈R}
选择(Selection):选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作 σF(R)σF(R),
其形式如下:σF(R)={t|t∈R∧F(t)=True}
编译原理
这个模块我就不写了,直接给大家推一个文章,我从头看到尾了,太佩服作者了。 写给前端的编译原理科普 - 掘金 (juejin.cn)
我就简单说下我和汇编的交集吧。我虽然学习的是Java后端开发之类的,但是我不是科班的,我是学电子信息的,大三上我们有本书叫做计算机的组成与设计,我们学习的是RISCV版的。在这门课里我学习了我之后再也不想写的语言:汇编语言了。同样一个程序,我们得把程序拆分成一条一条指令去写,比如大于等于,小于等于,立即数的加减等等。运行速度我没啥感觉,但代码长度我感触颇深。
SQL 里的执行计划
还是直接给大家推一个我这部分预习过程中参考的一篇文章吧,作者真的写的很详细。 神秘莫测的 SQL 执行计划 - 掘金 (juejin.cn)
shuffle 的实现方式
Flink Sort-Shuffle 实现简介 - 掘金 (juejin.cn)
因为我对于这些大数据的知识也是才开始学习,所以学习的比较慢,这次就先写到这里,明天上课后晚上我会再更新下上课时候的笔记以及下节课的预习内容。