掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及数据处理技术领域,具体地说,涉及一种数据比对方法、系统、电子设备和存储介质。

背景技术

数据迁移、不同系统数据同步在信息化系统中非常常见,在数据迁移、数据同步等操作前,需要对数据进行比对验证,确保迁移、同步等操作的可靠性。

传统的数据比对验证,通过采取抽样、人工检测、数据总量验证等方式进行数据一致性的验证,覆盖范围非常有限,常会导致大量重复工作,无法灵活地进行数据比对验证,且缺少系统化的结果报告。

需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

有鉴于此,本发明提供一种数据比对方法、系统、电子设备和存储介质,能够实现海量数据的差异化比对,根据需要灵活取数,提高数据比对验证的效率和系统的稳定性。

本发明的一个方面提供一种数据比对方法,包括:任务获取步骤:获取比对任务的比对信息,包括基准数据源和比对数据源、待比对数据的查询条件和分页抽取模式;数据抽取步骤:根据所述分页抽取模式,分别自所述基准数据源和所述比对数据源中抽取满足所述查询条件的基准数据和比对数据,并建立所述基准数据和所述比对数据的映射关系;数据比对步骤:对相映射的每组基准数据和比对数据进行比对,生成包含所述比对数据与对应的基准数据的差异标记的比对结果。

在一些实施例中,所述任务获取步骤之前,还包括任务生成步骤,所述任务生成步骤包括:接收主任务配置的比对信息,生成消息队列,所述主任务配置的比对信息包括基准数据源、进行数据抽取的取数条件和分页抽取模式;接收基于所述主任务的多个子任务配置的比对信息,生成所述消息队列的多个消费者,每个所述子任务配置的比对信息包括比对数据源、基于所述取数条件的查询条件、及数据比对模式;所述任务获取步骤、所述数据抽取步骤和所述数据比对步骤分别由每个所述消费者执行,多个所述消费者并行消费所述消息队列的多条消息,每条消息包括所述主任务的比对信息和对应的子任务的比对信息。

在一些实施例中,所述取数条件和所述查询条件均以键值方式存储;所述取数条件中,以所述待比对数据的数据特征为键,以所述待比对数据的数据范围为值;所述查询条件中,以满足所述数据特征的变量名为键,以满足所述数据范围的变量值为值。

在一些实施例中,所述数据比对步骤包括:根据所述数据比对模式,过滤相映射的每组基准数据和比对数据中的忽略字段,所述数据比对模式包括严格模式和非严格模式;对每组所述基准数据和比对数据中保留的目标字段进行比对,并当所述比对数据的目标字段与对应的基准数据的目标字段存在差异时根据差异类型进行差异标记;生成包含所述基准数据、所述比对数据、及所述比对数据与对应的基准数据的差异标记的比对结果。

在一些实施例中,所述分页抽取模式的结束条件为时间截止条件或数量截止条件。

在一些实施例中,所述数据比对步骤之后,还包括可视化展示步骤,所述可视化展示步骤包括:根据所述比对结果,生成可视化报告,展示至对应页面。

在一些实施例中,所述比对结果存储于Elasticsearch中。

本发明的另一个方面提供一种数据比对系统,包括:任务获取模块,用于获取比对任务的比对信息,包括基准数据源和比对数据源、待比对数据的查询条件和分页抽取模式;数据抽取模块,用于根据所述分页抽取模式,分别自所述基准数据源和所述比对数据源中抽取满足所述查询条件的基准数据和比对数据,并建立所述基准数据和所述比对数据的映射关系;数据比对模块,用于对相映射的每组基准数据和比对数据进行比对,生成包含所述比对数据与对应的基准数据的差异标记的比对结果。

本发明的又一个方面提供一种电子设备,包括:一处理器;一存储器,所述存储器中存储有可执行指令;其中,所述可执行指令被所述处理器执行时,实现上述任意实施例所述的数据比对方法。

本发明的再一个方面提供一种计算机可读的存储介质,用于存储程序,所述程序被执行时,实现上述任意实施例所述的数据比对方法。

本发明与现有技术相比的有益效果至少包括:

