maxcompute慢执行任务优化
- 如何锁定慢执行任务?
- 判断是何种类型的慢任务
如何锁定慢执行任务?
-
第一步:如果是周期任务可以通过任务执行日志中的LogView 链接查看 ,如果是临时任务则通过maxcompute命令行 执行wait instanceId
instanceId 可以通过 系统元信息表查看 Information_Schema.tasks_history(前提是安装了 如果没有安装可以执行 install package Information_Schema.systables;) -
第二步: 根据Logview 查看每个task执行的时长
判断是何种类型的慢任务
- 如果有Long-tails 说明sql中存在数据倾斜
- 1: join 导致的倾斜 及解决思路
- 2: group by 导致的倾斜
- 数据膨胀导致的某个任务时长过大
- 判断依据 : I/O output 远大于input 如 锁定任务中的第二步的图所示 就是一个数据膨胀导致的任务执行时间长
- 针对distinct 优化
- 判断依据 : I/O output 远大于input 如 锁定任务中的第二步的图所示 就是一个数据膨胀导致的任务执行时间长