这是我参与【第四届青训营】笔记创作活动的第三天
Apache Calcite概括
- One site fits all: 统一的SQL查询引擎
- 模块化、插件化、可靠稳定
- 支持异构数据模型:关系型、半结构化、流试、地理空间数据
- 内置CBO和RBO
Calcite RBO概括
HepPlanner里面有
- 优化规则(rule):patten:匹配表达式子树;等价变换:得到新的表达式
- 内置100+优化规则
- 四种匹配规则:Depth_first深度优先;Top-down拓扑顺序;Bottom-up和Top-down相反
- 遍历所有rule 直到没有rule可以被触发
- 优化速度快,简单实现,但是不能保证最优
Volcano Planner
- 基于volcano/cascade框架
- 成本最优假设:先求解子问题最优
- Memo:储存优选执行计划;本质:AND/OR graph;共享子树减少内存开销
- Group:等价计划集合
- Top-down动态规划搜索
- 应用Rule搜索候选计划
- 得到group winner 找到当前的最优计划
- 剪枝(brunch and bound pruning):减少搜索空间
04前沿趋势
- 引擎架构的进化:存储计算分离,现在是一体的,更换时需要很大的开销/一体化:事务性数据和分析型数据两者结合,既可以分析也可以服务;HTSAD:在一个系统里进行所有事物,成本降低
- 云原生:根据负载动态调整规模,减小成本
- 湖仓一体:数据仓库,对原始数据进行处理存入仓库,会丢失原始数据;数据湖:把原始数据当成文件储存,但是很难管理;将两者优点结合
- Data+AI
Data+AI
AI4DB
- 自配置:智能调参(OtterTune,QTune),负载预测/调度
- 自诊断,自愈合:错误恢复/数据迁移
- 自优化:统计信息估计(learned cardinality)更准确估算统计信息,代价估计,学习型优化器(IBM,DB2,LEO),索引/视图推荐
DB4AI
- 内嵌人工智能算法(MLSQL,SQLFLOW)
- 内嵌机器学习框架(SparkML)