hive SQL谓词下推

这篇具有很好参考价值的文章主要介绍了hive SQL谓词下推。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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()不确定函数时,无法实现下推
文章来源地址https://www.toymoban.com/news/detail-860067.html

到了这里,关于hive SQL谓词下推的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 参考文档:SQL 语句优化(SELECT 语句优化)之索引条件下推(索引下推)优化

    索引下推优化官方文档说明 (Section 8.2.1.5):https://dev.mysql.com/doc/refman/5.7/en/index-condition-pushdown-optimization.html 1. 什么是索引下推? qquad 索引条件下推 (Index Condition Pushdown,ICP) 是 MySQL 在使用索引从表中检索行时的一种优化方法。在没有 ICP 的情况下,存储引擎遍历索引以定位基

    2024年02月16日
    浏览(29)
  • [AIGC ~大数据] 深入理解Hadoop、HDFS、Hive和Spark:Java大师的大数据研究之旅

    作为一位Java大师,我始终追求着技术的边界,最近我将目光聚焦在大数据领域。在这个充满机遇和挑战的领域中,我深入研究了Hadoop、HDFS、Hive和Spark等关键技术。本篇博客将从\\\"是什么\\\"、\\\"为什么\\\"和\\\"怎么办\\\"三个角度,系统地介绍这些技术。 Hadoop Hadoop是一个开源的分布式计算

    2024年02月03日
    浏览(30)
  • 探索Apache Hive:融合专业性、趣味性和吸引力的数据库操作奇幻之旅

    本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用,并非商业用途。 我在整理学习笔记的过程中尽力确保准确性,但无法保证内容的完整性和时效性。本博客的

    2024年02月09日
    浏览(33)
  • 大数据 Hive - 实现SQL执行

    MapReduce的出现大大简化了大数据编程的难度,使得大数据计算不再是高不可攀的技术圣殿,普通工程师也能使用MapReduce开发大数据程序。 但是对于经常需要进行大数据计算的人,比如从事研究商业智能(BI)的数据分析师来说,他们通常使用SQL进行大数据分析和统计,MapRed

    2024年02月02日
    浏览(29)
  • hql、数据仓库、sql调优、hive sql、python

    HQL(Hibernate Query Language) 是面向对象的查询语言 SQL的操作对象是数据列、表等数据库数据 ; 而HQL操作的是类、实例、属性 数据仓库的定义 英文名称为Data Warehouse,可简写为DW或DWH。 为企业级别的决策制定过程,提供所有类型数据支持的战略集合。 它出于分析性报告和决策支持

    2024年02月03日
    浏览(41)
  • 大数据技术之Hive SQL题库-中级

    1)表结构 user_id(用户id) gender(性别) birthday(生日) 101 男 1990-01-01 102 女 1991-02-01 103 女 1992-03-01 104 男 1993-04-01 2)建表语句 hive 3)数据装载 hive 1)表结构 sku_id (商品id) name (商品名称) category_id (分类id) from_date (上架日期) price (商品价格) 1 xiaomi 10 1 2020-01-01 2000 6 洗碗机 2 2020-02-01

    2024年02月11日
    浏览(38)
  • Spark SQL数据源:Hive表

    Spark SQL还支持读取和写入存储在Apache Hive中的数据。然而,由于Hive有大量依赖项,这些依赖项不包括在默认的Spark发行版中,如果在classpath上配置了这些Hive依赖项,Spark就会自动加载它们。需要注意的是,这些Hive依赖项必须出现在所有Worker节点上,因为它们需要访问Hive序列化

    2024年02月11日
    浏览(27)
  • 3.Hive SQL数据定义语言(DDL)

    1.1 常见的开发方式 (1) Hive CLI、Beeline CLI Hive自带的命令行客户端 优点:不需要额外安装 缺点:编写SQL环境恶劣,无有效提示,无语法高亮,误操作率高 (2) 文本编辑器 Sublime、Emacs、EditPlus等 有些不支持作为客户端连接Hive服务,但支持SQL语法环境,那就在编辑器中开发

    2024年02月12日
    浏览(36)
  • 爱奇艺大数据加速:从Hive到Spark SQL

    01 爱奇艺自2012年开展大数据业务以来,基于大数据开源生态服务建设了一系列平台,涵盖了数据采集、数据处理、数据分析、数据应用等整个大数据流程,为公司的运营决策和各种数据智能业务提供了强有力的支持。随着数据规模的不断增长和计算复杂度的增加,如何快速挖

    2024年02月08日
    浏览(27)
  • Flink学习之旅:(三)Flink源算子(数据源)

            Flink可以从各种数据源获取数据,然后构建DataStream 进行处理转换。source就是整个数据处理程序的输入端。 数据集合 数据文件 Socket数据 kafka数据 自定义Source         创建 FlinkSource_List 类,再创建个 Student 类(姓名、年龄、性别三个属性就行,反正测试用) 运行结果

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包