在周例会上,发现自己经手过的任务运行时间在忙时长达两个多小时(公开处刑),这里总结下工作中遇到的一些造成任务执行效率低的原因:
1、数据量过大
比如有分区表,但是多表关联查询的时候没有指定分区,导致全表扫描。(注意on跟where的条)
2、产生笛卡尔积
优化
3、访问API过多
有些任务可能涉及到访问外部接口,过多的请求影响到任务执行效率。从业务或者其他方面优化
4、从接口层取数
前期的数仓设计不合理或者临时性取数,应用层的数据直接从接口层取数。需要优化模型设计,从接口层到中间层/轻度汇总层,提高取数效率
5、业务逻辑
梳理业务逻辑,看是否有优化的可能性。比如中间层的设计、避免数据倾斜等



