多数据库的业务数据一致性的检验方法、设备和存储介质与流程

文档序号:26050497发布日期:2021-07-27 15:25阅读:104来源:国知局
多数据库的业务数据一致性的检验方法、设备和存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种多数据库的业务数据一致性的检验方法、设备和存储介质。



背景技术:

数据库是“按照数据结构来组织、存储和管理数据的仓库”。在日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个“数据仓库”就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。

关于数据库的一个比较完整的定义为:数据库是存储在一起的相关数据的集合,这些数据是结构化的,用于为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据、修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”,即由多个数据库组成。

在实际中,当数据处理涉及一个系统中的多个数据库,或者,多个系统的多个数据库时,存在同一个数据在不同的数据库中不一样的情况,即数据库之间的数据不一致。例如,对于两个存储有多个公司商标数量的数据库a和b,数据库a中存储的c公司的商标数量与数据库b中存储的c公司的商标数量不同。这种数据的不一致可能是由于系统性问题引起的,所述系统性问题包括网络堵塞、设备故障或者写入数据库的程序本身有问题等。

但是,现有的不一致检验工具检验到的不一致信息无法量化,因此,这些不一致信息并不能用来发现系统性问题。因此,如何对不一致信息进行量化从而能够发现系统性问题,是目前亟待解决的问题。



技术实现要素:

本发明的目的在于提供一种多数据库的业务数据一致性的检验方法、设备和存储介质。

为实现上述发明目的之一,本发明一实施方式提供一种多数据库的业务数据一致性的检验方法,所述方法包括:

使用第一独立线程,在第一数据库中依次查找各公司某业务维度的业务维度信息符合预设条件的记录信息,将所述记录信息写入第一存储空间中,所述记录信息包括公司id、业务维度和业务维度信息;

使用第二独立线程,按照预设频率获取所述第一存储空间中最新的记录信息,并从第二数据库中获取与所述最新的记录信息中具有相同公司和相同业务维度的记录信息,写入第二存储空间;

使用第三独立线程,在所述第二存储空间写入最新记录信息后,将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较,得到结果记录,将所述结果记录写入第三存储空间,其中,所述结果记录包括结果、对应的公司id和业务维度;

按照预设策略,将所述第三存储空间的未写入统计数据库的结果记录写入所述统计数据库,根据所述统计数据库,对所述业务维度的结果为不一致的结果记录进行统计。

作为本发明一实施方式的进一步改进,所述记录信息还包括记录时间,所述“在所述第二存储空间写入最新记录信息后,将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较”具体包括:

在所述第二存储空间写入最新记录信息后,将所述最新记录信息的记录时间与所述第一存储空间对应的记录信息的记录时间进行比较,若两个记录时间的时间差小于时间差阈值,则将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较。

作为本发明一实施方式的进一步改进,所述“按照预设策略,将所述第三存储空间的未写入统计数据库的结果记录写入所述统计数据库”包括:

每隔预设时间段获取在所述预设时间段内写入所述第三存储空间的结果记录,将所述结果记录写入统计数据库;

或者在所述第三存储空间的未写入统计数据库的结果记录的数量超过预设数量阈值时,将所有未写入所述统计数据库的结果记录写入所述统计数据库。

作为本发明一实施方式的进一步改进,所述结果记录还包括有对比时间,所述对比时间为得到所述结果记录的时间。

作为本发明一实施方式的进一步改进,所述“对所述业务维度的结果为不一致的结果记录进行统计”包括:

根据所述统计数据库的结果记录的对比时间,统计所述业务维度在某时间段内出现结果为不一致的结果记录的数量,得到不一致数量。

作为本发明一实施方式的进一步改进,所述方法还包括:

统计所述业务维度在不同时间段的不一致数量,得到统计图表,根据所述统计图表,对所述业务维度的前端处理的异常进行反馈,并在所述异常修正后对所述修正进行验证。

作为本发明一实施方式的进一步改进,所述“对所述业务维度的结果为不一致的结果记录进行统计”还包括:

根据所述统计数据库的结果记录的对比时间,统计所述业务维度在某时间段内出现业务维度信息不一致的比例,并在所述比例超过预设比例、或者在所述比例超过前期平均比例时,进行报警处理。

为实现上述发明目的之一,本发明一实施方式提供一种多数据库的业务数据一致性的检验方法,所述方法包括:

为每一业务维度分配一个第一独立线程,多个所述第一独立线程并行获取对应业务维度的业务维度信息符合预设条件的记录信息,将所述记录信息写入第一存储空间对应业务维度的分区中;

