hive SQL谓词下推

server/2024/10/22 13:45:10/

Sql 优化:谓词下推(PPD
定义
谓词下推的概念其实出现在sql中,在关联查询时(join,left join ,right join),因为涉及两个大表之间的关联(特别是在hive)造成资源消耗会比较大,
因为建议在join之前先将两个表进行过滤(hive 里指的是在map端进行过滤),系统会进行部分优化,但sql需要遵守PPD规则,
所谓下推可以理解成优化(只有满足才能进行优化)。
一句话说完:不影响结果的情况下,尽量将过滤条件提前执行。(记得小表join大表)
2 PPD规则(谓词下推规则)
2.1 名词解释
Preserved Row table:保留行表
外部联接中必须返回所有行的表。
对于left join,这是左表;
对于right join,这是右表;
对于full join,两个表都是保留的行表。
Null Supplying table:空值填充表
这是在不匹配的行中为其列填充空值的表。
对于left join,这是右表;
对于right join,这是左表;
对于full join,两个表都是空值填充表。
During Join predicate:连接谓词
join语句中的on部分
After Join predicate:后置连接词
join语句后的where
2.2 规则介绍
1、连接谓词(on)不能下推保留行表。
2、后置连接词(where)不能下推到空值填充表
2.3 针对该规则的建议
1、对于 Join (Inner Join)、Full outer Join,条件写在 on 后面,还是 where 后面,性能上面没有区别;
2、对于 Left Join ,右表过滤条件写在 on 后面、左表过滤条件写在 where 后面,性能上有提高;
3、对于 Right Join,左表过滤条件写在 on 后面、左表过滤条件写在 where 后面,性能上有提高;
4、存在unix_timestamp()、rand()不确定函数时,无法实现下推


http://www.ppmy.cn/server/13370.html

相关文章

软件测试(Web自动化测试)

一.自动化测试简介 1.自动化测试是一种把人工驱动的测试行为转化为机器执行的测试过程。 2.使用自动化测试需要满足的3个条件: (1)项目需求变动不频繁 (2)项目进度压力不大,时间不紧迫 (3&…

Python常见运算符

赋值运算符 赋值运算符主要用来对变量进行赋值,包括如下这些: 运算符 描述 赋值加等于 - 减等于 * 乘等于 / 除等于 // 整除等于 % 模等于 ** 幂等于实例如下: a 10 a 5 # 等价于 a a5 a *2 # 等价于 a a*2比较运算符 比较运算符主要用来比较两个数据的大小,包括如下这…

大模型日报2024-04-24

大模型日报 2024-04-24 大模型资讯 Google DeepMind的RecurrentGemma模型超越变压器模型 摘要: Google DeepMind的最新研究成果RecurrentGemma模型在性能上超过了基于变压器的模型,并且使用的资源更少。这一突破为人工智能领域提供了一个高效的模型选择,…

Ubuntu搭建Python虚拟环境:virtualenv

1 缘起 一阶段:Python开发,使用Windows环境,使用的相关依赖在Windows环境都能使用; 进入二阶段,开发了一个新功能,使用了k8s,Python依赖为:easy_k8s, 刚好,e…

代码随想路第50天 | 123.买卖股票的最佳时机III 、 188.买卖股票的最佳时机IV

一、前言 参考文献:代码随想录; 今天的主题还是买股票,所以回顾一下昨天的递推公式dp[i][0] max(dp[i - 1], dp[i - 1][1] price[i]) 大概就是这样,这是可以无限次买卖的版本; 今天的难度又升级了,所…

Android Studio开发工具学习之Git操作指南

Git 操作指南 1. Git远程仓库操作2. 分支操作 1. Git远程仓库操作 详细操作请参考:Git远程仓库拉取与推送 2. 分支操作 详细操作请参考:Git分支操作

JavaSE学习文档(上)

JavaSE学习文档 第一章 Java概述1.2 计算机编程语言1.3 Java语言版本概述1.4 Java语言分类1.5 JDK,JRE,JVM的关系1.6 JDK安装1.7 DOS命令1.8 Java程序执行过程1.9 编写HelloWorld1.10 常见错误1.11 编写程序时要注意的点 第二章 Java基础语法2.1 Java中的注释文档注释 2.2 关键…

ChatGPT助手:写作无忧

ChatGPT无限次数:点击直达 ChatGPT助手:写作无忧 在当今信息爆炸的时代,写作已经成为了各行各业不可或缺的技能。无论是学术论文、技术博客还是市场推广文案,文字的质量往往决定了一篇作品的成败。然而,对于许多人来说&#xff0…