问答 查看内容
返回列表

ETL任务排队机制

21 1
发表于 前天 18:15 | 查看全部 阅读模式
如果ETL设置了任一数据集更新就更新,会出现上一次提交的任务还没运行完,同一任务又再次被提交,所以有几个问题:
1. 假设10点提交的任务还在【排队】中,10.30又提交了一次,此时这个任务会【失败】还是【提交到任务队列,等10点的任务更新完,10.30的任务会接着更新】?
2. 同理,如果10点提交的任务已经在【运行】中,10.30又提交了一次,此时这个任务会【失败】还是【提交到任务队列,等10点的任务更新完,10.30的任务会接着更新】?


3. task_Status中有个task_State = SKIPPED的状态,想问下是不是因为上面1、2两点更新过于频繁导致的?

评论1

观小凡Lv.9 发表于 昨天 10:05 | 查看全部
1. 同一个ETL已经在排队中,新的提交会被视作重复任务直接取消,当时会弹出提醒,但是在任务管理和ETL更新历史里不会展示,因为不符合运行条件被拦截。


2. 如果10点提交的任务已经在【运行】中,10.30又提交了一次,新提交的任务会怎么处理取决于当时是否有排队任务。例如ETL并发是4,当时正在运行的ETL少于4个,没有任务排队,那么新提交的任务会当做重复任务取消,跟问题一相同;如果当时正在运行的ETL有4个,有任务排队,那么新提交的任务会开始排队,排到的时候且10点的那次运行也已经结束的话,10.30的任务才会开始运行。总结来说,就是最多允许同一个ETL存在1个正在运行和1个排队,绝对不允许多个任务同时运行或者同时排队。建议优化ETL的触发方式,如果选择“任一数据集更新后立即触发”,那么多个输入数据集的更新时间应该尽量错开,或者考虑改用“所有数据集更新后触发”。

3. task_Status中有个task_State = SKIPPED的状态,您说的没错,确实记录的是触发了但是不符合运行条件的任务。




回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2025 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表