spark sql基于RBO的优化

news2025/1/18 11:05:57

前言

这里只对RBO优化进行简单的讲解。讲解RBO之前必须对spark sql的执行计划做一个简单的介绍。
这个里讲解的不是很清楚,需要结合具体的执行计划来进行查看

1、执行计划

在spark sql的执行计划中,执行计划分为两大类,即逻辑执行计划、物理执行计划。物理执行计划才是sql最终执行的执行计划

逻辑执行计划

  • Unresolved逻辑执行计划:Parsed Logical Plan
    件检查 SQL 语法上是否有问题,然后生成 Unresolved(未解析)的逻辑计划,不检查表名、不检查列名
  • Resolved逻辑执行计划:Analyzed Logical Plan
    通过访问 Spark 中的 Catalog 存储库来解析验证语义、列名、类型、表名等。
  • 优化后的逻辑执行计划:Optimized Logical Plan
    Catalyst 优化器根据各种规则进行优化
  • Catalyst 优化器根据各种规则进行优化。

物理执行计划

  • 物理执行计划: Physical Plan
    确定连接的类型、分区的数量、过滤器、where、groupBy子句的执行顺序等

执行计划处理流程

在这里插入图片描述

核心步骤

在这里插入图片描述

2、RBO详解

RBO是基于规则的优化,是在Analyzed Logical Plan基础上的优化,基于规则有三种

  • 常量替换
    对于纯常量的运算的表达式,例如1+2,会将其替换为等值的3。如果列很多的话,需要对每一列都进行计算(如果表达式更加复杂会耗费更多的时间),能够消除不必要的计算。
  • 谓词下推
    使用where条件或者left on对数据进行过滤的操作提前执行,可以减少输入的数据量,减少计算的压力。想对于ORC和Parquet类型的存储,可以根据文件脚注的统计信息 ,下推谓词能够大幅减少数据扫描量,降低磁盘IO
    谓词下推规则:
    在这里插入图片描述
  • 列裁剪
    只读取那些与查询相关的字段

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zxjy003- Spring Cloud后端工程搭建

1、创建 sprigboot 工程 guli-parent groupId &#xff1a; com.atguigu artifactId &#xff1a; guli-parent 2.删除src目录 3.配置pom.xml 修改版本为 &#xff1a;2.2.1.RELEASE<artifactId> 节点后面添加 pom类型 全部依赖&#xff0c;复制下面的即可&#xff0c…

Python 从入门到精通 学习笔记 Day02

Python 从入门到精通 第二天 今日目标 字符串基本操作、字符串序列操作、输入输出函数 字符串内置方法、运算符、练习之前学习的内容 一、字符串基本操作 在Python中&#xff0c;字符串的转义是指在字符串中使用特殊的字符序列来表示一些特殊字符。 在Python中&#xff0c;字…

小红书蒲公英平台开通后,有哪些注意的地方,以及如何进行报价?

今天来给大家聊聊当小红书账号过1000粉后&#xff0c;开通蒲公英需要注意的事项。 蒲公英平台是小红书APP中的一个专为内容创作者设计的平台。它为品牌和创作者提供了一个完整的服务流程&#xff0c;包括内容的创作、推广、互动以及转换等多个方面。 2.蒲公英平台的主要功能 &…

MySQL8.0新特性:函数索引,使用函数也不会导致索引失效~

文章目录 写在前面使用函数索引1、数据准备2、索引验证&#xff08;1&#xff09;普通索引&#xff08;2&#xff09;函数索引 总结 写在前面 之前我们知道&#xff0c;如果在查询中加入了函数&#xff0c;索引不生效&#xff0c;所以MySQL 8引入了函数索引&#xff0c;MySQL …

Uview------使用教程

一、点击一下链接安装&#xff1a; https://ext.dcloud.net.cn/plugin?id1593 如果使用HBuilderX编辑器的可以直接点击第一种方式自动安装即可 二&#xff1a;配置文件 在main.js中写入 记得要写在import Vue from vue下面 import uView from ./uni_modules/uview-ui Vue…

【EI征稿中|ACM出版】2023 人工智能、系统与网络安全国际学术会议 (AISNS 2023)

