hive on tez如果是2个大表union会写几次临时文件到hdfs目录,数据量如何计算

如果是2个大表union会写几次临时文件到hdfs目录,数据量如何计算

在Hive on Tez中,两个大表执行UNION操作时,临时文件的写入次数和数据量,取决于UNION的类型(UNION ALL还是UNION去重)以及执行计划的Stage划分。以下分场景详细说明:

一、临时文件写入次数:与Stage数量直接相关

Tez会将UNION操作解析为多个Stage(计算阶段),每个Stage的输出都会写入HDFS临时目录(作为下一个Stage的输入)。因此,临时文件的“写入次数”等价于参与计算的Stage数量

1. 场景1:UNION ALL(不去重,仅合并)

UNION ALL仅需将两个表的结果“直接拼接”,执行计划通常包含3个Stage:

  • Stage 1:扫描并处理第一个表(如过滤、字段转换等,若无需处理则仅扫描),输出结果写入临时目录;
  • Stage 2:扫描并处理第二个表,输出结果写入临时目录;
  • Stage 3:合并Stage 1和Stage 2的临时结果(无需去重),输出最终合并结果到临时目录,最后通过原子操作写入目标表。

临时文件写入次数:3次(每个Stage各写1次)。

2. 场景2:UNION(自动去重,等价于UNION DISTINCT

UNION需要对两个表的合并结果去重,执行计划比UNION ALL多一个“去重Stage”,共4个Stage:

  • Stage 1:处理第一个表,输出临时文件;
  • Stage 2:处理第二个表,输出临时文件;
  • Stage 3:合并Stage 1和Stage 2的结果(此时数据可能有重复),输出到临时目录;
  • Stage 4:对Stage 3的结果执行去重(通常通过Reduce阶段的DISTINCT操作),输出去重后的结果到临时目录,最后写入目标表。

临时文件写入次数:4次(每个Stage各写1次)。

二、临时文件的数据量计算

临时文件的数据量取决于每个Stage的输出数据量,受原始表大小、处理逻辑(如过滤、转换)、数据格式(压缩与否)影响。以下为简化计算(假设无过滤/转换,默认压缩格式如ORC):

1. 场景1:UNION ALL

  • Stage 1临时文件:约等于第一个表的实际存储量(记为A,如100GB);
  • Stage 2临时文件:约等于第二个表的实际存储量(记为B,如200GB);
  • Stage 3临时文件:约等于A + B(合并后无去重,300GB)。

总临时数据量A + B + (A + B) = 2*(A + B)(3次写入的总和)。

2. 场景2:UNION(去重)

  • Stage 1临时文件A
  • Stage 2临时文件B
  • Stage 3临时文件A + B(合并后未去重);
  • Stage 4临时文件:约等于A + B - CC为重复数据量,假设重复50GB,则为250GB)。

总临时数据量A + B + (A + B) + (A + B - C) = 3*(A + B) - C(4次写入的总和)。

三、关键影响因素

  1. 数据压缩:若启用ORC/Parquet等压缩格式,临时文件实际存储量会比原始文本小3-5倍(需按压缩后大小计算);
  2. 处理逻辑:若UNION前有WHERE过滤或字段裁剪,Stage 1/2的输出量会小于原始表大小;
  3. 分桶/分区:若表是分桶或分区表,且UNION仅涉及部分分区,临时文件量会按实际涉及的分区数据计算;
  4. 重复数据比例UNION去重时,重复数据越多(C越大),Stage 4的输出量越小,总临时数据量越少。

总结

  • UNION ALL:3次临时文件写入,总数据量约2*(A + B)
  • UNION(去重):4次临时文件写入,总数据量约3*(A + B) - C
  • 实际数据量需结合压缩、过滤、重复率等因素调整,核心是“每个Stage的输出都会产生临时文件”。

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

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

相关文章

Web+js转uni-app+ts

一、入手uni-app 官方文档:uni-app官网 1.创建uni-app项目 1.1通过HBuilderX进行创建 官方地址:HBuilderX-高效极客技巧 1.2通过命令行创建 // js 版本的 npx degit dcloudio/uni-preset-vue#vite 项目名 npx degit dcloudio/uni-preset-vue#vite-…

IO_hw_8.29

1.使用fgets和fputs完成两个文件的拷贝,要求文件名使用外部传承2.注册登录代码3.思维导图4.牛客网刷题记录

数据结构(04)—— 栈和队列

Hi!探索者们😉,欢迎踏入 408 数据结构的奇妙秘境🌿!​ 我是 ankleless📚,和你并肩的寻宝人~ 这是我的探险手札🗺️,里面记着链表森林的岔路陷阱🕸…

Java多线程基础:进程、线程与线程安全实战

Java多线程基础:进程、线程与线程安全实战 🚀 极客小贴士 💡 你知道吗? 在Java中,每个线程都有自己的栈空间,但共享堆内存。这就像每个员工都有自己的办公桌,但共享公司的会议室和打印机&#…

2025 实测有效!手把手教你如何用实例代码(Python、JavaScript 、JAVA) 等实战代码,免费股票数据接口大全

​ 近年来,股票量化分析凭借其科学性与系统性,逐渐走进大众视野并受到广泛关注。对于这一领域的初学者而言,入门路上的第一道关卡便是如何获取全面且精准的股票数据。要知道,实时交易数据、历史交易记录、财务数据以及基本面信息等…

