为什么定时 SQL 分析任务长时间未开始调度?
定时 SQL 分析任务长时间未开始调度的可能原因如下:
- 未满足调度周期:到达调度时间点后定时 SQL 分析任务才会产生调度实例。
- 调度延迟:如果前面实例发生延迟,新产生的调度实例将在调度队列中等待。
- 调度实例过多:并发的调度实例过多导致执行队列积压,调度实例长时间未被执行。
- 未构建索引:实际已完成调用,但未对结果数据构建索引,导致调度产生的执行结果未展示。
为什么定时 SQL 任务的调度实例一直不执行?
日志服务在执行调度实例之前,会先检查实例是否满足执行条件,如果前一个实例因为检索时间范围内的数据尚未完成写入等原因而暂未运行,后一个实例已符合执行条件,则后一个实例会优先运行。
说明
实例符合执行条件后,日志服务会在后端调度资源、准备执行实例,该操作可能耗时 1 分钟以上,请耐心等待。
通常情况下,实例执行同时需要满足以下条件:
- 已达到调度时间。如果任务未设置延时时间,后端服务会根据调度时间执行实例;如果设置了延时时间,则在达到调度时间后推迟一段时间后再执行实例。
- 实例的 SQL 时间窗口对应的日志数据已完成写入。如果日志主题中已存在晚于检索时间范围内的日志数据,则判断检索时间范围内的数据已全部完成写入。例如检索时间范围为 [10:00~11:00),如果写入了一条 11:01 的日志数据,则判断检索时间范围内的数据已全部完成写入,可以开始运行实例。
- 未达到最大并发数。一个任务中最多只有 1 个调度实例为运行中状态。