2023 人工智能、系统与网络安全国际学术会议 (AISNS 2023&#xff09; 2023 International Conference on Artificial Intelligence, Systems and Network Security 由西南科技大学计算机科学与技术学院主办的2023人工智能、系统与网络安全国际学术会议 (AISNS 2023&#xff…

windows MYSQL下载和自定路径安装,以及解决中文乱码问题。

文章讲的很详细&#xff0c;请耐心往下看。 一、mysql下载 下载网址&#xff1a;https://www.mysql.com/downloads/ 表示不登录&#xff0c;直接下载。 以上就把安装包下载完了。下载是8.0.35版本。 二、接下来看怎么安装 1.双击安装包&#xff0c;进行安装。 注意&#x…

MX6ULL学习笔记 (八) platform 设备驱动实验

前言&#xff1a; 什么是 Linux 下的 platform 设备驱动 Linux下的字符设备驱动一般都比较简单&#xff0c;只是对IO进行简单的读写操作。但是I2C、SPI、LCD、USB等外设的驱动就比较复杂了&#xff0c;需要考虑到驱动的可重用性&#xff0c;以避免内核中存在大量重复代码&…

MATLAB - 绘制立体图(平面+水深)

目录 代码结果 代码 % 在 X-Y 平面上绘图 % 正常绘制平面图 [X,Y,Z] peaks; contour(X,Y,Z,20); hold on% ****重点******************************************** % 改为三维视图&#xff0c;具体可以help % view(3); %此时的平面图对应z0 &#xff1b;默认az-37.5&#x…

Sql Server关于表的建立、修改、删除

表的创建&#xff1a; &#xff08;1&#xff09;在“对象资源管理器”面板中展开“数据库”节点&#xff0c;可以看到自己创建的数据库&#xff0c;比如Product。展开Product节点&#xff0c;右击“表”节点&#xff0c;在弹出的快捷菜单中选择“新建表”项&#xff0c;进入“…

[FPGA 学习记录] 快速开发的法宝——IP核

快速开发的法宝——IP核 文章目录 1 IP 核是什么2 为什么要使用 IP 核3 IP 核的存在形式4 IP 核的缺点5 Quartus II 软件下 IP 核的调用6 Altera IP 核的分类 在本小节当中&#xff0c;我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛&#xff0c;它被称为…

FastAPI查询参数和字符串校验

在FastAPI中&#xff0c;你可以为参数声明额外的信息和校验。这对于查询参数来说尤其有用&#xff0c;因为它们通常用于过滤或排序结果。本教程将引导你如何使用Query对象来添加这些额外的校验。 导入所需库 首先&#xff0c;你需要导入FastAPI以及Query对象&#xff1a; fr…

【已解决】ImportError: cannot import name ‘Merge‘ from ‘keras.layers‘

问题描述 ImportError: cannot import name ‘Merge‘ from ‘keras.layers‘ 解决办法 1、tensorflow和keras版本要对应&#xff1b; 2、使用"merge" pip uninstall keras pip install keras2.3.1 from keras.layers import merge完结撒花 我这血中带泪的成长&…

从传统到胜利:广汽集团汽车产业创新之旅

置身于汽车行业百年未有之大变局&#xff0c;作为传统车企中的排头兵&#xff0c;广汽创新可圈可点&#xff0c;广汽近年来取得了骄人业绩&#xff0c;不论是整体产销规模&#xff0c;还是新能源汽车产业化、新技术领域开拓等&#xff0c;都呈现节节攀升的局面。本文奖从产业变…

2024年值得关注的8个未来数据库

2024年值得关注的8个未来数据库 关系型数据库管理系统在数据库技术领域占据主导地位已经多年了。当SQL在1970年代首次出现时&#xff0c;关系型数据库管理系统的使用和受欢迎程度迅速提升。很快&#xff0c;MySQL成为了大多数公司和团队首选的数据库。 然而&#xff0c;2023年…

时间序列预测实战(二十六)PyTorch实现Seq2Seq(LSTM)(结果可视化+自动保存结果)

一、本文介绍 本文给大家带来的时间序列模型是Seq2Seq&#xff0c;这个概念相信大家都不陌生了&#xff0c;网上的讲解已经满天飞了&#xff0c;但是本文给大家带来的是我在Seq2Seq思想上开发的一个模型和新的架构&#xff0c;其是专门为新手开发的&#xff0c;而且为了方便大…

上海亚商投顾:沪指探底回升微跌 AI概念股全线反弹

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 大指数早间震荡调整&#xff0c;午后探底回升集体翻红&#xff0c;临近尾盘又小幅走弱。AI概念股全线反弹&…

pytorch优化之SAM优化器

1. SAM介绍 人机验证 2. 案例 ❀精度优化❀优化策略1&#xff1a;网络SAM优化器_夏天&#xff5c;여름이다的博客-CSDN博客文章浏览阅读3.3k次&#xff0c;点赞10次&#xff0c;收藏30次。精度优化策略&#xff1a;SAM:Sharpness AwarenessMinimization锐度感知最小化论文&…

【CCF CSP】202309-2 坐标变换(其二)

80分超时暴力代码&#xff1a;读入数据&#xff0c;对于每个待操作坐标都重新对于所给区间进行平移&#xff0c;旋转的坐标变换 #include <iostream> #include <cmath>using namespace std;struct mani {int type;double num; }; mani all[100001];int main() {in…

在VSCode中运行Python脚本文件时如何传参

以下实验所处的操作系统环境说明&#xff1a; OS版本MacOSMonterey 12.1VSCodeOctober 2023 (version 1.84.2) 一、背景 在 VSCode 中写好 Python 脚本后&#xff0c;如果要运行起来&#xff0c;可以怎么做呢&#xff1f; 一般有以下几种方式&#xff1a; 1、直接在 VSCode…