一种数据一致性校验方法、装置、设备及可读存储介质与流程

摘要: 本发明涉及数据管理,特别涉及一种数据一致性校验方法、装置、设备及可读存储介质。背景技术:1、在云边数据同步框架中,同一业务表往往同时存在云端和边缘端两个副本。为...
一种数据一致性校验方法、装置、设备及可读存储介质与流程

本发明涉及数据管理,特别涉及一种数据一致性校验方法、装置、设备及可读存储介质。

背景技术:

1、在云边数据同步框架中,同一业务表往往同时存在云端和边缘端两个副本。为了确认同步链路运行是否正常,系统通常需要定期校验云端与边缘端数据是否一致。传统的一致性校验方式通常直接对整表或整行字段进行比较,或者通过全量导出后逐条比对判断差异。上述方式在云边场景中存在明显不足:其一,边缘节点网络带宽和远程调用能力有限,整表全量校验容易带来较大数据传输开销;其二,云边同步框架通常并非对整表所有字段都进行双向同步,若直接按整行字段比较,会产生大量误报。

2、可见,如何提高数据一致性校验的准确性和效率是本领域技术人员急需解决的技术问题。

技术实现思路

1、有鉴于此,本发明的目的在于提供一种数据一致性校验方法、装置、设备及可读存储介质,解决了现有技术中数据一致性校验准确性和效率较低的技术问题。

2、为解决上述技术问题,本发明提供了一种数据一致性校验方法,应用于边缘端,包括:

3、根据待校验业务表的同步表元数据确定同步字段规则;其中,所述同步表元数据包括表名、主键字段、云到边同步字段规则和边到云同步字段规则;所述同步字段规则为确定需进行一致性校验的字段的规则;所述主键字段对应的主键值具有顺序关系;

4、按照预设页大小分页读取边缘端中待校验业务表的数据,并根据当前页最后一条数据的主键值和上一页最后一条数据的主键值,确定当前页对应的当前主键区间;

5、基于所述表名、所述当前主键区间和所述同步字段规则确定边缘端对应的边缘端待校验数据,以及获取中心端基于所述表名、所述当前主键区间和所述同步字段规则查找后返回的中心端待校验数据;

6、获取基于规范化规则分别对所述边缘端待校验数据和所述中心端待校验数据处理后得到的边缘端待校验规范数据和中心端待校验规范数据,并对所述边缘端待校验规范数据和所述中心端待校验规范数据进行一致性校验,得到所述当前主键区间内的差异行;

7、继续读取下一页,并执行确定主键区间、确定待校验数据以及进行一致性校验的步骤,直至完成所述待校验业务表的全部页对应的一致性校验,得到所述待校验业务表对应的差异行集合。

8、可选的,根据待校验业务表的同步表元数据确定同步字段规则,包括:

9、根据所述云到边同步字段规则确定云到边同步字段集合;

10、根据所述边到云同步字段规则确定边到云同步字段集合;

11、将所述云到边同步字段集合和所述边到云同步字段集合的并集确定为需进行一致性校验的字段范围,并根据所述字段范围形成所述同步字段规则。

12、可选的,根据所述云到边同步字段规则确定云到边同步字段集合,包括:

13、当所述云到边同步字段规则为字段包含集合时,将所述字段包含集合中的字段确定为云到边同步方向的所述云到边同步字段集合;

14、当所述云到边同步字段规则为字段排除集合时,从所述待校验业务表中需要同步的业务字段中排除所述字段排除集合中的字段,得到所述云到边同步字段集合。

15、可选的,所述同步表元数据还包括逻辑删除规则;基于所述表名、所述当前主键区间和所述同步字段规则确定边缘端对应的边缘端待校验数据,以及获取中心端基于所述表名、所述当前主键区间和所述同步字段规则查找后返回的中心端待校验数据,包括:

16、获取所述中心端基于所述表名、所述当前主键区间、所述同步字段规则和所述逻辑删除规则确定的所述中心端待校验数据;

17、其中,所述中心端确定所述中心端待校验数据的过程包括:基于所述当前主键区间和所述同步字段规则确定的初始中心端待校验数据,从所述初始中心端待校验数据中删除操作时间字段,并排除命中所述逻辑删除规则的数据,得到所述中心端待校验数据。

18、可选的,按照预设页大小分页读取边缘端中待校验业务表的数据,并根据当前页最后一条数据的主键值和上一页最后一条数据的主键值,确定当前页对应的当前主键区间,包括:

19、按照所述主键字段对应的主键值顺序分页读取所述待校验业务表的数据;

20、当所述当前页为第一页时,将预设初始主键值确定为所述当前主键区间的下界;

21、当所述当前页不为第一页时,将所述上一页最后一条数据的主键值确定为所述当前主键区间的下界;

22、将所述当前页最后一条数据的主键值确定为所述当前主键区间的上界,确定所述当前主键区间为主键值大于所述下界且小于且等于所述上界的数据。

