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减负了,扫一次就行。

相关推荐
龙孚信息10 小时前
DXP进化论 贰-品牌出海深水区,你的数字体验基础设施跟上了吗?
大数据
kirs_ur11 小时前
SSD 在 AI 训练中的角色
大数据·服务器·人工智能
AI探索先锋12 小时前
AMD 2nm 芯片炸裂、欧洲首家人形机器人独角兽诞生、AI Agent 互联标准打响:10 条信号看懂产业变局|今日科技 AI 机器人快讯
大数据·人工智能·深度学习·搜索引擎·机器人
zzzll111113 小时前
字节 Agent 三面:讲讲 Agent 的记忆系统怎么设计?
大数据
聚焦前沿13 小时前
涡街流量计用户如何判断厂家是否靠谱
大数据·人工智能
莫名的好感°14 小时前
国内AI视频工具哪家强?FusionAI聚合即梦Seedance、可灵Kling、HappyHorse、Google Veo,一个平台看懂所有选择
大数据·人工智能
咖啡星人k15 小时前
企业内网引入 AI 编程:MonkeyCode 私有化部署思路
大数据·人工智能·私有化部署·monkeycode
AAA@峥15 小时前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
oort12316 小时前
吃上了自家的细糠,还挺丝滑,用起来手感还行,OortCloud发布新版AI编程平台,下载 OortCodex,Token多,免费薅
大数据·开发语言·人工智能·ai编程