数据传输一致性保障:如何避免‘少数据’或‘脏数据’?

在做数据同步的时候,ETLCLoud一般通过库表输入与库表输出完成抽取数据和同步数据。

而抽取数据到平台并推送数据到目标端这个过程时,数据都是存在平台所在服务器的内存中的,对于一些大表,内存不足以存储整张表的数据,这时就会使用平台自带的分页传输。

而分页传输,数据被分成多批传输到目标端,如果其中有一批数据输出出错,那么流程会直接终止,事务被回滚,而面对这种情况,我们可以在库表输出中配置

输出异常时跳过异常,并配置节点断言。

这样运行流程,即使有数据出错也不会停止流程,能够成功传输的数据还是正常输出。

这时流程的运行记录会标记为警告(流程正常结束但是存在同步失败的数据)。

检查目标表的确实没有传输失败的数据。

根据日志处理了目标表的字段结构后,如何只同步失败的数据而不必同步全部数据呢?

一、出错数据如何同步

首先先确保库表输出配置了记录失败的数据。

这样,流程同步失败的数据会存入到作为ETL平台系统数据库的MongoDB的库中。

配置一个这样的流程

Mongo输入组件配置:

查询条件添加过滤条件:

{

$and:[

{"P_TAG_STATUS":1},

{"P_TAG_PROCESSSID":"任务ID"}

]

}

应用ID位置:

任务ID为运行记录的任务ID:

库表输出则配置目标库

运行流程进行失败数据传输:

成功将失败数据进行同步。

二、如何去判断源表和目标表的数据是否一致

同步完数据后如何去判断源表和目标表的数据是否一致呢?

我们创建并设计一个流程

库表输入配置:

源表与目标表都是读取全量数据

双流数据值对比组件:

日志输出的输出内容选包含变量的,因为对比结果存在变量里面

运行流程进行数据对比

打印结果compareResult为true证明两张表的内容一致。

三、当源表与目标表数据不一致要如何处理

当源表的数据与目标表数据不一致,可能是源端插入、更新、删除的数据都没有同步到目标端,这就可能导致目标表可能少了源表存在的数据、部分数据与源表不一致、多了源表不存在的数据。这种情况下,我们要对两张表进行数据对比,对比出差异数据,根据不同情况同步到目标表:

源表存在目标表不存在的数据:插入到目标表。

源表与目标表都存在但是部分数据不一致的数据:更新到目标表。

源表不存在目标表存在的数据:从目标表删除。

我们可以配置这样的流程进行处理:

双流增量运算配置

两个库表输入就分别全量读取源表与目标表数据。库表输出则选择目标表,将双流增量的数据同步到目标表

本文详细介绍了在使用ETLCloud进行数据同步时,如何确保数据传输的一致性,主要分为三个部分:

容错与重试:通过配置"跳过异常"和节点断言,避免因部分数据错误导致整个同步任务失败,并将失败数据记录至MongoDB,便于后续精准重同步。

一致性校验:通过"双流数据值对比"组件,全量比对源表和目标表的数据,快速验证数据是否一致。

差异修复:当发现数据不一致时,利用"双流增量运算"组件自动识别差异类型(需新增、更新或删除),并生成相应的操作将目标表数据修复至与源表一致。

这套方法体系有效地解决了数据同步过程中可能出现的"少数据"和"脏数据"问题,保障了端到端的数据一致性。

相关推荐
weixin_408099671 小时前
【完整教程】天诺脚本如何调用 OCR 文字识别 API?自动识别屏幕文字实战(附代码)
前端·人工智能·后端·ocr·api·天诺脚本·自动识别文字脚本
2501_921649494 小时前
2026个人量化交易免费数据API接入:从选型到实操
经验分享·python·金融·api·个人开发·量化交易
chaofan98010 小时前
2026大模型应用架构选型:如何通过API聚合平台构建企业级AI服务?
人工智能·架构·自动化·api
ai大模型中转api测评1 天前
告别文字堆砌:Gemini 交互 API 赋能垂直领域,开发者如何重构用户认知?
人工智能·重构·交互·api
chaofan9801 天前
从文字响应到动态沙盒:深度解析 Gemini 交互模拟 API 的技术实现与集成
人工智能·交互·api
weixin_408099671 天前
OCR 识别率提升实战:模糊 / 倾斜 / 反光图片全套优化方案(附 Python / Java / PHP 代码)
图像处理·人工智能·后端·python·ocr·api·抠图
weixin_408099671 天前
【实战教程】懒人精灵如何实现 OCR 文字识别?接口调用完整指南(附可运行示例)
java·前端·人工智能·后端·ocr·api·懒人精灵
weixin_408099671 天前
【保姆级教程】易语言调用 OCR 文字识别 API(从0到1完整实战 + 示例源码)
图像处理·人工智能·后端·ocr·api·文字识别·易语言
147API1 天前
Claude、GPT、Gemini 场景分工实战:模型路由架构指南
架构·api·多模型协同·api大模型
weixin_408099671 天前
【保姆级教程】按键精灵调用 OCR 文字识别 API(从0到1完整实战 + 可运行脚本)
java·前端·人工智能·后端·ocr·api·按键精灵