注意事项
在使用DMS任务编排功能时,可能会出现任务调度延迟或由于SQL及脚本缺少幂等性而影响下游数据正确性的情况。如下为您说明出现这种情况的场景以及处理方案。
任务调度延迟
在每日凌晨和每小时整点的任务调度高峰期,可能会出现任务调度延迟的情况。因此,在设置SQL条件时您需要考虑调度延迟,以确保在发生调度延迟时下游数据的正确性。
SQL及脚本的幂等性
说明SQL脚本幂等性是指一条SQL语句或一组SQL语句,无论执行多少次,其结果都是一致的,不会因为重复执行而导致数据不一致。
为保证数据的正确性,建议您在编写SQL及脚本时使用具有幂等性的操作语句,如
insert overwrite
、replace into
等,并重复执行SQL以验证是否会影响下游数据的正确性。
数量限制
单个DMS租户最多可创建5000个任务流(任务编排+数仓开发)。
每个任务流中最多包含100个任务节点。
任务编排最多包含200个业务场景。
任务流、任务节点执行时长限制
任务编排中任务流执行的时长不能超过18小时。
任务编排的任务节点存在执行时长限制,超过限制后,该任务节点会被强制停止执行,并显示执行失败。如下为各任务节点执行时长限制说明:
任务节点类型 | 任务节点名称 | 执行时长限制 |
数据集成 | DTS数据迁移 | 大约14小时。 |
离线数据集成 | 大约8小时。 | |
数据加工 | 单实例SQL | 大约14小时。 |
循环SQL | 单个批次SQL大约14小时,整体受任务流执行总时长18小时限制。 | |
跨库Spark SQL | 大约8小时。 | |
Lindorm Spark | 大约11小时。 | |
ADB Spark | 大约14小时。 | |
DLA Serverless Spark | 大约5小时30分钟。 | |
无锁数据变更 | 大约14小时。 | |
DLA Spark SQL | 大约5小时30分钟。 | |
通用 | 单实例SQL赋值 | 执行时长与实例配置中的查询超时时间有关。 |
条件分支 | 执行任务节点时间极短。 | |
DLA一键建仓 | 大约5小时30分钟。 | |
DBS备份 | 无执行时长限制。 | |
ECS远程命令 | 大约11小时。 | |
脚本命令 | 大约18小时。 | |
状态检查 | 表时间列状态检查 | 执行任务节点时间极短。 |
Lindorm文件检查 | 执行任务节点时间极短。 | |
SQL状态检查 | 执行时长与实例配置中的查询超时时间有关。 | |
稽核任务 | 执行任务节点时间极短。 | |
任务流依赖检查 | 执行任务节点时间极短。 |
以上任务节点均可在高级设置中开启重跑(任务失败后)。开启后,若任务执行失败,则在一定时间后会重新执行该任务,此时任务节点的总执行时长(包含重跑前的时间)可能会超过18小时。