1. 概述
1.1 应用场景
从云端应用系统接口取数时,上游平台(如领星、旺店通旗舰版等)可能因数据校验修正、业务逻辑迭代等原因,在后台主动删除部分数据,例如:
领星系统中,处于待提交、待审批、待下单状态的采购单,若发起取消操作则会被系统删除;
旺店通旗舰版中,已完成合并的订单会被系统自动删除。
此类上游数据删除操作发生后,易导致业务系统后台实际数据与本地已入库数据不一致,进而影响数据统计分析的准确性。
1.2 核心问题
当前存在以下痛点,无法满足数据一致性需求:
无法修正历史数据:增量更新仅能同步发生变更的数据,无法识别上游已删除的记录,导致本地数据库中残留无效数据;
人工操作效率低下:为保障数据一致性,需运维人员定期手动比对、清理本地无效数据,操作繁琐且易出错,增加人力成本。
1.3 实现思路
为解决上述问题,采用「先删后同步」 的方案,核心逻辑如下:
数据清理与回滚:定期删除本地数据库中指定时间范围内的历史数据,再重新同步该时间段内的上游数据;由于上游已删除的数据不会被再次同步,从而实现本地数据与上游数据的一致性对齐;
流程自动化运行:通过定时任务调用目标数据管道,并配置周期性调度规则,让 “删除 - 同步” 全流程无需人工干预,自动定期执行。

1.4 注意事项
本文方案适用于 4.2.13.1 及以上版本的所有 应用数据源。
2. 操作步骤
本文示例:先删除近 30 天内已入库的数据,再重新获取近 30 天的数据,任务执行频率为每 2 周定期处理一次。用户需按实际情况调整时间。
2.1 自定义静态参数
新建一个定时任务,在「参数列表」中自定义静态参数 time,参数值为:yyyy-mm-dd hh:mi:ss-30。

2.2 删除近 30 天数据
拖入「SQL 脚本」节点,对已经入库的数据进行处理。SQL 语句:DELETE FROM `fdl`.`lingxing_outbound_order_report` WHERE `create_time`> "${time}"。
也就是删除这张表中近 30 天的数据。
注:SQL 语句需替换为用户需要处理的表和字段名。

2.3 调用定时管道
1)拖入「调用定时管道」节点,调用该表所在的定时管道任务,并设置断点时间为参数 ${time} 。
运行时将同步断点后的所有增量数据,也就是从任务运行时刻前 30 天开始同步,获取近 30 天的数据。
注:这个时间需要避免与定时管道设置的定时调度任务的时间重合。

2.4 发布任务
运行该任务,执行成功后发布任务。如下图所示:

2.5 设置定时调度
将该任务的定时调度时间设置为每隔 2 周执行一次。此处执行频率可以根据分析频率与业务系统后台数据删除频率进行调整。