KMP 算法相关练习题

大家好,今天是2025年8月31日,上一期我给大家分享了 KMP 算法的相关知识,今天我来带领大家学习4道 KMP 相关的算法题。 在学习算法题之前,还是希望大家能够要先学会 KMP 算法(可以参考这篇文章:KMP 算法&am…

张柏芝亮相林家谦演唱会 再次演绎《任何天气》

近日,张柏芝作为特别嘉宾亮相歌手林家谦演唱会。当天,张柏芝身着一袭浅米色蕾丝裙装,轻盈面料搭配层叠设计,行走间裙摆微扬,温柔气质满溢,为舞台增添了一抹温柔亮色。舞台上,张柏芝接连演绎《任…

Android 权限申请现代化指南

Android 权限申请现代化指南 一、核心概念:权限分类 Android 将权限分为三大类,申请方式各不相同: 普通权限 (Normal Permissions)范围:涉及应用沙盒外部但对用户隐私或设备操作风险极低的操作。示例:网络访问 (IN…

大话 IOT 技术(3) -- MQTT篇

文章目录前言前情提要MQTT介绍组成万恶的appmqtt服务端伪代码实现开源的力量后话当你迷茫的时候,请点击 物联网目录大纲 快速查看前面的技术文章,相信你总能找到前行的方向 前言 本篇将开始讲述IOT技术的一个重点,mqtt协议。 我发现有一个…

大语言模型生成的“超龄劳动者权益保障制度系统化完善建议(修订版)”

大纲 │ ├── 一、基于征求意见稿现状的评估 │ ├── 制度意义:25条暂行规定首次明确权益范围,提供法律依据 │ └── 关键缺陷 │ ├── 法律定位不明确 │ ├── 社保衔接不足 │ └── 实施机制不完善 │ ├── 二、法…

【UnityAS】Unity Android Studio 联合开发快速入门:环境配置、AAR 集成与双向调用教程

这是一篇2021年的存档,使用Unity2020版本。 至今,Unity与AS很多通讯方式也是基于此衍生。 作为Unity与AS联合开发的受益者,难得掏出自己的饭碗,诸君共享! Unity & Android Studio 联合开发快速入门 ——Unity与AS…

前后端联合实现多个文件上传

1、前端 Vue3CommonApplyBasicInfoForm.vue<script setup lang"ts" name"CommonApplyBasicInfoForm"> ...... // 文件输入实例对象 const fileInputRef ref<HTMLInputElement | null>(null); // 选择文件列表 const selectedFiles ref<Fi…

软考高级--系统架构设计师--综合知识真题解析

系列文章目录 文章目录系列文章目录一、2019年真题二、2020年真题三、2021年真题四、2022年真题总结一、2019年真题 二、2020年真题 三、2021年真题 四、2022年真题 总结

“帕萨特B5钳盘式制动器结构设计三维PROE模型7张CAD图纸PDF图“

摘 要本文首先对汽车制动器原理和对各种各样的制动器进行分析,详细地阐述了各类制动器的结构,工作原理和优缺点。再根据轿车的车型和结构选择了适合的方案。根据市场上同系列车型的车大多数是滑钳盘式制动器,而且滑动钳式盘式制动器结构简单,性能居中,设计规范,所以我选择滑动…

SQL注入6----(其他注入手法)

一.前言 本章节来介绍一下其他的注入手法&#xff0c;也就是非常规注入手法&#xff0c;来和大家介绍一下 二.加密注入 前端提交的有些数据是加密之后&#xff0c;到了后台在解密&#xff0c;然后再进行数据库查询等相关操作的&#xff0c;那么既然如 此我们也应该将注入语句…

visual studio2022 配置 PCL 1.13.1

PCL库下载 下载链接&#xff1a; https://github.com/PointCloudLibrary/pcl/releases 下载这两个。 PCL库安装 运行.exe文件进行安装。 环境变量勾第二个&#xff08;其实无所谓&#xff0c;反正还要添加别的环境变量&#xff0c;这里没选之后加也一样&#xff09;。 安装…

金融学-货币理论

前言 前面学习了什么是货币供给&#xff0c;货币供给的决定以及联邦储备体系在货币供给中所起的作用。现在我们要开始探讨经济中货币供给在决定价格水平与全部商品和劳务(总供给)中的作用。关于货币对经济影响的研究&#xff0c;称为货币理论(monetarythe-ory) 货币数量论 古典…

Visio绘图——给多边形增加连接线

每次在画项目框图和各类爪图的时候&#xff0c;连接线是最烦人的&#xff0c;虽然选择的是折线&#xff0c;单往往事与愿违。 下面就记录一下&#xff0c;如何查找各类连接线。 1、先展开左侧菜单栏&#xff0c;点击如下所示的“&#xff1e;”2、在展开的界面&#xff0c;再次…

【开题答辩全过程】以 付费自习室系统小程序为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

开疆智能Profinet转EtherCAT网关连接TR-Electronic传感器配置案例

本案例是通过开疆智能研发的Profinet转EtherCAT网关将传感器数据传送到PLC&#xff0c;由于两边设备采用协议不同&#xff0c;故而使用网关进行转换。网关配置&#xff1a;打开网关配置软件“EtherCAT Manager”并新建项目。根据不通网关型号也可选择ModbusTCP&#xff0c;Ethe…