IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 关于MySQLPostgreSQLImpalaSpark的执行计划-总结 -> 正文阅读

[大数据]关于MySQLPostgreSQLImpalaSpark的执行计划-总结

执行/查询计划老外有三种叫法:Execution plan/query explanation paln/query plan1。这个概念起源于关系型数据库,后来开源OLAP引擎同样follow了RDB的传统,实现了查询计划

??:执行计划是优化器/执行器打算访问数据的步骤,所以实际并没有真的执行

1-MySQL 执行计划

下图是MySQL的执行计划2的例子

在这里插入图片描述

实践中,ref_or_null类型看到的还是比较少的;为什么无须回表的index的要劣于range?举个🌰 goods_name字段上有索引,对于 select goods_name from goods where goods_name like '%果%',即便有索引,且无须回表,但是还需要全索引扫描的

MySQL更加详细执行计划输出3,Oracle官网有详细的描述,可前往查看

2-PostgreSQL执行计划

在这里插入图片描述

上图是PostgreSQL的执行计划4的例子,①图和②图的区别是②中增加了analyze参数,该参数会触发当前查询实际执行;③号图中的执行计划可以缩略为④号图,类似编程语言中的函数调用

在这里插入图片描述

关于PostgreSQL中的 seq_scan,index_scan,bitmap scan5

1??seq_scan:全表扫描 when select a LOT of data from a table

2??index_scan: Index Only Scan when select a handful of rows

3??bitmap scan : too much row for an index scan to be efficient but too little for a sequential scan,如下图:

在这里插入图片描述

PostgreSQL的执行计划输出,PostgreSQL官网67有详细的描述,可前往查看

3-impala执行计划

关于impala本身,你必须知道它是一个MPP SQL引擎。impala的执行计划官网上描述的很少,全是俗媚的描述性内容,参考意义不大,阅读impala paper8,观看cloudera出品的教学视频9 是一个更上头的操作,要区分impala的execution plan和execution profile,前者是未执行就可获知,后者需要执行后才能获取

3.1-impala SQL查询流和impala逻辑视图

下图中上半部分来于视频,下半部分来自于论文

在这里插入图片描述

就上图做以下几点说明:

1?? 从SQL查询流中可看出,客户端提交的SQL会被Impala前台编译为执行计划,再交给impala后台执行,最后将查询结果/查询简介返回给客户端

2?? 从Impala逻辑视图中看出,impala逻辑上分为3个模块(虚线圈出):元数据模块+执行模块+存储模块

3?? 上图的下半部分展示了一个SQL在impala的整个生命周期(序号标记了整个生命周期)

3.2-impala执行计划的2个阶段

在这里插入图片描述

上图(上半部分来源于视频,下半部分来源于论文)展示了Impala的执行计划分为2个阶段,

🅰?single node plan : 单机上的执行计划

🅱?distributed node plan : 分布式执行计划,全局内 哪些查询是并行的,哪些是需要数据交换(exchance)的

可以看到distributed plan相对于single plan增加了Exchange,这是因为如果数据分布在不同的节点上,我们需要使用使用类似Grace Hash Join的方式使得相同的key去往同一个节点,这个类似Hive/Spark中shuffle的行为,在impala中标记为exchange,在Spark中也被标记为exchange

4-Spark执行计划

Spark中SQL(DataSet,DataFrame,Cypher)的解析,分析,优化等都是由Catalyst1011完成的,下图是Catalyst的逻辑视图

在这里插入图片描述

1??Catalyst会生成多个physical plan,但是最终会选择根据Cost Model(执行时间、资源消耗等)一个

2??Adaptive Query Execution是Spark3.0的功能,Catalyst会在计划执行时收集统计信息,如果发现更好的计划,可以在运行时改变执行计划

以上就是关于执行计划的一个不深不浅的描述,欢迎吐槽,欢迎关注公众号 :stackoverflow

🔞Reference


  1. query plan wiki : https://en.wikipedia.org/wiki/Query_plan ??

  2. mysql query plan : https://www.youtube.com/watch?v=9K26Wb84f50 ??

  3. mysql explain output format: https://dev.mysql.com/doc/refman/8.0/en/explain-output.html ??

  4. postgresql query plan : https://www.youtube.com/watch?v=Mll5SqR4RYk&t=632s ??

  5. seq_scan,inde_scan,bitmap_scan: https://www.cybertec-postgresql.com/en/postgresql-indexing-index-scan-vs-bitmap-scan-vs-sequential-scan-basics/ ??

  6. postgresql explain output format : https://www.postgresql.org/docs/10/using-explain.html | ? ??

  7. postgresql performance tuning: https://www.postgresql.org/docs/8.1/performance-tips.html ??

  8. impala parper : http://www.cidrdb.org/cidr2015/Papers/CIDR15_Paper28.pdf ??

  9. impala tutorial of cloudera : https://www.youtube.com/watch?v=J0n-yORrmcU ??

  10. spark execution video : https://www.youtube.com/watch?v=YgQgJceojJY&list=WL&index=1&t=334s ??

  11. spark execution blog : https://medium.com/datalex/sparks-logical-and-physical-plans-when-why-how-and-beyond-8cd1947b605a ??

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:58:25  更:2022-05-10 11:58:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:01:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码