本发明能够实现海量数据的差异化比对;各项比对信息均可根据需要配置,实现灵活取数,通过分页抽取模式极大地降低数据抽取时对服务器的压力,提高数据比对验证的效率和系统的稳定性;并通过差异标记,实现比对结果的高性能查询并便于可视化展示。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明实施例中数据比对方法的步骤示意图;

图2示出本发明实施例中主任务配置界面的示意图;

图3示出本发明实施例中子任务配置界面的示意图;

图4示出本发明实施例中比对结果展示界面的示意图;

图5示出本发明实施例中数据比对方法的各项服务的调用示意图;

图6示出本发明实施例中数据比对系统的模块示意图;

图7示出本发明实施例中电子设备的结构示意图;

图8示出本发明实施例中计算机可读的存储介质的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使本发明全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

此外,附图中所示的流程仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤可以分解,有的步骤可以合并或部分合并,且实际执行的顺序有可能根据实际情况改变。需要说明的是,在不冲突的情况下,本发明的实施例及不同实施例中的特征可以相互组合。

本发明的数据比对方法,能够实现大批量结构化数据的差异化比对,根据配置进行取数、比对和结果展示,可持续化地对不同来源的数据进行比对验证,存储比对结果并进行差异化展示。

图1示出实施例中数据比对方法的主要步骤,参照图1所示,本实施例中数据比对方法包括步骤:S110任务获取步骤:获取比对任务的比对信息,包括基准数据源和比对数据源、待比对数据的查询条件和分页抽取模式;S120数据抽取步骤:根据分页抽取模式,分别自基准数据源和比对数据源中抽取满足查询条件的基准数据和比对数据,并建立基准数据和比对数据的映射关系;S130数据比对步骤:对相映射的每组基准数据和比对数据进行比对,生成包含比对数据与对应的基准数据的差异标记的比对结果。

上述的数据比对方法能够实现海量数据的差异化比对;各项比对信息均可根据需要配置,实现灵活取数,通过分页抽取模式极大地降低数据抽取时对服务器的压力,提高数据比对验证的效率和系统的稳定性;并通过差异标记,实现比对结果的高性能查询并便于可视化展示。

在一个实施例中,任务获取步骤之前,还包括任务生成步骤,任务生成步骤包括:接收主任务配置的比对信息,生成消息队列,主任务配置的比对信息包括基准数据源、进行数据抽取的取数条件和分页抽取模式;接收基于主任务的多个子任务配置的比对信息,生成消息队列的多个消费者,每个子任务配置的比对信息包括比对数据源、基于取数条件的查询条件、及数据比对模式;任务获取步骤、数据抽取步骤和数据比对步骤分别由每个消费者执行,多个消费者并行消费消息队列的多条消息,每条消息包括主任务的比对信息和对应的子任务的比对信息。

图2示出实施例中主任务配置界面200,参照图2所示,在主任务配置界面200,可进行主任务,即驱动任务的配置,包括配置基准数据源(数据名称)210、取数条件220和分页抽取模式(是否分页)230。其中,基准数据源210可选择的数据类型为SQLSERVER/MYSQL/ES;取数条件220可以键值方式存储,在取数条件220中,以待比对数据的数据特征为键,以待比对数据的数据范围为值,从而能够确定待比对数据的数据范围;分页抽取模式230可以时间截止条件或数量截止条件作为结束条件,实现自动化地分页取数。在主任务配置界面200,还可配置指定接收人,以实现主任务执行完毕将相关比对结果推送至配置的指定接收人。另外,还可根据需要,配置取数环境、取数路径等信息,配置完成后点击保存,即生成主任务配置的比对信息。

表1示出主任务配置信息表,具体如下:

