谓词下推

听到谓词下推这个词,是不是觉得很高大上,找点资料看了半天才能搞懂概念和思想,借这个机会好好学习一下吧。

首先我们要了解什么是谓词。谓词,用来描述或判定客体性质、特征或者客体之间关系的词项。也就是判断什么是什么或者不是什么的词。

在SQL中,谓词就是返回boolean值即true和false的函数,或是隐式转换为boolean的函数。SQL中的谓词主要有 LKIE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS、=、!=

谓词下推的两个层面

引用范欣欣大佬的博客中写道,以前经常满大街听到谓词下推,然而对谓词下推却总感觉懵懵懂懂,并不明白的很真切。这里拿出来和大家交流交流。个人认为谓词下推有两个层面的理解:

  • 其一是逻辑执行计划优化层面的说法,比如SQL语句:select * from order ,item where item.id = order.item_id and item.category = ‘book’,正常情况语法解析之后应该是先执行Join操作,再执行Filter操作。通过谓词下推,可以将Filter操作下推到Join操作之前执行。即将where item.category = ‘book’下推到 item.id = order.item_id之前先行执行。
  • 其二是真正实现层面的说法,谓词下推是将过滤条件从计算进程下推到存储进程先行执行,注意这里有两种类型进程:计算进程以及存储进程。计算与存储分离思想,这在大数据领域相当常见,比如最常见的计算进程有SparkSQL、Hive、impala等,负责SQL解析优化、

数仓工具—Hive进阶之谓词下推(12)相关推荐

  1. 数仓工具—Hive进阶之数据存储格式(5)

    行存储与列存储 当今的数据处理大致可分为两大类,联机事务处理 OLTP(on-line transaction processing)联机分析处理 OLAP(On-Line Analytical Pr ...

  2. 数仓工具—Hive实战之full join 经典案例(13)

    full join 经典案例 full join 增量数据同步更新 我们知道我们的数仓数据很大一部分是来自业务数据库的,那么这个时候我们数据同步的方式有两种一种是增量同步一种是全量同步,那么这个时候我 ...

  3. 数仓工具—Hive实战之累计计算(7)

    累计计算 对于数仓而言,我们一般都是增量计算,增量数据同步.增量数据计算,然后我们产出每天的指标,大多数情况下都是这样的,但是我们也有很多的指标需要把过去的数据和当前的数据进行累计,从而产出计算结果. ...

  4. 数仓工具—Hive源码之cli 模块(2)

    hive 源码 cli 模块 关于hive 的cli 模块其实是我们日常工作中使用最多的模块了,主要包括两部分 Hive 这是hive 提供的老版本的命令行交互工具了 beeline 这是hive 新 ...

  5. 数仓工具—Hive集成篇之Kafka(03)

    Hive 整合Kafka 这个方案很多,随便举几个例子,但是在此之前建议你先阅读优化实战篇-UDAF批量调用外部请求(02) 在这篇文章中我们实现了在UDAF 中实现了多线程. Spark/Flink ...

  6. 数仓工具—Hive源码之Beeline/HiveCli(4)

    Beeline(HiveCli) 我们其实知道beeline 命令行对应的是Beeline 类,但是我们在org.apache.hive.beeline.cli 包下面发现了一个HiveCli 类 但 ...

  7. 数仓工具—Hive Beeline(21)

    Beeline 前面我们介绍过hive 的命令行,其实就是hive 的老版命令行,你可以参考Hive命令行,今天我们介绍一下hive 新的命令行beeline,前面我们也介绍过如何在hive 命令行里 ...

  8. 数仓工具—Hive实战之滑动/滚动时间窗口计算(19)

    时间滑动计算 今天遇到一个需求大致是这样的,我们有一个业务涉及到用户打卡,用户可以一天多次打卡,我们希望计算出7天内打卡8次以上,且打卡时间分布在4天以上的时间,当然这只是个例子,我们具体解释一下这个 ...

  9. 数仓工具—Hive实战之UDF汉字首字母(22)

    UDF 汉字首字母 今天这个业务背景其实很简单,就是公司有很多品牌,我们要提取每个名牌的第一个汉字的首字母,例如"宝马"就是 B , 然后"福特" 就是F,&q ...

最新文章

  1. 解题报告(二)B、(P3338 [ZJOI2014])力(FFT经典套路)(2)
  2. 如何不使用Java 8默认方法
  3. JMW-Label标签设计打印源码
  4. 【华为云技术分享】竞享实例:让你尽享云服务的“鱼”和“熊掌”
  5. python重试库retryiny源码剖析
  6. IPSEC 003 ---- IPSEC携手IKE,珠联璧合显神威
  7. Tomcat原理剖析及性能调优
  8. 美国人工智能总动员:特朗普后知后觉,华府和硅谷心急如焚
  9. windows 照片查看器无法打开图片 因为照片查看器不支持此文件格式,或者你没有照片查看器的最新更新
  10. c盘是不是越大越好_C盘分区并非越大越好
  11. 15个C语言“谜题”,有你知道的吗?
  12. 金蝶云苍穹轻量级环境搭建
  13. 2022第8届中国大学生程序设计竞赛CCPC威海站, 签到题7题
  14. vss2005 配置详解
  15. 易语言c源码流程图怎么实现,易语言APC内存注入主要流程源码
  16. UICollectionView实现书本翻页布局
  17. (6)电报机与继电器
  18. MySQL探秘(八):InnoDB的事务
  19. 独角兽项目 3 - 反叛军
  20. 小白怎样学习数据分析?

热门文章

  1. LPCM AAPCM G711 G726 AAC 音频采样、编码及帧大小计算
  2. 中文正则,Notepad++中文正则
  3. 微型计算机访问速度最快的是,在微型计算机中的下列存储介质中,访问速度最快的是()...
  4. xshell下载使用wget下载tomcat出现错误:无法验证,组织机构的证书,无用证书时
  5. 计算机教室怎么写英文怎么写,教室用英文具体是怎么写的
  6. darknet框架 VS2017 平台工具集141_值得收藏的在线图片处理工具(四):免费图片处理工具集iLoveIMG...
  7. html 彩虹字体,拿来就用,超炫彩虹字体送你了
  8. python绘制二维图形_使用python绘制二维图形示例
  9. python和报表生成工具_报表自动生成工具的原理方法,及热门软件
  10. client offline