切换主题
3.3.2.12 补数操作说明
作用:补数用于对已经过去的调度日期重新执行一次工作流,把漏跑或算错的数据补出来。它按日期逐天生成实例,一天对应一条实例,而不是只跑一次。
适用场景:上游数据延迟导致某天未产出;节点逻辑修正后需要重算历史区间;数据源故障恢复后需要补齐故障期间的数据。
业务示例:某离线工作流每天凌晨加工前一天的数据。11 月 7 日因数据源连接异常,当天的实例失败,11 月 8 日的数据正常产出。数据源恢复后,需要在 11 月 9 日把 11 月 7 日的数据补出来——这时使用补数,把调度日期指定为 11 月 7 日,工作流会以该日期为业务日期重新执行一次。如果 7 日和 8 日都缺失,则把日期区间设为 11 月 7 日至 11 月 8 日,一次提交即可。
操作步骤
- 进入「离线开发 → 工作流程 → 工作流定义」,确认目标工作流的状态为「上线」。
- 点击该行操作列的「运行」图标,打开「启动前请先设置参数」窗口。
- 勾选「补数」下的「是否是补数」,窗口展开补数的配置项。
- 按需设置「依赖模式」「执行方式」「执行顺序」。
- 在「调度日期」中选择「日期选择」,填写开始日期时间与结束日期时间;日期较多时改用「手动输入」。
- 点击「确定」提交,系统按日期逐条生成工作流实例。
- 进入「工作流程 → 工作流实例」,按「运行类型 = 补数」筛选,查看每条实例的执行结果。
| 字段 | 说明 |
|---|---|
| 依赖模式 | 「关闭」:不等待上游工作流,直接按日期执行;「打开」:按依赖关系等待上游完成后再执行 |
| 执行方式 | 「串行执行」:多个日期逐个执行;「并行执行」:多个日期同时执行 |
| 执行顺序 | 「按日期降序执行」:从结束日期向开始日期倒序执行;「按日期升序执行」:从开始日期向后执行 |
| 调度日期 - 日期选择 | 选择一个连续的日期区间,填写「开始日期时间」与「结束日期时间」,格式为 年-月-日 时:分:秒 |
| 调度日期 - 手动输入 | 在文本框中直接输入日期,格式为 yyyy-MM-dd HH:mm:ss,多个日期用逗号分隔 |
| 启动参数 / 是否空跑 | 与普通运行一致,可为本次补数单独设置参数或开启空跑 |
左右滑动查看完整表格
日期粒度是「天」,时间部分按 00:00:00 填写 补数按调度日期逐天生成实例,填写时保持 00:00:00,不要填具体时刻,否则可能生成与预期不一致的实例。 |
查看补数执行情况
提交后进入「工作流程 → 工作流实例」。补数生成的实例有以下两个特征,便于与其他运行区分:
- 运行类型列显示「补数」,可据此与手动运行的「启动工作流」、定时触发的实例区分开。
- 调度时间列显示本次实例对应的业务日期(例如 2026-11-07 00:00:00),而不是提交时间。
以日期区间 11 月 7 日至 11 月 8 日、执行顺序为「按日期降序执行」为例,提交后会生成两条实例,分别对应 11 月 8 日与 11 月 7 日,先执行 11 月 8 日、再执行 11 月 7 日。每条实例的成功与否独立判断,某一天失败不影响其他日期继续执行。
补数失败后的处理
- 在工作流实例列表中定位「运行类型 = 补数」且状态为失败的实例,记下它的「调度时间」。
- 进入「离线开发 → 任务 → 任务实例」,按该工作流实例名称筛选,找到失败的具体节点。
- 点击「查看日志」,按 3.3.2.9 的顺序查看退出码、脚本原文与最终脚本内容,定位原因。
- 修复原因(补数据源、修正脚本、调整参数)后,回到工作流实例列表。
- 对该实例点击「重跑」,只重跑这一天的数据;也可再次发起补数,只勾选缺失的日期。
补数前先确认三件事 一是工作流状态为「上线」;二是补数日期对应的数据分区未被其他任务占用;三是脚本中的日期逻辑取自调度日期而非系统当前时间,否则补出来的仍是当天的数据。 |