历史版本13 :定时任务脏数据处理说明 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

定时任务运行时若遇到脏数据,任务会报错并终止。本文说明如何查看脏数据产生的原因及如何处理脏数据。

注:实时管道任务的脏数据说明请参见:实时管道任务处理脏数据

2. 脏数据定义编辑

1)与目标字段配置不匹配而无法写入的数据(目标字段长度/类型不匹配、目标字段缺失、违反目标字段非空约束等)。

2)当写入方式-主键冲突策略为「主键相同,记录为脏数据」时,主键冲突的数据将被视为脏数据。

3. 查看脏数据条数及原因编辑

1)定时任务运行时,若存在脏数据,日志中将会报错。如下图所示:

注:建议将 日志等级 设置为 INFO,日志信息会更加详细。

30.png

「统计」Tab页下,可看到脏数据具体条数,点击条数,可看到错误类型和错误原因。如下图所示:

31.png

2)用户若想查看到所有脏数据的信息,可到%FDL_HOME%\logs\fanruan.log文件中进行查看。

3)用户若想遇到脏数据就通知给指定用户,可在结果通知中勾选「脏数据通知」按钮。如下图所示:

详情请参见:任务控制-结果通知

1758106490511591.png

4. 处理脏数据编辑

4.1 忽略脏数据

若用户希望任务具有一定容错性,即遇到脏数据任务继续运行,不进行报错,运行状态为成功且脏数据不写入到目标表中(正常的数据会顺利写入到目标表中,可设置脏数据阈值。如下图所示:

详情请参见:任务控制-容错机制

注:若不配置「脏数据容忍」,只要遇到脏数据就会导致任务失败。

1758105726544253.png

若脏数据条数未超过阈值(最大可设置为10000),日志信息如下:

1758106424672418.png

脏数据条数超出脏数据阈值后,任务会报错。

4.2 脏数据处理后写入到目标表

用户若希望脏数据写入到目标表,需要根据日志排查脏数据出现原因,修正后重新运行任务或者 重试任务

产生脏数据后,重试任务的处理场景:

场景
增量同步的方式
重试后是否会存在数据问题
建议处理措施
全量同步
--
增量同步-使用时间戳


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


在重试时,用户可以指定本次运行的临时任务参数值

且用户的任务设计需要支持幂等,即同一数据范围的定时任务需要支持多次运行

获取目标表的最新数据时间戳

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

用户需要手动删除目标表大于本批次的数据,以进行重试

且用户的任务设计需要支持幂等,即同一数据范围的定时任务需要支持多次运行

自定义配置表存储断点

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

用户需要手工修改断点值,以进行重试

且用户的任务设计需要支持幂等、即同一数据范围的定时任务需要支持多次运行

全表比对--