1.大数据体系
1)业务应用:BI报表,数据挖掘,营销分析,精准推荐
2)数据开发:Airflow,DAG
-
权限管控:Apache Ranger,GDPR
-
分析引擎:S 批式分析:Spark,Hive,MR Q 实时分析:Flink L 交互分析Presto,ClickHouse,Doris 消息队列:Kafka,Pulsar,NSQ
5)资源调度:TARN,K8S
6)存储系统:HDFS,HBase,NAS,Object Store,数据湖
7)基础设施:ESC,存储,VPC
- 管控运维,集群创建,集群管理,服务管理,用户管理,监控报警,日志查询
2.SQL处理流程:
(SQL)Parser(AST)Analyzer(Logical Plan)Optimizer(Physical Plan)Executor
3.Parser:
例子:selectstmt:根节点
子节点:selectlist:包含选择的列的信息
fromclause:包含选择的表,数据库的信息
whereclause:包含不同的where条件
4.AST:抽象语法树,其中的每个节点都是一个算子
连接-聚合-堆排(left-deep tree)
5.查询优化(最复杂)
同样的事情不同的方法 对分布式逻辑计划进行拆分——子树
6.常见的查询优化器 RBO-谓词下推(显著减少计算量) -传递闭包:根据一些条件推导新条件 -RUNTIME FILTER
关系代数,匹配等价代换 CBO:统计信息,代价模型,枚举策略
bloom filter:大小不随集合改变 哈希表
7.社区开源实践 Apache calcite:
1)核心:查询优化器
2)关系表达式:算子,表达式
3)对接不同的系统
4)用join来描述等价集合
5)精髓——剪枝:减少搜索空间
6)calcite代码,如何设计memo,数据结构,group
8.前沿趋势 1)引擎架构的进化(存储与计算分离)
2)cloud云原生
3)湖仓一体
4)DATA+AI 对SQL有新的要求