图3示出实施例中子任务配置界面300,结合图2和图3所示,在子任务配置界面300,可进行主任务下的子任务的配置,包括配置比对数据源(数据名称)310、查询条件320和数据比对模式(是否严格模式)330。子任务可用于实现比对数据源310与基准数据源210之间的数据比对。查询条件320可以键值方式存储,查询条件320中,以满足数据特征的变量名为键,以满足数据范围的变量值为值,从而能够确定待比对数据的数据内容。在子任务中,将主任务配置的取数条件220用变量代替为查询条件320,根据符合主任务的数据特征和数据范围的变量名和值变成可直接查询的入参条件。严格模式和非严格模式下的忽略条件340,即忽略字段有所不同,忽略条件340具体由系统根据是否严格模式自动生成,以避免两个数据源之间的固有差异干扰数据比对。

在子任务配置界面300,还可配置基准数据与比对数据的映射关系。当基准数据的基准字段和比对数据的比对字段均具有具体的字段名称时,例如基准数据和比对数据来自数据库DB,可以字段名称作为映射,每次取字段名称相同的一组基准字段和比对字段进行比对;当基准数据和比对数据来自接口API/数据库ES,基准字段和比对字段之间无法通过字段名称进行映射,可以按照基准字段和比对字段各自在数据表中的顺序进行映射,每次取基准数据表和比对数据表中的相同顺序的一组基准字段和比对字段进行比对。其中,基准字段和比对字段是指滤除了忽略字段后的目标字段。从而,能够实现基准字段和比对字段多对多的情况下,指定多个参数名作为联合主键唯一确定一条记录进行多对多的情况下的映射对比。

表2和表3示出子任务配置信息表,具体如下:

上述子任务配置信息表中,子任务方法是指,当待比对数据的结构复杂,需要经过特殊的转换、计算等,可调用其他的执行方法进行比对。

进一步地,还可进行数据源的通用配置,表4示出数据逻辑配置信息表,具体如下:

根据配置的主任务和子任务,能够通过消费消息的方式,对子任务获取到的数据结合配置进行比对。数据比对时,自动忽略相关字段,对目标字段进行数据比对。具体来说,数据比对步骤包括:根据数据比对模式,过滤相映射的每组基准数据和比对数据中的忽略字段,数据比对模式包括严格模式和非严格模式;对每组基准数据和比对数据中保留的目标字段进行比对,并当比对数据的目标字段与对应的基准数据的目标字段存在差异时根据差异类型进行差异标记;生成包含基准数据、比对数据、及比对数据与对应的基准数据的差异标记的比对结果。每执行完一子任务,更新主任务状态和未执行子任务数量。

数据比对步骤之后,还包括可视化展示步骤,可视化展示步骤包括:根据比对结果,生成可视化报告,展示至对应页面。

图4示出实施例中比对结果展示界面400,参照图4所示,比对结果展示界面400可根据查询的比对结果数据,进行可视化展示,对于与基准数据相比存在差异的比对数据,可根据差异类型采用不同颜色/不同图案等差异标记410进行区分,直观地进行差异展示。

表5示出比对结果汇总信息表,具体如下:

上述的比对结果汇总信息表中,任务ID是指主任务下的一组数据比对任务。

经比对的源数据和比对结果数据存储于Elasticsearch中,具体如下:

进一步地,数据比对方法的各项服务,均可实现API化,以方便调用。图5示出实施例中数据比对方法的各项服务的调用示意图,参照图5所示,用户(如测试人员/开发人员)可根据需要,调用主任务服务510、子任务服务520、源数据查询服务530、比对服务540、比对结果查询服务550中任意服务,实现比对信息的配置、取数、比对、结果查询等。其中,主任务服务510可用于主任务配置、自动分页设置、比对任务生成、以及声称消息队列。子任务服务520可用于子任务配置、消费消息、以及查询子任务获取基准数据和比对数据。源数据查询服务530可用于DB数据库、ES数据库、API接口等的源数据查询。比对服务540可用于比对数据比对并标记差异,以及比对结果存储。比对结果查询服务550可用于查询比对结果,以及可视化展示。