23、可选的,获取基于规范化规则分别对所述边缘端待校验数据和所述中心端待校验数据处理后得到的边缘端待校验规范数据和中心端待校验规范数据,包括:

24、分别按照字段名对所述边缘端待校验数据和所述中心端待校验数据中的字段进行排序,保留所述边缘端待校验数据和所述中心端待校验数据中的空值字段;

25、将排序后的所述边缘端待校验数据和所述中心端待校验数据分别转换为设定字符串形式,得到所述边缘端待校验规范数据和所述中心端待校验规范数据。

26、可选的,对所述边缘端待校验规范数据和所述中心端待校验规范数据进行一致性校验,得到所述当前主键区间内的差异行,包括:

27、分别生成以主键值为键、以对应的所述边缘端待校验规范数据为值的边缘端数据映射,以及以主键值为键、以对应的所述中心端待校验规范数据为值的中心端数据映射;

28、基于所述边缘端数据映射和所述中心端数据映射进行一致性校验,将单端不存在相同主键值或者相同主键值对应的待校验规范数据不同的数据确定为差异行;

29、确定所述差异行中的差异字段;

30、相应的,继续读取下一页,并执行确定主键区间、确定待校验数据以及进行一致性校验的步骤,直至完成所述待校验业务表的全部页对应的一致性校验,得到所述待校验业务表对应的差异行集合,包括:

31、在完成所述待校验业务表的全部主键区间的一致性校验后,输出包括所述表名、所述差异行集合和所述差异字段集合的表级一致性校验结果。

32、本发明还提供了一种数据一致性校验装置,应用于边缘端,包括:

33、同步字段规则确定模块,用于根据待校验业务表的同步表元数据确定同步字段规则;其中,所述同步表元数据包括表名、主键字段、云到边同步字段规则和边到云同步字段规则;所述同步字段规则为确定需进行一致性校验的字段的规则;所述主键字段对应的主键值具有顺序关系;

34、主键区间确定模块,用于按照预设页大小分页读取边缘端中待校验业务表的数据,并根据当前页最后一条数据的主键值和上一页最后一条数据的主键值,确定当前页对应的当前主键区间;

35、待校验数据确定模块,用于基于所述表名、所述当前主键区间和所述同步字段规则确定边缘端对应的边缘端待校验数据,以及获取中心端基于所述表名、所述当前主键区间和所述同步字段规则查找后返回的中心端待校验数据;

36、差异确定模块,用于获取基于规范化规则分别对所述边缘端待校验数据和所述中心端待校验数据处理后得到的边缘端待校验规范数据和中心端待校验规范数据,并对所述边缘端待校验规范数据和所述中心端待校验规范数据进行一致性校验,得到所述当前主键区间内的差异行;

37、循环遍历模块,用于继续读取下一页,并执行确定主键区间、确定待校验数据以及进行一致性校验的步骤,直至完成所述待校验业务表的全部页对应的一致性校验,得到所述待校验业务表对应的差异行集合。

38、本发明还提供一种数据一致性校验设备,包括:

39、存储器,用于存储计算机程序;

40、处理器,用于执行所述计算机程序以实现如上述数据一致性校验方法的步骤。

41、本发明还提供一种可读存储介质(即计算机可读存储介质),所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据一致性校验方法的步骤。

42、本发明还提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述方法的步骤。

43、可见,本发明通过根据待校验业务表的同步表元数据确定同步字段规则;其中,同步表元数据包括表名、主键字段、云到边同步字段规则和边到云同步字段规则;同步字段规则为确定需进行一致性校验的字段的规则;所述主键字段对应的主键值具有顺序关系;按照预设页大小分页读取边缘端中待校验业务表的数据,并根据当前页最后一条数据的主键值和上一页最后一条数据的主键值,确定当前页对应的当前主键区间;基于表名、当前主键区间和同步字段规则确定边缘端对应的边缘端待校验数据,以及获取中心端基于表名、当前主键区间和同步字段规则查找后返回的中心端待校验数据;获取基于规范化规则分别对边缘端待校验数据和中心端待校验数据处理后得到的边缘端待校验规范数据和中心端待校验规范数据,并对边缘端待校验规范数据和中心端待校验规范数据进行一致性校验,得到当前主键区间内的差异行;继续读取下一页,并执行确定主键区间、确定待校验数据以及进行一致性校验的步骤,直至完成待校验业务表的全部页对应的一致性校验,得到待校验业务表对应的差异行集合。

44、本发明的有益效果在于:本发明和当前全量对比相比,本发明根据同步表元数据确定同步字段规则,按照主键形成主键区间,基于主键区间和同步字段规则从两端记录中提取待校验数据并转换为待校验规范数据后进行比对。由于同步字段规则可以准确地确定需要一致性校验的数据内容,主键区间限定每次获取的范围,相同的规范化处理使两端数据形成统一的比较形式,从而不存在非同步字段的对比,以及减少非同步字段造成的误报,从而提高数据一致性对比的准确性和效率。

45、此外,本发明还提供了一种数据一致性校验装置、设备及可读存储介质,同样具有上述有益效果。