历史版本2 :补数据示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

注:本文适用于 4.1.2 及之后版本。

1.1 应用场景

用户设计的定时任务取数逻辑为:每天抽取当天调度时间往前推 24h 内的数据,汇集到目标数据库。

节假日期间 3 天,系统宕机,定时任务没有运行,导致这 3 天的数据没有入库。

1.2 实现方案

使用 重试任务 功能,补齐缺失数据。

其中,全量同步全表比对场景,只需要重新运行任务即可,无需参考本文方案。

本文方案适用于「增量同步-使用时间戳」场景,即需要满足下面两个条件:

  • 数据只存在新增。

  • 定时任务取数时用到 ${cyctime},或基于 ${cyctime} 延伸出来的 自定义时间变量(任务参数、全局参数里定义的时间类型参数)。

场景
参考方案

使用动态参数

例如:配置 now-1 作为数据范围,每次更新前一天数据

参考本文第二章
获取目标表的最新数据时间戳

如:每次任务先从目标表获取最大的时间戳,作为本次同步的起始时间

参考本文第三章
自定义配置表存储断点

如:每次任务最后一步存储本次同步的最大时间至一张表存储

参考本文第四章

1.3 重试任务功能说明

详情请参见:重试任务

有两个入口,「任务运维>运行记录」中:

  • 「运行记录」列表中,可点击「重试」按钮。

  • 点击「查看详情」按钮后,当次任务运行的日志记录界面中可看到「重试」按钮。

4.png

2. 场景一:每次更新当天/当月数据、前XX月/天/小时数据编辑

2.1 场景模拟

2.2.1 任务设置说明

定时任务每天晚上执行,将到货日期为当天的数据写入到目标表中。如下图所示:

3.png

2.2.2 场景说明

2024-07-23 日发现,因业务库异常,导致目标表中缺少 2024-07-21、2024-07-22 两天的数据。如下图所示:

2.png

2.2 执行补数据操作

业务库修复完成后,可使用「重试任务」功能将 2024-07-21、2024-07-22 两天的数据抽取到目标数据库。

1)在「任务运维>运行记录」中,找到该任务的历史运行记录。点击重试按钮,如下图所示:

6.png

2)本文示例中,定时任务只包含「数据同步」这一个节点,选择「指定范围重试>重试节点」,如下图所示:

注:用户根据实际情况选择重试范围。

7.png

3)指定业务日期中选择 2024-07-22 的日期(由于参数的格式为 yyyy-mm-dd,所以无需考虑时分秒,时分秒任意设置即可),先补齐 2024-07-22 的数据。如下图所示:

注1:进行重试时,用户可以对本次重试时的参数进行临时配置,配置结果只影响本次重试运行、不修改实际任务配置。

注2:A 任务依赖 B 任务,对当前 B 任务设置了「指定业务日期」,会触发 A 任务,A 任务会被触发但是执行的时间是当前时间非指定业务日期」。

8.png

4)运行成功后,可看到 2024-07-22 的数据已抽取到目标表中。如下图所示:

9.png

可在「任务运维>运行记录」中,看到重试的运行记录。详情请参见:重试任务

10.png

5)重复上述步骤,将指定业务日期」设置为 2024-07-21 ,补齐 2024-07-21 的数据。最终效果如下图所示:

11.png