新接手的一个项目,主要做统计分析,数据来源于另外一个系统,我们系统的数据与对方系统的数据不一致,所以统计结果不准确,客户对此有很大意见。我接手这项目之前的项目团队检查了好几个月,仍未解决该问题,随即领导就把这个任务交给我去解决。
我首先画了个思维导图,简单梳理一般数据不一致常见的原因。

一、采集数据问题
1、采集的类型少导致漏采了一部分数据。
2、采集范围问题,对方有些字段不是必填项,但我们筛选特定字段导致漏采数据。
3、采集频率问题,采集时间间隔长,期间有数据变动,年报数据基本上不是这个原因导致数据不一致。
4、更新机制问题,新增的合同采集过来了。但修改的合同,未采集或按照新增的合同采集过来,在对方系统中删除的合同,我们中并没有同步删除
二、存储数据问题
1、自己编辑产生了一些重复的垃圾数据,导致数据不准。通过数据量大小比对。
2、数据展示的SQL撰写有问题,可能是撰写思路不对,撰写错误。
后面我经过验证后,果然不是这些简单的原因导致的,数据字段差异和数据量差异没办法通过这些思路排查出来。随即又画了个思维导图,往深一层思考。

一、对方同步给我们的数据有问题
1、对方系统同步给我们的数据是几张表拼接的,拼接的唯一标识并不是唯一的(编码、名称、编号等不唯一)。导致不同的时间点同步的同一个合同的数据内容不同。
2、对方系统程序逻辑处理有问题,产生新数据后,却没更新对应的归属字段(如最后更新时间未更新。注:最后发现果然是这个原因。)
二、同步策略失败
1、同步失败,如何触发再次同步数据
2、同步失败的原因,接口异常、超时、数据未触发同步。
三、解决思路
1、验证目前与对方系统存在的差异,并分析可能产生的原因。开展分析,选择某一些小类,全量查询相关数据,并与对方系统一一核对。
2、让对方系统去调整。对方系统调整后,验证之前的数据,并通过同样的方法获取新的数据,看是否存在类似的问题。
3、组建沟通群,把双方公司专家拉到一个群里,每天在专家群里同步下自己方的进度,并让对方也反馈进度及计划。
具体5月8日正式开始验证问题,首先通过选取选取某一小类,比对双方数据差异,数据量差异先不考虑,先解决数据字段差异。以对方的数据为基准,通过vlookup代入自己数据库中查到的数据,查看是否还存在数据量的差异。数据项的差异,登录对方系统查看这条数据我方最后更新时间在对方系统属于什么状态,通过比对发现驳回补正后,对方系统并未把重新提交之后的动态更新同步给我们,信息及更新时间停滞在驳回的状态及时间上,随即写邮件建议对方系统检查驳回补正流程。(并发送问题截图)。注:这可能是造成数据不一致的其中一个原因,还需要继续排查是否存在其他原因。
跟对方多次沟通后,梳理数据同步机制,发现对方存在两种同步机制,一种是实时变更获取,通过最后更新时间触发。另外一种是广播形式,对方系统某几个字段变更时,会主动对外分发。(注:此处就能解决我方系统与对方数据字段由于最后更新时间未更新,而产生的数据不一致的问题)。
跟内部的研发讨论后,觉得这个接口确实能够解决该问题,随即又拉上对方产品和研发一起开会讨论,最终决定在原有接口触发基础上,再添加一个广播接口接收数据。另外让对方提取全量数据的流水号,我们这边比对差异,分析差异产生的原因。之前发现有一部分数据是我们系统与对方UAT环境接口测试时,从对方UAT环境获取了一批数据。其它数据需要根据差异进行排查。
如果想继续了解数据不一致性问题排查2,欢迎关注我的微信公众号:项目管理的一些事。

