HIVE优化系列之数据倾斜

embedded/2024/10/16 2:22:28/

数据倾斜

hive_joinhint_2">在hive表中 进行一系列join关联时经常会出现数据倾斜问题,可以通过hint将小表进行广播,从而提高查询的执行效率。
  • 第一种hint方法:/*+ BROADCAST(small_table) */
SELECT /*+ BROADCAST(small_table) */ *
FROM large_table
JOIN small_table ON large_table.id = small_table.id;

这个用法时告诉 Hive 在执行连接操作时将表 small_table 进行广播(即在所有的 Mapper 节点上复制一份),以便在连接时避免数据倾斜。
括号里的 small_table 通常指的是小表。因为广播小表可以减少 Shuffle 操作,提高查询性能。

  • 第二种hint方法:/*+ BROADCASTJOIN(small_table) */
SELECT /*+ BROADCASTJOIN(small_table) */ *
FROM large_table
LEFT JOIN small_table ON large_table.id = small_table.id;

这个用法跟上边一样都是指示Hive 在执行连接时使用广播连接的方式,避免大表和小表之间的 Shuffle 操作,减少网络传输和计算时间。

  • 第三种hint方法:/*+ MAPJOIN(small_table) */
SELECT /*+ MAPJOIN(small_table) */ *
FROM large_table
LEFT JOIN small_table ON large_table.id = small_table.id;

这个用法与上边两个不同,他会强制Hive 将表small_table 作为MapJoin 处理,即在 Mapper 阶段直接连接,而不需要进行Shuffle 操作。通过将小表放入每个Mapper,可以加快连接速度,尤其是在小表较小且能够被完全加载到内存中的情况下。


结论:
三者都用于优化连接操作,尤其在数据倾斜的情况下。
使用这些提示时,需要确保选择的表确实是小表(一般小于200M),以避免内存溢出或性能问题。


http://www.ppmy.cn/embedded/121466.html

相关文章

【MySQL】视图、用户和权限管理

目录 视图创建视图数据修改影响删除视图视图优点 用户和权限管理查看当前的数据库拥有用户信息创建用户修改密码删除用户权限授权回收权限 视图 视图就是相当于创建一个表,将查询到的结果集给存储起来。像使用复杂的多表查询查询到的结果集就不可以对结果集操作。而…

一个基本的包括爬虫、数据存储和前端展示框架0

创建一个完整的网络爬虫和前端展示页面是一个涉及多个步骤和技术的任务。下面我将为你提供一个基本的框架,包括爬虫代码(使用Python和Scrapy框架)和前端HTML页面(伏羲.html)。 爬虫代码 (使用Scrapy) 首先,你需要安装Scrapy库:bash pip install scrapy 然后,创建一个新…

测试-----BUG篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 软件测试的生命周期bug的概念描述bugbug的级别bug的生命周期 软件测试的生命周期 软件测试贯穿与软件的整个生命周期,它的具体流程是: 1.需求分析 2.测…

selenium模块的基本使用

一、selenium概述 Selenium 是一套用于Web应用程序自动化测试的工具,它直接运行在浏览器中,就像真正的用户在操作一样。Selenium支持多种浏览器(如Chrome、Firefox、Edge等)和多种编程语言(如Java、Python、C#等&#…

vue3中el-input在form表单按下回车刷新页面

摘要&#xff1a; 在input框中点击回车之后不是调用我写的回车事件&#xff0c;而是刷新页面&#xff01; 如果表单中只有一个input 框则按下回车会直接关闭表单 所以导致刷新页面 再写一个input 表单 &#xff0c;并设置style“display:none” <ElInput style"display…

MongoDB伪分布式部署(mac M2)

1. 序言 本博客是上一博客的进阶版&#xff1a;mac M2安装单机版 MongoDB 7.x&#xff0c;上一博客可以看做是单机、单节点部署MongoDB本博客将介绍单机、多服务部署MongoDB&#xff0c;实际就是伪分布式部署 2. 副本集(Replica Set)方式部署 2.1 什么是副本集&#xff1f; …

Android中的Activity与Fragment:深入解析与应用场景

在Android应用开发中&#xff0c;Activity和Fragment是两个核心概念&#xff0c;它们各自扮演着不同的角色&#xff0c;共同构成了用户界面的基础。理解并熟练掌握这两个组件的使用&#xff0c;对于开发高效、灵活且用户友好的Android应用至关重要。本文将深入解析Activity与Fr…

【2021工业图像异常检测文献】STPM: 基于特征金字塔匹配的学生-教师异常检测框架

Student-Teacher Feature Pyramid Matching for Anomaly Detection 1、Background 学生-教师网络通过输出之间的差异以及学生预测中的不确定性作为异常评分函数。 然而&#xff0c;仍然存在两个主要缺点&#xff1a;即转移知识的不完整性和处理缩放的复杂性。对于前者&#x…