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

相关推荐
C++、Java和Python的菜鸟9 小时前
第2章 项目前置课-代码版本控制Git
大数据·elasticsearch·搜索引擎
Sammyyyyy9 小时前
如何在不停项目不停机的情况下切换AI大模型
大数据·人工智能
circuitsosk10 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
数智化管理手记11 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
刀客Doc11 小时前
即时零售不只是多一个渠道,品牌开始重做终端生意
大数据·数据库
湘美书院--湘美谈教育12 小时前
湘美书院主理人谈AI文学:提示词与Skill的与时俱进
大数据·人工智能·安全·自动化·生活
weixin_5498083612 小时前
人力资源数字化转型:从工具堆叠到AI原生架构的组织级跃迁路径
大数据·人工智能
l00010912 小时前
图书馆静谧环境构建:主流声学品牌产品与服务梳理
大数据·人工智能·声音
Full Stack Developme12 小时前
SQL 注入 的历史及设计工作原理
数据库·sql
阿坤带你走近大数据13 小时前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql