System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向多数据源的数据一致性校验方法技术_技高网

一种面向多数据源的数据一致性校验方法技术

技术编号:40336119 阅读:10 留言:0更新日期:2024-02-09 14:25
本发明专利技术涉及数据校验技术领域,公开一种面向多数据源的数据一致性校验方法,包括在抵达触发时间时,从数据库中获取该定时校验任务所对应的任务执行配置、数据源配置以及一致性检测策略组配置;对定时校验任务进行加锁,对当前的定时校验任务是否加锁成功进行判断,若是,则判断当前定时校验任务没有在执行;在当前定时校验任务没有在执行,从定时校验任务的上下文里依次拿到数据源中的各个子检查数据源,并动态切换到对应的子检查数据源;在切换到子检查数据源时,从对应的定时校验任务的上下文中调取对应的一致性检测策略组,分别对子检查数据源进行一致性检测,生成对应的检测结果;根据各个子检查数据源所对应的检测结果进行数据比对。

【技术实现步骤摘要】

本专利技术涉及数据校验,具体涉及一种面向多数据源的数据一致性校验方法


技术介绍

1、数据一致性校验是任何涉及到数据同步或者迁移工具的必备功能。对于相同数据源可以用开源工具来进行数据一致性校验,例如mysql->mysql校验工具mysqldiff,mysql->tidb校验工具sync_diff_inspector等;但不同数据源,受限于表结构,sql语法等不同,开源工具无法进行数据层面的校验。因此,在对不同数据源进行数据一致性校验时,成为一个急需解决的技术问题。


技术实现思路

1、本专利技术的目的之一在于提供一种面向多数据源的数据一致性校验方法,能够实现对不同数据源进行数据一致性校验,极大减低校验难度,提高校验效率。

2、为了达到上述目的,提供了一种面向多数据源的数据一致性校验方法,包括以下步骤:

3、s1、创建定时校验任务,并设置对应的触发时间;

4、s2、在抵达触发时间时,触发定时校验任务,并从数据库中获取该定时校验任务所对应的任务执行配置、数据源配置以及一致性检测策略组配置,并放入到定时校验任务的上下文里;

5、s3、通过插入任务锁表对定时校验任务进行加锁,并对当前的定时校验任务是否加锁成功进行判断,若是,则判断当前定时校验任务没有在执行,反之,则判断当前定时校验任务正在执行,退出定时校验任务;

6、s4、在判断结果为当前定时校验任务没有在执行时,从定时校验任务的上下文里依次拿到数据源中的各个子检查数据源,并动态切换到对应的子检查数据源;

7、s5、在切换到对应的子检查数据源时,从对应的定时校验任务的上下文中调取对应的一致性检测策略组,根据一致性检测策略组中的各个子检测策略,分别对子检查数据源进行一致性检测,并生成对应的检测结果;

8、s6、根据各个子检查数据源所对应的检测结果进行数据比对,判断对应的检测结果是否一致,若是,则判断各个子检查数据源不存在问题,反之,则判断对应的各个子检查数据源存在问题;

9、s7、在判断结果为对应的各个子检查数据源存在问题时,生成对应的告警日志。

10、本方案的原理及效果:在本方案中,首先是进行定时校验任务的创建,并且设置触发时间,通过设置触发时间实现一致性校验的自动化,之后在对应的触发时间抵达时,就会从数据中获取该定时校验任务所对应的任务执行配置、数据源配置以及一致性检测策略组配置,并且将其保存到定时校验任务的上下文中。

11、为了避免任务并发的问题出现,在定时校验任务被触发时会第一时间插入任务表锁来对定时校验任务进行加锁,这样一旦对应的定时校验任务加锁成功,那么说明对应的当前的定时校验任务没有被执行,反之则判断该定时校验任务正在被执行,这样就会立即退出该定时校验任务,从而达到防止任务并发的目的。