为每个业务维度分配一个第二独立线程,按照预设频率,多个所述第二独立线程并行获取所述第一存储空间对应业务维度分区中最新的记录信息,并从第二数据库中获取与所述最新的记录信息中具有相同公司和相同业务维度的记录信息,写入第二存储空间对应业务维度的分区中;

为每个业务维度分配一个第三独立线程,多个所述独立线程并行执行以下操作:

在所述第二存储空间对应业务维度的分区写入最新记录信息后,将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较,得到结果记录,将所述结果记录写入第三存储空间对应业务维度的分区中;

按照预设策略,将所述第三存储空间每个业务维度的分区中的未写入统计数据库的结果记录写入对应业务维度的统计数据库,根据所述统计数据库,对每个业务维度的结果为不一致的结果记录进行统计。

为实现上述发明目的之一,本发明一实施方式提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多数据库的业务数据一致性的检验方法中的步骤。

为实现上述发明目的之一,本发明一实施方式提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述多数据库的业务数据一致性的检验方法中的步骤。

与现有技术相比,本发明的多数据库的业务数据一致性的检验方法,能够对数据一致性的检验结果进行量化,并对数据一致性的波动进行实时监控、统一管理,对于一些突发性、间歇性、随机性的一致性问题保持敏感;还可以通过聚合图表技术将所有的不一致信息进行汇总,为研发人员进一步排查问题乃至彻底解决问题提供对照依据。

附图说明

图1是本发明的多数据库的业务数据一致性的检验方法的流程示意图。

图2是本发明对一业务维度的数据一致性的检验结果的统计图。

具体实施方式

以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。

以左右两个数据库中都存储有各公司的专利数量为例,现有的不一致检验工具的检验过程包括:

第一步:查找左边数据库中专利数量不为0的记录;

第二步:根据第一步的记录获取右边数据库相应记录的专利数量;

第三步:将第一步获取的记录的专利数量与第二步获取的相应记录的专利数量进行比较,得到比较结果。

根据上述检验过程可以看出,最终得到比较结果的总时间是这三步的时间之和,而这三步中比较耗时且时长不可控的是第一步,例如在两条专利数量不为0的记录中间存在少量专利数量为0的记录,那么第一步会相对耗时较短,但是若存在大量专利数量为0的记录,那么第一步会相对耗时较长。由此可知,每得到一个比较结果的耗时总长是不固定的,即在相同时间段内得到的比较结果的总数不同,而由于不一致结果的无规律性,比较结果总数不同的相同时间段内出现比较结果为不一致的数量也无法确定,从而无法从这些不一致信息中得到与系统性问题相关联的依据,或者说现有的不一致检验工具检验到的不一致信息无法量化。

有鉴于此,本发明提供一种多数据库的业务数据一致性的检验方法,所述方法将取左边数据库中的记录(记为动作一)、取右边数据库中的记录(记为动作二)和对左右数据库中的记录进行比较(记为动作三)这三个动作并行执行,并且动作二按照预设频率执行,在动作二的带动下动作三亦按照预设频率执行,即在相同时间段内得到的比较结果的总数是大致相同的,从而通过所述方法得到的不一致信息在相同的时间段内具有可对比性,即所述不一致信息能够被量化用以发现系统性问题。

如图1所示,所述方法包括步骤s100~步骤s400。

步骤s100:使用第一独立线程,在第一数据库中依次查找各公司某业务维度的业务维度信息符合预设条件的记录信息,将所述记录信息写入第一存储空间中,所述记录信息包括公司id、业务维度和业务维度信息。

系统将基础数据写入数据库的过程为:将基础数据写入第一数据库,然后再将基础数据写入第二数据库。其中,所述第一数据库和第二数据库为包含有相同信息但是作用不同的数据库。因此,为了保持数据的一致性,需要对第一数据库和第二数据库中的相同信息进行一致性检验。

需要说明的是,本发明的记录信息包括:公司id、业务维度和业务维度信息。业务维度用于表示不同的业务,包括但不限于:专利、商标、软件著作权、招聘、招投标、控股公司、投资产品、裁判文书等。业务维度信息一般是指某个业务维度的数量,比如专利数量、商标数量等,当然也可以是具体的信息或者其它的形式。所述符合预设条件的记录信息是指对应的业务维度是存在数据的,具体的,若某记录信息上表明某公司的专利数量为0,则表明此公司在专利的业务维度是不存在数据的;反之,若不为0,则表明存在数据。因此,在所述业务维度信息是数量的情况下,所述符合预设条件的记录信息一般是指业务维度信息不为零的记录信息。

