分享好友 最新动态首页 最新动态分类 切换频道
大数据--浅谈SQL Optimizer 解析
2024-12-28 07:09

浅谈SQL Optimizer 解析

大数据体系&SQL
一、大数据体系
大数据体系自上而下有七层,分别是

  1. 业务应用
    业务应用层次,主要业务应用包括BI报表、数据挖掘、营销分析、精准推荐等,主要工作是管控运维。
  2. 数据开发
    数据开发层次,主要技术包括Airflow、DAG等,主要工作是集群创建。
  3. 权限管控
    权限管控层次,主要技术包括Apache Ranger、GDPR等,主要工作是集群创建。
  4. 分析引擎(SQL
    分析引擎分为批式分析、实时分析、交互分析等,主要工作是集群管理、服务管理。
    (1)批式分析
    主要包括Spark、Hive、MR等技术。
    (2)实时分析
    主要包括Flink技术。
    (3)交互分析
    主要包括Presto、ClickHouse、Doris等技术。
  5. 资源调度
    资源调度层次主要包括YARN、K8S等技术,主要工作是用户管理。
  6. 存储系统
    存储系统层次主要包括HDFS、HBase、NAS、Object Store、数据湖等技术,主要工作是监控报警。
  7. 基础设施
    基础设施层次主要包括ECS、存储、VPC等技术,主要工作是日志查询。
    二、SQL的处理流程
    SQL的处理需经过Parser,Analyzer,Optimizer和Executor处理过程。

1.Parser
(1)把文本变成抽象语法树结构(AST
(2)经过词法分析(拆分字符串,得到关键词、数值常量、字符串常量、运算符号等)得到token
(3)经过语法分析将token组成AST node组成AST node,最终得到一个AST
2.Analyzer
检查并绑定Database,Table,Column等元信息
SQL的合法性检查,比如min/max/avg的输入是数值
AST->Logical Plan
Logical Plan
1.逻辑的描述SQL对应的分布骤计算操作
2.计算操作:算子(operator
3.Optimizer
Optimizer是查询优化,它的主要工作是优化数据访问,根据提交的SQL语句,综合各种已有的信息(主要是系统编目表)来产生最优的可执行的访问方案。
physical plan
1.目标:最小化网络传输
2.利用上数据的物理分布(数据亲和性
3.增加shullfe算子
4.Executor
Executor分为单机与多机并行。
单机并行包括:cache,pipeline,SIMD。
多机并行包括:一个fragment对应多个实例。
常见的查询优化器
一、查询优化器的分类
1、Top-down Optimizer
从目标输出开始,自上而下遍历计划树,找到完整的最优执行计划
2、Bottom-up Optimizer
从零开始,自下而上遍历计划树,找到完整的执行计划
3、Rule-based Optimizer
根据关系代数等价语义,重写查询;基于启发式规则;会访问表的元信息(catalog,不会涉及具体表数据(data)。
4、Cost-based Optimizer
使用一个模型估算执行计划的代价,选择代价最小的执行计划
二、RBO(Rule-based Optimizer
1、RBO(Rule-based Optimizer)原理
ROB(Rule-based Optimizer)是基于规则的优化器,原理包括两方面
(1)利用关系代数,即运算符select,project,join等
(2)利用等价变换,即结合律、交换律、传递性等
2、RBO(Rule-based Optimizer)优化原则
(1)读数据操作尽可能少,尽可能快(I/O
(2)传输数据尽可能少,尽可能快(Network
(3)处理数据尽可能少,尽可能快(CPU & Memory
3、RBO(Rule-based Optimizer)主要优化方式
(1)列剪裁
将不需要的列信息直接裁剪,大幅度减少查询时读取的读取数据量

(2)谓词下推
将数据过滤条件向下推,大幅度减少join操作时所需要读取的数据量

(3)传递闭包
利用等价条件和过滤条件推出新的过滤条件,从而在谓词下推操作的基础上再次减少join操作所需要读取的数据量

(4)Runtime Filter
在运行时利用列数据的min-max,in-list等信息减少Filter操作时所需要读取的数据量

4、RBO(Rule-based Optimizer)小结

主流RBO实现一般都有几百条基于经验归纳得到的优化规则
优点:实现简单,优化速度快
缺点:不保证得到最优的执行计划

三、CBO(Cost-based Optimizer
1、CBO概念
CBO(Cost-Based Potimizer)是基于成本的优化器,它使用一个模型估算执行计划,选择代价最优的执行计划,执行计划的代价等于所有算子的执行代价之和,通过RBO得到(所有)可能的等价执行计划。
算子的代价包括CPU、内存、磁盘IO、网络IO等代价。
2、CBO过程
统计信息+推导规则->计算算子代价->计算执行计划代价->执行计划枚举

3、统计信息
(1)统计信息
原始表统计信息

  1. 表或者分区级别:行数、行平均大小、表在磁盘中占用多少字节等
  2. 列级别:min、max、num nulls、num not nulls、num distinct value(NDV)、histogram等
    推导统计信息
  3. 选择率(selectivity): 对于某一个过滤条件,查询会从表中返回多大比例的数据
  4. 基数(cardinality): 在查询计划中常指算子需要处理的行数
    (2)统计信息的收集方式
    1.在DDL指定需要收集的统计信息,数据库会在数据写入时收集或更新统计信息

2.手动执行explain、analyze、statement触发数据库收集或者更新统计信息

3.动态采样等

(3)统计信息推导规则(前提假设列和列之间独立,列的值是均匀分布
①AND条件: fs(a AND b) = fs(a) * fs(b)
②OR条件: fs(a OR b) = fs(a) + fs(b) - (fs(a) * fs(b))
③NOT条件: fs(NOT a) = 1.0- fs(a)
④等于条件(x = literal) literal < min && literal > max: 0 V1/NDV
⑤小于条件 (x < literal) literal < min: 0 literal > max: 1 (literal - min) / (max - min)
4、执行计划枚举
通常使用贪心算法或动态选出最优的执行计划
5、CBO小结

CBO使用代价模型和统计信息估算执行计划的代价
CBO利用贪心算法或者动态规划算法寻找最优的执行计划
在大数据场景下CBO对查询性能非常重要

社区开源实践
一、概览
目前社区开源实践的数据库包含以下几类

二、Apache Calcite
1、概览

one size fits all:统一的SQL查询引擎
模块化、插件化、稳定可靠
支持异构数据模型(关系型、半结构化、流式、地理空间数据
内置RBO和CBO

2、Calcite RBO
HepPlanner
1.优化规则(rule)>>>>pattern:匹配表达式子树>>>>>等价交换:得到新的表达式
2.内置100+种优化规则
3.四种匹配规则
(1) ARBITRARY/DEPTH_FIRST:深度优先
(2) TOP DOWN:拓扑顺序
(3) BOTTOM_UP:与TOP_DOWN 相反
4.遍历所有的rule直到没有rule可以被触发
5.优化速度快,实现简单,但是不保证最优
3、Calcite CBO
VolcanoPlanner

基于Volcano/Cascadek框架
成本最优假设
Mome:存储候选执行计划
Group:等价计划合集
Top-down:动态规划搜索
Volcano/Cascadek精髓:Memo、动态规划、剪枝

前沿趋势
一、引擎架构的进化

存储计算分离
一体化(HTAP、HSAP、HTSAP

二、Cloud云原生

serverless

三、湖仓一体

Query Federation

四、DATA + AI
1、AI4DB

自配置(智能调参、负载预测/调度
自诊断和自愈合(错误恢复和迁移
自优化(统计信息估计、代价估计、学习型优化器、索引/视图推荐

2、DB4AI

最新文章
空气能热水器全国售后维修服务电话热线/故障维修客服中心 - 焦点 - 百科知识-蓝心网
空气能热水器售后服务电话-400各市区网点电话:400-658-8618空气能热水器售后服务电话-400各市区网点电话尊敬的客户您好!这里是空气能热水器售后服务电话-400各市区网点电话,如果您在使用过程中有什么问题,请拨打全国24小时服务热线电话
我国科技创新成果?
1“华龙一号”全球首堆商业运行我国自主三代核电技术跻身世界前列上万名建设者常年奋战,5300多家设备制造企业大力协同,自2015年5月开工以来,“华龙一号”全球首堆便开始了“加速跑”,并终于在5年多后交出成绩单。1月30日,“华龙一号”
青岛风水大师易必佑的案例排名、风水格局青岛风水先生附加联系方式地址电话号码
在中国的山东省,青岛市以其美丽的海滨风光和丰富的文化遗产而闻名。除了其自然和文化的魅力之外,青岛还有一个特殊的名声,那就是那里居住着一位非常且技艺高超的风水大师。这位大师以其高昂的服务费用而著称,但如此,他依然吸引了众多追
艺术市场生态报告
策划/吴明娣 统筹/本刊记者 武文龙拍卖动态——NO.1嘉德秋拍大观夜场5.68亿收槌事件:2013年11月16日晚,中国嘉德2013秋季拍卖会“大观”夜场在北京国际饭店会议中心落幕,经过三个小时的激战,最终成交额逾5.68亿元。经历过春拍市场回暖以
Win Server 2003 X64虚拟机安装,并进行兼容性测试
目录 1 下载Win Server 2003 X64镜像 2 VMware Workstation Pro安装镜像 3 美化UI 4 打补丁与升级 5 常用软件安装         5.1 火绒         5.2 火狐浏览器         5.3 Chrome谷歌浏览器         5.4
中国气体检测仪器行业运营动态及投资规模预测报告2024-2030年
中国气体检测仪器行业运营动态及投资规模预测报告2024-2030年【全新修订】:2024年12月【出版机构】:中赢信合研究网内容部分有删减, 详细可参考【出版机构】:中赢信合研究网 查看完整信息第一部分 行业现状第一章 全球气体检测仪器行业
关于JavaScript基础解析
起源与发展 LiveScript到JavaScript:1995年,Netscape的Brendan Eich在短短十天内开发了LiveScript,后来更名为JavaScript。 标准化历程: ECMAScript (ES):由ECMA International组织定义的标准规范。 版
牡丹江防盗门全国统一售后服务热线/总部人工客服号码 - 科技 - 百科知识-蓝心网
牡丹江防盗门售后服务电话-400各市区网点电话:400-658-8618牡丹江防盗门售后服务电话-400各市区网点电话尊敬的客户您好!这里是牡丹江防盗门售后服务电话-400各市区网点电话,如果您在使用过程中有什么问题,请拨打全国24小时服务热线电话
汇川技术推进机器视觉领域的AI应用:引领智能制造新趋势
在智能制造的浪潮下,汇川技术于2024年12月12日在业绩说明会上透露,其已在机器视觉领域开始广泛应用人工智能(AI)技术。这一举措不仅展示了汇川技术在AI领域的前瞻性布局,也为其未来发展注入了新的动力。随着AI技术的不断成熟,汇川技术
中国搪瓷制品行业市场行情动态及发展趋向研判报告
​​本报告由智研咨询出品,经专业研究报告编撰团队实时监测与更新,最终得以呈现。报告研究基于研究团队收集到的大量一手和二手信息,研究过程综合考虑行业各种影响因素,包括市场环境、产业政策、历史数据、行业现状、竞争格局、技术革新
相关文章
推荐文章
发表评论
0评