数据不一致问题排查1相关推荐

  1. 视频号助手后台数据不一致问题排查

    视频号助手自动化团队测试 问题发现 正文 总结 问题发现 本部门视频号自动化团队在给某10w+视频号做自动回复工具的过程中发现,官方后台提供的数据与实际数据不符,且常常有较大的偏离度(超出一倍),故又 ...

  2. 我在MongoDB年终大会上获二等奖文章:由数据迁移至MongoDB导致的数据不一致问题及解决方案...

    作者 | 上海小胖 来源 | Python专栏(ID:xpchuiit) 故事背景 企业现状 2019年年初,我接到了一个神秘电话,电话那头竟然准确的说出了我的昵称:上海小胖. 我想这事情不简单,就回 ...

  3. 三年之久的 etcd3 数据不一致 bug 分析

    etcd 作为 Kubernetes 集群的元数据存储,是被业界广泛使用的强一致性 KV 存储,但近日被挖掘出一个存在 3 年之久的数据不一致 bug--client 写入后无法在异常节点读取到数据, ...

  4. MySQL主从数据不一致,怎么办?

    先给大家说个身边的故事. 小伙伴二狗最近面宇宙厂,前面被问MySQL索引.锁.主从复制原理时答的都很开心. 当面试官问到 :"你们遇到主从不一致的问题怎么解决呢?你有什么更好的方案吗?&qu ...

  5. 由数据迁移至MongoDB导致的数据不一致问题及解决方案

    故事背景 企业现状 2019年年初,我接到了一个神秘电话,电话那头竟然准确的说出了我的昵称:上海小胖. 我想这事情不简单,就回了句:您好,我是小胖,请问您是? "我就是刚刚加了你微信的 xx ...

  6. mysql缓存淘汰机制_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

    在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...

  7. 使用pt-online-schema-change 修复主从数据表数据不一致

    使用pt-online-schema-change 修复主从数据表数据不一致 step 1: 设置master的binlog_format为row    set global binlog_forma ...

  8. mysql主从字符集不一致_MySQL多字节字符集造成主从数据不一致问题

    问题产生线上一直有个历史遗留问题,最近DBA提了出来,所以跟了下代码,作了下简单分析,问题描述如下: 在master-slave的环境下,对master上的某个表中的数据插入,会导致master-sl ...

  9. onbeforeedit和onbeginedit数据不一致_Redis缓存与数据库产生不一致的问题该如何解决?...

    不一致产生的原因 我们在使用redis过程中,通常会这样做:先读取缓存,如果缓存不存在,则读取数据库.伪代码如下: Object stuObj = new Object();public Stu ge ...

最新文章

  1. 仟亿达2016年净利润2184万同比跌46%
  2. socket下server端支持多客户端并发访问简单实现
  3. 绘图的尺寸_Auto CAD机械绘图尺寸标注教程1(尺寸标注简介)
  4. (转) RabbitMQ学习之spring整合发送异步消息
  5. GDB调试 ORBSLAM3
  6. TTL与RS-232电平转换芯片MAX232/MAX3232
  7. K线技术指标实现详解—KDJ
  8. 走进小作坊(十)----长尾效应
  9. 设置spyder分辨率过高致其无法启动: The X11 connection broke: Maximum allowed requested length exceeded (code 4)
  10. 百年IBM:值得全球商界研究的转型变革典范
  11. 利用scrapy爬取58同城租房信息
  12. C语言编写IDL动态可加载模块(DLM)入门
  13. Monash call (莫纳什来电) -开篇
  14. 我们是怎么看中国企业服务的​
  15. 山寨凤凰新闻菜单效果
  16. 《追风筝的人》读书笔记
  17. MAC电脑存储空间占用过高怎么办?
  18. 根据当前日期进行以下方面的处理: 1、取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式 如:2013年8月17日 20时30分20秒 2、根据日期的不同时间段,做问候语: 早上8:00-12
  19. 软件打开显示未选定服务器ip,LtusNtes常见问题大汇总 .doc
  20. 游戏项目如何快速实现多语言版本(国际化)--Egret篇

热门文章

  1. python多线程网络编程_python网络编程之线程
  2. java对象赋值给另一个对象_java面向对象编程
  3. pgsql的存储过程调用mysql_PostgreSQL存储过程循环调用方式
  4. 6-Qt6对象树及内存管理
  5. java面板如何设置大小_java面板调整大小问题
  6. java 两个数组去重复数据_Java实现数组去除重复数据的方法详解
  7. 贪心算法区间调度问题思路代码证明
  8. java虚拟机起不来的原因,JVM理解其实并不难!
  9. 客户端访问https时应无浏览器(含终端)安全警告信息;_https和http有什么区别(内附详细分析)...
  10. win10添加美式键盘_win10玩dnf卡顿,怎么解决?