记录一个日常排查问题,发现的小问题。
背景:
早上,业务同事说,有两个报表的数据不一致,差异很大,让我看看哪里有问题。
排查:
- 我先看了下两张报表,的确有差异,按道理,应该是一致的,即使有差异,也不会太大
- 看了下两张报表的SQL,当前查看也是有差异
- 看了下数据同步,没有报错,感觉应该是数据同步的问题
- 按照订单进行对比,发现有一些订单,在数仓中的确没有,思考了一下
结果:
最后发现原因,还是同步的地方有些不严谨。
问题是这样,每天会增量的对订单表进行同步,通常是订单的更新时间大于等于昨天,而且小于今天,然后有一些订单是这样的,订单的创建时间是昨天0点05左右,今天0点05左右又进行了更新,然后问题就出现了。
定时任务是0点15左右,昨天同步的时候,订单还没有生成,所以没有同步,然后,今天,订单又进行了更新,更新时间也超过了要筛选的时间段,所以,很多类似的记录都没有同步过来,导致了差异。
对于这个问题的解决,我是直接野蛮解决的,哈哈哈哈,我把结束时间取消了,直接把当前所有订单都同步过来了;
印象中,还有一种办法是把新增的订单和更新的订单做一个整合,然后进行同步;
或者根据业务场景来确认,这样的数据是否需要同步过来,因为记录的确是发生变化了。