综上,本发明的数据比对方法,采用分页抽取模式自数据源中抽取待比对数据,能够极大地降低源数据抽取时对服务器的压力;采用消息队列,消费端接收消息根据消息中的键值作为入参变量分别从基准数据源和比对数据源中抽取数据进行对比,消息队列的运用实现分布式比对验证,极大地提高比对验证的效率和系统的稳定性,使得海量数据比对成为现实;还通过严格模式与非严格模式的切换,可配置化地对特定字段进行忽略,解决实际系统中正常差异的干扰;通过差异标注,在差异结果中标注比对数据的具体差异类型或是被忽略;比对结果自动格式化处理存储到ES,使得百万级大批量数据的比对存储成为可能,并实现高性能查询,同时还通过可视化的报告展示结果筛选提高验证效率。

本发明实施例还提供一种数据比对系统,可用于实现上述任意实施例描述的数据比对方法。上述任意实施例描述的数据比对方法的特征和原理均可应用至下面的数据比对系统实施例。在下面的数据比对系统实施例中,对已经阐明的关于数据比对的特征和原理不再重复说明。

图6示出实施例中数据比对系统600的主要模块,参照图6所示,本实施例中数据比对系统600包括:任务获取模块610,用于获取比对任务的比对信息,包括基准数据源和比对数据源、待比对数据的查询条件和分页抽取模式;数据抽取模块620,用于根据分页抽取模式,分别自基准数据源和比对数据源中抽取满足查询条件的基准数据和比对数据,并建立基准数据和比对数据的映射关系;数据比对模块630,用于对相映射的每组基准数据和比对数据进行比对,生成包含比对数据与对应的基准数据的差异标记的比对结果。

进一步地,数据比对系统600还可包括实现上述各数据比对方法实施例的其他流程步骤的模块,各个模块的具体原理可参照上述各数据比对方法实施例的描述,此处不再重复说明。

如上所述,本发明的数据比对系统,能够实现海量数据的差异化比对;各项比对信息均可根据需要配置,实现灵活取数,通过分页抽取模式极大地降低数据抽取时对服务器的压力,通过消息队列实现分布式比对验证,提高数据比对验证的效率和系统的稳定性;并通过差异标记,实现比对结果的高性能查询并便于可视化展示。

本发明实施例还提供一种电子设备,包括处理器和存储器,存储器中存储有可执行指令,可执行指令被处理器执行时,实现上述任意实施例描述的数据比对方法。

如上所述,本发明的电子设备能够实现海量数据的差异化比对;各项比对信息均可根据需要配置,实现灵活取数,通过分页抽取模式极大地降低数据抽取时对服务器的压力,通过消息队列实现分布式比对验证,提高数据比对验证的效率和系统的稳定性;并通过差异标记,实现比对结果的高性能查询并便于可视化展示。

图7是本发明实施例中电子设备的结构示意图,应当理解的是,图7仅仅是示意性地示出各个模块,这些模块可以是虚拟的软件模块或实际的硬件模块,这些模块的合并、拆分及其余模块的增加都在本发明的保护范围之内。

如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同平台组件(包括存储单元720和处理单元710)的总线730、显示单元740等。

其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行上述任意实施例描述的数据比对方法的步骤。例如,处理单元710可以执行如图1所示的步骤。

存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。

存储单元720还可以包括具有一个或多个程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备700也可以与一个或多个外部设备800通信,外部设备800可以是键盘、指向设备、蓝牙设备等设备中的一种或多种。这些外部设备800使得用户能与该电子设备700进行交互通信。电子设备700也能与一个或多个其它计算设备进行通信,所示计算机设备包括路由器、调制解调器。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。

本发明实施例还提供一种计算机可读的存储介质,用于存储程序,程序被执行时实现上述任意实施例描述的数据比对方法。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行上述任意实施例描述的数据比对方法。

如上所述,本发明的计算机可读的存储介质能够实现海量数据的差异化比对;各项比对信息均可根据需要配置,实现灵活取数,通过分页抽取模式极大地降低数据抽取时对服务器的压力,通过消息队列实现分布式比对验证,提高数据比对验证的效率和系统的稳定性;并通过差异标记,实现比对结果的高性能查询并便于可视化展示。

图8是本发明的计算机可读的存储介质的结构示意图。参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读的存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 数据比对方法、系统、电子设备和存储介质
  • 一种跨系统数据比对方法、装置、电子设备及存储介质
技术分类

06120112941732