为了方便计算并且减少计算误差,优选所述记录信息还包括有记录时间,所述记录时间为所述记录信息写入存储空间的时间。

另外,由于使用的是独立线程,因此本步骤和其它步骤是并行执行的。本步骤在第一数据库中找到符合预设条件的记录信息后,会将所述记录信息写入第一存储空间中。

步骤s200:使用第二独立线程,按照预设频率获取所述第一存储空间中最新的记录信息,并从第二数据库中获取与所述最新的记录信息中具有相同公司和相同业务维度的记录信息,写入第二存储空间。

不论第一存储空间的最新记录信息有没有改变,本步骤都按照预设频率获取第一存储空间的最新记录信息,然后根据所述最新记录信息,获取第二数据库中对应的记录信息。另外,由于本步骤使用的是独立线程,因此,本步骤和其它步骤是并行执行的。

由于上述的做法,本步骤在执行时频率是稳定的(按照预设频率执行),即在相同的时间段内,动作“获取所述第一存储空间中最新的记录信息,并从第二数据库中获取与所述最新的记录信息中具有相同公司和相同业务维度的记录信息”的执行次数是大致相同的。

需要说明的是,所述预设频率可以是每分钟一次,或者每10秒一次等等。

步骤s300:使用第三独立线程,在所述第二存储空间写入最新记录信息后,将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较,得到结果记录,将所述结果记录写入第三存储空间,其中,所述结果记录包括结果、对应的公司id和业务维度。

在第二存储空间的最新记录信息更新后,本步骤随即将步骤s100和步骤s200获取到的最新记录信息进行比较得到结果记录,并且,本步骤亦使用的是独立线程,也就是说,本步骤得到结果记录的频率与步骤s200的预设频率相同,即在相同的时间段内得到的结果的总数是大致相同的,从而在相同的时间段内得到的不一致信息数量具有可对比性。

所述结果记录中的结果包括一致和不一致两种结果。

需要说明的是,由于数据库中的数据会随时间发生改变,为减少数据本身波动导致的误差,需要在一致性对比时对两边数据库获取到数据的时间差进行约束。若第一存储空间中的最新记录信息的更新时间过长,大于或等于时间差阈值(例如10分钟),则放弃对第一存储空间与第二存储空间的最新记录信息进行比较。在一优选的实施方式中,所述记录信息还包括记录时间,所述“在所述第二存储空间写入最新记录信息后,将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较”具体包括:

在所述第二存储空间写入最新记录信息后,将所述最新记录信息的记录时间与所述第一存储空间对应的记录信息的记录时间进行比较,若两个记录时间的时间差小于时间差阈值,则将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较。

步骤s400:按照预设策略,将所述第三存储空间的未写入统计数据库的结果记录写入所述统计数据库,根据所述统计数据库,对所述业务维度的结果为不一致的结果记录进行统计。

本步骤用于对业务维度的结果为不一致的结果记录进行统计,从而为发现系统性问题提供依据。

所述按照预设策略,可以是时间上的策略,也可以是数量上的策略。在一优选的实施方式中,所述“按照预设策略,将所述第三存储空间的结果记录写入统计数据库”包括:

每隔预设时间段获取在所述预设时间段内写入所述第三存储空间的结果记录,将所述结果记录写入统计数据库;

或者在所述第三存储空间的未写入统计数据库的结果记录的数量超过预设数量阈值时,将所有未写入所述统计数据库的结果记录写入所述统计数据库。

所述预设时间段可以是5分钟,也可以是其它的时长;所述预设数量阈值可以是100,也可以是其它的数值。

由于数据库的写入效率相对于内存的写入效率低,为了提高效率,优选所述第一存储空间、第二存储空间和第三存储空间是指内存空间。同时,为了节省内存空间,在将所述第三存储空间的未写入统计数据库的结果记录写入所述统计数据库后,将所述第一存储空间、第二存储空间和第三存储空间相关的记录清空。

为了方便后续的计算,优选所述结果记录还包括有对比时间,所述对比时间为得到所述结果记录的时间。在一优选的实施方式中,所述“对所述业务维度的结果为不一致的结果记录进行统计”包括:

根据所述统计数据库的结果记录的对比时间,统计所述业务维度在某时间段内出现结果为不一致的结果记录的数量,得到不一致数量。

进一步的,所述方法还包括:

统计所述业务维度在不同时间段的不一致数量,得到统计图表,如图2所示。根据所述统计图表,可以对所述业务维度的前端处理的异常进行反馈,例如发现网络阻塞、机器故障或者写入第一数据库或第二数据库时的程序出现异常等系统性问题。还可以在所述异常(系统性问题)修正后对所述修正进行验证。

