hiveSQL脚本性能优化-减少表扫描

哈喽朋友们,今天上班滕总又遇到了问题,为什么他加了几段代码以后,ETL脚本(HiveSQL)就跑不动了?

需求场景就不赘述了,单从技术角度分析。

我问他ApplicationID是多少?他说没看到,直接报code1了。我看下日志是Tez报错了,代码都没提交到Yarn

Tez报错内容是:Dag submit failed due to Java heap space

很显然是Tez内存溢出了,我在想是代码太复杂了它优化不了执行计划?

然后用explain想看下执行计划,结果执行计划都卡的打不出来。

然后从ETL的上一个版本开始一块一块断点刷执行计划,定位到具体代码块以后发现,是一大段union all导致的

试过过滤空值,没什么效果。

最后发现是大量重复扫描表,果断换了写法,注释大量union all 关联条件收敛到on 后面 用 or 区分,执行计划能打出来了,问题解决了。

结语:这是一个处理复杂组织合并问题是遇到的一个多层次关联案例。正常写法确实直接union all 的话逻辑看上去会更清晰,考虑下分布式计算引擎的特点就不会这样写了,减少表扫描的次数确实给Tez减负了,扫一次就行。

相关推荐
Bechamz1 小时前
大数据开发学习Day40
大数据·学习
天下财经热1 小时前
快进商店闪耀2026中国零售业博览会,远程值守全家桶独家首发,重塑云值守解决方案
大数据·人工智能·物联网
x***r1512 小时前
heidisql数据库客户端使用步骤详解(附HeidiSQL连接MySQL与SQL执行教程)
数据库·sql·mysql
小沈跨境3 小时前
2026TEMU一键催审:图审价审加站点,插队快速过审
大数据·产品运营·跨境电商·temu·跨境运营
fan65404143 小时前
全栈自研GEO系统的技术架构与算法快速适配实践——以文澜天下科技为例
大数据·科技·架构
zhojiew4 小时前
部署DataHub并导入Glue元数据以集成DBT和Spark ETL任务中数据血缘的实践
大数据·spark·etl
白雪落青衣4 小时前
BUU SQL COURSE 1 sql注入
数据库·sql·web安全·网络安全
金融RPA机器人丨实在智能5 小时前
物流行业选自动化方案,如何评估与现有系统的集成难度?深度解析2026集成避坑指南
大数据·运维·人工智能·自动化
一切皆是因缘际会5 小时前
AI 从 “模仿智能” 到 “重构世界” 的范式跃迁
大数据·人工智能·深度学习·重构·架构