一种跨数据源的数据处理方法及装置与流程

文档序号:11627728阅读:138来源:国知局
一种跨数据源的数据处理方法及装置与流程
本申请涉及数据库
技术领域
,尤其涉及一种跨数据源的数据处理方法及装置。
背景技术
:对来自不同数据源的数据进行加工处理是数据库处理中经常涉及的问题。目前,解决此问题的常规方案是将不同数据源的数据冗余到同一数据源,然后在同一数据源中执行跨表操作。比如,对于两个不在同一数据库上的表a和表b,当需要同时针对这两个表进行数据处理时,常规办法是将表b的所有数据都添加到表a所在的数据库中,或者将表a的所有数据都添加到表b所在的数据库中,最终使得表a与表b位于同一数据库中,然后,在该同一数据库中执行跨表操作。上述方式实现简单,但是却需要耗费大量的存储资源,尤其是在大数据处理中,由于每一张数据表的容量都非常大,这种方式无疑会造成存储资源的巨大浪费。另外,在将一个数据源的数据表添加到另一个数据源后,还需要在该另一个数据源中执行跨数据表的操作,数据处理效率较低。技术实现要素:本申请实施例提供一种跨数据源的数据处理方法及装置,用以解决现有的数据处理方式浪费存储资源,数据处理效率较低的问题。本申请实施例提供一种跨数据源的数据处理方法,包括:在第一数据源中查询目标数据集合;针对所述目标数据集合中的每一条第一数据记录,根据该条第一数据记录 中的匹配参数信息,查询对应该条第一数据记录的第二数据记录,该条第二数据记录中包含所述匹配参数信息;将所述目标数据集合中的每一条第一数据记录和对应该条第一数据记录的第二数据记录进行合并,得到合并后的数据集合;其中,合并后的数据集合中包括每一条第一数据记录和与该条第一数据记录对应的第二数据记录之间的相同且不重复的参数信息,以及每一条第一数据记录和该条第一数据记录对应的第二数据记录之间不相同的参数信息。可选地,针对所述目标数据集合中的每一条第一数据记录,根据该条第一数据记录中的匹配参数信息,查询对应该条第一数据记录的第二数据记录,包括:根据所述目标数据集合中的每一条第一数据记录中的匹配参数信息,生成针对第二数据源的查询语言;基于生成的所述针对第二数据源的查询语言,查询对应所述目标数据集合中的每一条第一数据记录的第二数据记录。可选地,根据所述目标数据集合中的每一条第一数据记录中的匹配参数信息,生成针对第二数据源的查询语言,包括:将所述目标数据集合中各条第一数据记录中的匹配参数信息整体转义为针对第二数据源的结构化查询语言sql。可选地,基于生成的所述针对第二数据源的查询语言,查询对应所述目标数据集合中的每一条第一数据记录的第二数据记录,包括:将生成的针对所述第二数据源的sql作为在所述第二数据源中进行查询的限制条件,查询对应所述每一条第一数据记录的第二数据记录。可选地,将所述目标数据集合中的每一条第一数据记录和对应该条第一数据记录的第二数据记录进行合并,包括:针对每一条第一数据记录,在对应该条第一数据记录的第二数据记录中,提取除该条第一数据记录中的匹配参数信息之外的参数信息;将提取的参数信息息添加在该条第一数据记录中。本申请实施例提供一种跨数据源的数据处理装置,包括:第一查询模块,用于在第一数据源中查询目标数据集合;第二查询模块,用于针对所述目标数据集合中的每一条第一数据记录,根据该条第一数据记录中的匹配参数信息,查询对应该条第一数据记录的第二数据记录,该条第二数据记录中包含所述匹配参数信息;合并模块,用于将所述目标数据集合中的每一条第一数据记录和对应该条第一数据记录的第二数据记录进行合并,得到合并后的数据集合;其中,合并后的数据集合中包括每一条第一数据记录和与该条第一数据记录对应的第二数据记录之间的相同且不重复的参数信息,以及每一条第一数据记录和该条第一数据记录对应的第二数据记录之间不相同的参数信息。本申请实施例在需要将不同数据源中的数据进行合并处理时,针对第一数据源中待合并的目标数据集合中的每一条第一数据记录,查询第二数据源中对应该条第一数据记录的第二数据记录,这样,在将每一条第一数据记录和对应该条第一数据记录的第二数据记录进行合并后,可以得到每一条第一数据记录和与该条第一数据记录对应的第二数据记录之间的相同且不重复的参数信息,以及每一条第一数据记录和该条第一数据记录对应的第二数据记录之间不相同的参数信息,如此便实现了不同数据源数据之间的不冗余合并。并且,由于将不同数据源的数据合并在了一起,也即合并在同一张表中,从而在后续操作中可以针对这一张表进行操作,避免了执行跨数据表的操作,提高了数据处理效率。附图说明图1为本申请实施例提供的跨数据源的数据处理方法流程图;图2为本申请实施例提供的跨数据源的数据处理装置结构示意图。具体实施方式本申请实施例提供的跨数据源的数据处理方案可以应用在数据处理平台中,实现对跨数据源的数据的统一查询及处理。下面结合说明书附图对本申请实施例作进一步详细描述。如图1所示,为本申请实施例提供的跨数据源的数据处理方法流程图,包括以下步骤:s101:在第一数据源中查询目标数据集合。在具体实施中,数据处理平台在确定需要对第一数据源和第二数据源中的数据记录进行合并查询或处理时,随机选择其中一个数据源作为前置数据源来查询目标数据集合,这里选择第一数据源作为前置数据源来查询目标数据集合。这里的第一数据源和第二数据源可以指不同的数据库,比如分别为mysql数据库和garuda数据库,mysql数据库为首先查询的前置数据库,对garuda数据库的查询依赖于对mysql数据库的查询结果。在具体实施中,可以基于待查询的目标数据集合的标识信息,从在第一数据源中查询目标数据集合,这里的目标数据集合具体可以是一张数据表,数据表的标识信息可以指该数据表的名称等任何可以唯一标识该数据表的信息。s102:针对所述目标数据集合中的每一条第一数据记录,根据该条第一数据记录中的匹配参数信息,查询对应该条第一数据记录的第二数据记录,该条第二数据记录中包含所述匹配参数信息。在具体实施中,针对所述目标数据集合中的每一条第一数据记录,根据该条第一数据记录中的匹配参数信息,在第二数据源中查询具有该匹配参数信息的第二数据记录。在实际执行时,可以根据所述目标数据集合中的每一条第一数据记录中的匹配参数信息,生成针对第二数据源的查询语言;基于生成的所述针对第二数据源的查询语言,查询对应所述目标数据集合中的每一条第一数据记录的第二 数据记录。具体地,将所述目标数据集合中各条第一数据记录中的匹配参数信息整体转义为针对第二数据源的结构化查询语言(structuredquerylanguage,sql)。将生成的针对所述第二数据源的sql作为在所述第二数据源中进行查询的限制条件,查询对应所述每一条第一数据记录的第二数据记录。比如,查询到的目标数据集合为下述表一:表一针对表一中的两条第一数据记录(bus_line:bu1、data_version:2015-10-01、store_code:store1、predict_sell_num:100)和(bus_line:bu1、data_version:2015-10-01、store_code:store2、predict_sell_num:200),将这两条第一数据记录中的匹配参数信息(bus_line:bu1、data_version:2015-10-01、store_code:store1)和(bus_line:bu1、data_version:2015-10-01、store_code:store2)转义为针对第二数据源的sql:(bus_line='bu1'anddata_version='2015-10-01'andstore_code='store1'orbus_line='bu1'anddata_version='2015-10-01'andstore_code='store2')将该sql作为限制条件塞入查询第二数据源时的where条件中,执行对第二数据源的查询,查询到分别对应上述两条第一数据记录的第二数据记录为:(bus_line:bu1、data_version:2015-10-01、store_code:store1、历史销售量history_sell_num:150)和(bus_line:bu1、data_version:2015-10-01、store_code:store2、history_sell_num:260)。s103:将所述目标数据集合中的每一条第一数据记录和对应该条第一数据 记录的第二数据记录进行合并,得到合并后的数据集合;其中,合并后的数据集合中包括每一条第一数据记录和与该条第一数据记录对应的第二数据记录之间的相同且不重复的参数信息,以及每一条第一数据记录和该条第一数据记录对应的第二数据记录之间不相同的参数信息。在具体实施中,针对每一条第一数据记录,可以在对应该条第一数据记录的第二数据记录中,提取除该条第一数据记录中的匹配参数信息之外的参数信息;将提取的参数信息息添加在该条第一数据记录中。比如,在第二数据记录(bus_line:bu1、data_version:2015-10-01、store_code:store1、history_sell_num:150)和(bus_line:bu1、data_version:2015-10-01、store_codestore2、history_sell_num:260)中提取除匹配参数信息(bus_line:bu1、data_version:2015-10-01、store_code:store1)和(bus_line:bu1、data_version:2015-10-01、store_code:store2)之外的其它参数信息,也即分别为history_sell_num:150和history_sell_num:260,将其添加在对应的第一数据记录中,则两条第一数据记录变为:(bus_line:bu1、data_version:2015-10-01、store_code:store1、predict_sell_num:100、history_sell_num:150)和(bus_line:bu1、data_version:2015-10-01、store_code:store2、predict_sell_num:200、history_sell_num:260)。则合并后的数据集合表二即为:bus_linedata_versionstore_codepredict_sell_numhistory_sell_numbu12015-10-01store1100150bu12015-10-01store2200260表二在得到合并后的数据集合后,数据处理平台可以将该合并后的数据集合显示给用户,还可以执行用户针对合并后的数据集合的后续操作。该数据处理方法的执行可概括为:1)抽取节点依赖关系、2)前置节点执行、3)生成前置节点对后置节点的依赖的sql追加至后置节点、4)驱动后置节点执行、5)前后节点合并这五个步骤。其中,1)抽取节点依赖关系,也即:数据 处理平台在确定需要对第一数据源和第二数据源中的数据记录进行合并查询或处理时,随机选择其中一个数据源作为前置数据源,另外一个数据源则作为依赖该前置数据源的后置数据源。2)前置节点执行,也即:在第一数据源中查询目标数据集合。3)生成前置节点对后置节点的依赖的sql追加至后置节点,也即:根据所述目标数据集合中的每一条第一数据记录中的匹配参数信息,生成针对第二数据源的查询语言。4)驱动后置节点执行,也即:基于生成的所述针对第二数据源的查询语言,查询对应所述目标数据集合中的每一条第一数据记录的第二数据记录。5)前后节点合并,也即:将所述目标数据集合中的每一条第一数据记录和对应该条第一数据记录的第二数据记录进行合并。上述实施例将两个不同数据源中的数据进行合并时,并不是将一个数据源中的数据记录直接冗余到另一个数据源中,而是将两个数据源中的数据记录进行逐条匹配,这样,针对匹配上的两条数据记录,可以只保留一份两者之间共有的数据(比如上述实施例中,针对两个数据源共有的业务线、日期和仓库编码,可以只保留一份),分别记录两者之间不同的数据(比如保留第一数据源中的预计销售量和第二数据源中的历史销售量),如此,便实现了不同数据源的数据之间的不冗余合并。另外,这样合并后的数据可以位于同一张数据表(如表二所示)中,在后续操作中无需再执行跨数据表的操作,从而可以提高数据处理效率。基于同一发明构思,本申请实施例中还提供了一种与跨数据源的数据处理方法对应的跨数据源的数据处理装置,由于该装置解决问题的原理与本申请实施例跨数据源的数据处理方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。如图2所示,为本申请实施例提供的跨数据源的数据处理装置结构示意图,包括:第一查询模块21,用于在第一数据源中查询目标数据集合;第二查询模块22,用于针对所述目标数据集合中的每一条第一数据记录, 根据该条第一数据记录中的匹配参数信息,查询对应该条第一数据记录的第二数据记录,该条第二数据记录中包含所述匹配参数信息;合并模块23,用于将所述目标数据集合中的每一条第一数据记录和对应该条第一数据记录的第二数据记录进行合并,得到合并后的数据集合;其中,合并后的数据集合中包括每一条第一数据记录和与该条第一数据记录对应的第二数据记录之间的相同且不重复的参数信息,以及每一条第一数据记录和该条第一数据记录对应的第二数据记录之间不相同的参数信息。可选地,所述第二查询模块22具体用于:根据所述目标数据集合中的每一条第一数据记录中的匹配参数信息,生成针对第二数据源的查询语言;基于生成的所述针对第二数据源的查询语言,查询对应所述目标数据集合中的每一条第一数据记录的第二数据记录。可选地,所述第二查询模块22具体用于:将所述目标数据集合中各条第一数据记录中的匹配参数信息整体转义为针对第二数据源的结构化查询语言sql。可选地,所述第二查询模块22具体用于:将生成的针对所述第二数据源的sql作为在所述第二数据源中进行查询的限制条件,查询对应所述每一条第一数据记录的第二数据记录。可选地,所述合并模块23具体用于:针对每一条第一数据记录,在对应该条第一数据记录的第二数据记录中,提取除该条第一数据记录中的匹配参数信息之外的参数信息;将提取的参数信息息添加在该条第一数据记录中。本申请实施例提供的跨数据源的数据处理方法和装置,将两个不同数据源中的数据进行合并时,并不是将一个数据源中的数据记录直接冗余到另一个数据源中,而是将两个数据源中的数据记录进行逐条匹配,这样,针对匹配上的两条数据记录,可以只保留一份两者之间共有的数据(比如上述实施例中,针对两个数据源共有的业务线、日期和仓库编码,可以只保留一份),分别记录 两者之间不同的数据(比如保留第一数据源中的预计销售量和第二数据源中的历史销售量),如此,便实现了不同数据源的数据之间的不冗余合并。另外,这样合并后的数据可以位于同一张数据表(如表二所示)中,在后续操作中无需再执行跨数据表的操作,从而可以提高数据处理效率。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要 求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1