12、一旦确定当前的定时校验任务没有被执行,就会从定时校验任务的上下文中依次拿到所述数据源中的各个子检查数据源,并动态切换到对应的子检查数据源,在动态切换到对应的子检查数据源时,就会从定时校验任务的上下文中调取对应的一致性检测策略组,利用一致性检测策略组中的各个子检测策略,同时对子检测数据源进行一致性检测,形成对应的检测结果,然后将所有的子检测数据源所对应的检测结果进行数据比对,通过数据比对结果来进行告警日志的制作,能够实现对不同数据源进行数据一致性校验,极大减低校验难度,提高校验效率。

13、进一步,还包括s8、在生成对应的告警日志后,清空定时校验任务所对应的上下文,删除对应的任务锁表中的数据,更新下一次执行时间。

14、有益效果:在执行完成对应的一致性校验之后及时的进行当前的定时校验任务所对应的数据的清除工作,极大避免了对后续的一致性校验产生干扰的问题出现,为后续的一致性校验提供了有效的校验环境。

15、进一步,还包括s9、在判断结果为对应的各个子检查数据源存在问题时,对该定时校验任务所对应的各个检查数据源进行原因分析,生成对应的原因分析报告,并基于原因分析报告,制定对应的解决方案。

16、进一步,所述s9包括:

17、s90、在判断结果为对应的各个子检查数据源存在问题时,对该定时校验任务所对应的各个子检查数据源进行原因分析,生成对应的原因分析报告,并保存到历史数据库中;

18、s91、根据原因分析报告,从历史数据库中调取历史原因分析报告,计算当前的原因分析报告与各个历史原因分析报告之间的相似度,并按照相似度从大到小进行排序,形成对应的相似排序表;

19、s92、选取相似排序表中排在前三的历史原因分析报告,匹配出该历史原因分析报告所对应的历史解决方案;

20、s93、根据匹配出来的历史解决方案,以及当前的原因分析报告,制定当前所对应的解决方案,并保持到历史数据库中。

21、有益效果:在本方案中,首先是在判断出对应的当前的定时校验任务所对应的各个检查数据源存在问题的时候,第一时间对出现这个问题的原因进行分析,以此来知晓对应的原因分析报告,同时产生的原因分析报告会在第一时间存储到历史数据库中,这样有助于数据的保存。

22、当然还会利用当前的原因分析报告,计算出当前的原因分析报告与各个历史原因分析报告之间的相似度进行计算,通过相似度的大小进行排序,以此来挑选出相似度与当前的原因分析报告相接近的前三的历史原因分析报告,之后利用这些历史原因分析报告匹配出其所对应的历史解决方案,然后利用历史解决方案和当前的原因分析报告来进行当的解决方案的生成,极大提高了当前的解决的方案生成的有效性和可靠性,同时也能够更加快速的生成对应的解决方案。

本文档来自技高网...

【技术保护点】

1.一种面向多数据源的数据一致性校验方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的一种面向多数据源的数据一致性校验方法,其特征在于:还包括S8、在生成对应的告警日志后,清空定时校验任务所对应的上下文,删除对应的任务锁表中的数据,更新下一次执行时间。

3.根据权利要求2所述的一种面向多数据源的数据一致性校验方法,其特征在于:还包括S9、在判断结果为对应的各个子检查数据源存在问题时,对该定时校验任务所对应的各个检查数据源进行原因分析,生成对应的原因分析报告,并基于原因分析报告,制定对应的解决方案。

4.根据权利要求3所述的一种面向多数据源的数据一致性校验方法,其特征在于:所述S9包括:

【技术特征摘要】

1.一种面向多数据源的数据一致性校验方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的一种面向多数据源的数据一致性校验方法,其特征在于:还包括s8、在生成对应的告警日志后,清空定时校验任务所对应的上下文,删除对应的任务锁表中的数据,更新下一次执行时间。

3.根据权利要求2所述的一种面向...

【专利技术属性】
技术研发人员:邓祯周曦
申请(专利权)人:重庆富民银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1