这是我参与「第四届青训营 」笔记创作活动的的第1天
以下是大数据体系图
这节课主要内容有:大数据体系和sql、常见的查询优化器、社区开源实践、介绍大数据前沿趋势
大数据体系和SQL
1.1、大数据体系中的sql
对于批示分析的Spark、Hive、MR,实时分析Flink,交互分析Presto、ClickHouse、Doris都是提供了sql接口
1.2、sql的处理流程
Parser
String->AST:
词法分析:拆分字符串,得到关键词、数值常量、字符串常量、运算符号等taken。
语法分析:将taken组成AST node,最终得到一个AST。
实现:递归下降(ClickHouse)、flex和Bison(PostgreSQL)、javaCC(Flink)、Antlr(Presto.Spark)
Analyzer和Logical Plan
查询优化
Physical Plan 和 Executor
常见的查询优化器
2.1、查询优化器的分类
RBO - 关系代数
RBO 有四种优化规则:列裁剪、谓词下推、传递闭包、Runtime Filter
列裁剪
谓词下推
传递闭包
Runtime Filter
CBO的概念
CBO-统计信息
CBO-统计信息的收集方式
CBO-统计信息的推导规则
CBO-统计信息的问题
CBO-执行计划枚举
以下用动态规划的方式举例,找出执行计划的最小开销
社区开源实践
Apache Calcite概览
Calcite RBO
Calcite CBO
前沿趋势
主要趋势就是存储计算分离、云原生、湖仓一体、DATA+AI
个人总结:
通过本节课我了解到了大数据体系以及SQL的处理流程,了解了常见的查询优化器以及一些简单的原理,并且对大数据的前沿趋势有了一定的认识。