在另一个优选的实施方式中,所述“对所述业务维度的结果为不一致的结果记录进行统计”还包括:

根据所述统计数据库的结果记录的对比时间,统计所述业务维度在某时间段内出现业务维度信息不一致的比例,并在所述比例超过预设比例、或者在所述比例超过前期平均比例时,进行报警处理。

例如统计某业务维度每天出现不一致信息的比例,若某天所述比例超过预设比例,则进行报警处理;或者若某天所述比例超过前n天的平均比例,则报警处理。

本发明的多数据库的业务数据一致性的检验方法,能够对数据一致性的检验结果进行量化,可以对数据一致性波动进行实时监控、统一管理,对于一些突发性、间歇性、随机性的一致性问题保持敏感;还可以通过聚合图表技术将所有的不一致信息进行汇总,为研发人员进一步排查问题乃至彻底解决问题提供对照依据。另外,由于这些步骤都是并行执行的,执行效率高。

上述方法适合于对单业务维度的数据一致性进行检验,对于存在多个业务维度数据的情况,当然也可以使用上述方法依次对这些业务维度进行一致性检验,也可以通过并行的方式,对这些业务维度进行一致性检验,用以提高执行效率。因此,本发明还提供一种多数据库的业务数据一致性的检验方法,所述方法还包括步骤s500~步骤s800。

步骤s500:为每一业务维度分配一个第一独立线程,多个所述第一独立线程并行获取对应业务维度的业务维度信息符合预设条件的记录信息,将所述记录信息写入第一存储空间对应业务维度的分区中。

假设存在n个业务维度(n为大于1的正整数),为每个业务维度分配一个独立线程,即n个业务维度对应n个独立线程。在程序运行时,n个独立线程中的多个或者全部独立线程并行执行步骤s100的操作。

需要说明的是,所述第一存储空间为每个业务维度分配了存储空间,在某独立线程获取到记录信息后,将所述记录信息写入到这个独立线程对应的业务维度在所述第一存储空间的分区中。

步骤s600:为每个业务维度分配一个第二独立线程,按照预设频率,多个所述第二独立线程并行获取所述第一存储空间对应业务维度分区中最新的记录信息,并从第二数据库中获取与所述最新的记录信息中具有相同公司和相同业务维度的记录信息,写入第二存储空间对应业务维度的分区中。

与步骤s500类似,若存在n个业务维度,则分配n个独立线程。在程序运行时,n个独立线程中的多个或者全部独立线程并行执行步骤s200的操作。

需要说明的是,所述第二存储空间亦为每个业务维度分配了存储空间,在某独立线程获取到记录信息后,将所述记录信息写入到这个独立线程对应的业务维度在所述第二存储空间的分区中。

步骤s700:为每个业务维度分配一个第三独立线程,多个所述独立线程并行执行以下操作:

在所述第二存储空间对应业务维度的分区写入最新记录信息后,将所述最新记录信息的业务维度信息与所述第一存储空间对应的记录信息的业务维度信息进行比较,得到结果记录,将所述结果记录写入第三存储空间对应业务维度的分区中。

与步骤s500类似,若存在n个业务维度,则分配n个独立线程。在程序运行时,n个独立线程中的多个或者全部独立线程并行执行步骤s300的操作。

需要说明的是,所述第三存储空间亦为每个业务维度分配了存储空间,在某独立线程获取到结果记录后,将所述结果记录写入到这个独立线程对应的业务维度在所述第三存储空间的分区中。

步骤s800:按照预设策略,将所述第三存储空间每个业务维度的分区中的未写入统计数据库的结果记录写入对应业务维度的统计数据库,根据所述统计数据库,对每个业务维度的结果为不一致的结果记录进行统计。

可以为每个业务维度分配一个统计数据库,也可以在一个统计数据库中为每个业务维度分配一段存储空间。所述“按照预设策略”可以参考步骤s400中对于预设策略的描述。

在获取了多个业务维度的统计信息后,可以将这些统计信息通过聚合图表技术进行汇总,以便更加直观的发现各个业务维度可能出现的系统性问题。

本发明还提供一种电子设备,包括存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多数据库的业务数据一致性的检验方法中的任意一个步骤,也就是说,实现上述多数据库的业务数据一致性的检验方法中任意一个技术方案中的步骤。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述多数据库的业务数据一致性的检验方法中的任意一个步骤,也就是说,实现上述多数据库的业务数据一致性的检验方法中的任意一个技术方案中的步骤。

应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1