多源数据聚合方法及系统与流程

文档序号:11519751阅读:318来源:国知局
多源数据聚合方法及系统与流程

本发明属于数据处理领域,尤其涉及多源数据聚合方法及系统。



背景技术:

在金融业中,一笔交易(如atm跨行取款业务)的完成需要经过多个系统(如atmp系统、渠道系统、银联前置系统、银联处理中心及本行核心系统等),各个系统分别记录交易流水。银行对账系统从各个业务系统收集交易流水,然后根据交易中的关联域,将来自同一笔交易的流水进行匹配,最终还原出完整的交易链路,从而识别出差错交易。

对账流程主要分为收集数据、触发对账、匹配流水及识别差错等步骤。匹配流水是对账流程中的核心步骤,决定了整个对账系统的处理性能。匹配流水是指通过相邻两系统间的关联域(如s1与s2之间的关联域是字段a和字段b的组合),将同一笔交易在不同系统中记录的流水聚合到一起。

在传统方案中,聚合涉及不同系统数据库的交易流水通常采取以下步骤:

1)将所有系统数据库(如数据库s1、s2、s3、s4、s5)的流水分别导入对应的交易流水表;2)在数据库s1流水表上,打开游标;3)获取s1流水表中一条待匹配的流水记录r1;4)从r1中提取关联域a+b,以此为条件从s2流水表中查询对应的流水记录r2;5)从r2中提取关联域c,以此为条件从s3流水表中查询对应的流水记录r3;6)依此方式,找到所有系统的交易流水,然后进行差错识别;7)重复步骤3-6,直到s1流水表中无更多待匹配的记录。

现有的聚合涉及不同系统数据库的交易流水的操作,只是简单得依次对各个系统数据库中的数据逐条进行搜索和聚合,这样会导致在处理复杂交易时,聚合数据的时间过长。并且当系统数据库之间的关联方式变化时需要修改代码,因而影响整个系统的灵活性。除此之外,数据聚合程序与业务处理程序绑定在一起也导致了现有聚合交易流水方法的复用性差。



技术实现要素:

有鉴于此,本发明提供了多源数据聚合方法及系统,以解决现有的方法在聚合不同系统数据库的交易流水时,遇到的聚合处理时间过长、处理性能较低的问题。

第一方面,提供了一种多源数据聚合方法,包括:获取至少两个原始数据源,每一所述原始数据源包括数据源名称和至少一个关联域;

基于所述原始数据源,获取原始策略列表;所述原始策略列表包括至少一个原始策略,每一原始策略包括左侧数据源和右侧数据源,所述左侧数据源和所述右侧数据源包括至少一个相同的关联域;

对所述原始策略列表中的所述原始策略进行排序,形成数据源间策略列表;

对所述原始策略列表中的关联域进行聚合,生成数据源内聚合列表;所述数据源内聚合列表包括至少两个目标数据源,所述目标数据源包括数据源名称和关联域集合;

依次获取所述数据源间策略列表中的每一所述原始策略,根据所述数据源内聚合列表确定与所述原始策略相对应的左侧目标数据源和右侧目标数据源;

将与所述左侧目标数据源相对应的数据作为第一数据组,获取与所述右侧数据源相对应的数据作为第二数据组;将所述第一数据组和所述第二数据组作为与所述原始策略相对应的聚合结果。

第二方面,提供了一种多源数据聚合装置,包括:数据接收模块,用于获取至少两个原始数据源,每一所述原始数据源包括数据源名称和至少一个关联域;

策略接收模块,用于基于所述原始数据源,获取原始策略列表;所述原始策略列表包括至少一个原始策略,每一原始策略包括左侧数据源和右侧数据源,所述左侧数据源和所述右侧数据源包括至少一个相同的关联域;

第一列表生成模块,用于对所述原始策略列表中的所述原始策略进行排序,形成数据源间策略列表;

第二列表生成模块,用于对所述原始策略列表中的关联域进行聚合,生成数据源内聚合列表;所述数据源内聚合列表包括至少两个目标数据源,所述目标数据源包括数据源名称和关联域集合;

策略提取模块,用于依次获取所述数据源间策略列表中的每一所述原始策略,根据所述数据源内聚合列表确定与所述原始策略相对应的左侧目标数据源和右侧目标数据源;

聚合输出模块,用于将与所述左侧目标数据源相对应的数据作为第一数据组,获取与所述右侧数据源相对应的数据作为第二数据组;将所述第一数据组和所述第二数据组作为与所述原始策略相对应的聚合结果。

在本发明实施例中,通过提供一种多源数据聚合方法及系统,在对多源数据进行聚合过程中,通过对数据源间策略列表中有序的每一原始策略,在数据源内策略列表中确定左侧目标数据源和右侧目标数据源,并基于左侧目标数据源和右侧目标数据源确定聚合结果。该多源数据聚合方法及系统,在多源数据聚合过程中,所需聚合时间较短,处理性能较高。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的多源数据聚合方法的实现流程图;

图2是本发明实施例提供的多源数据聚合方法s30的具体实现流程图;

图3是本发明实施例提供的多源数据聚合方法s40的具体实现流程图;

图4是本发明实施例提供的多源数据聚合方法s60的具体实现流程图;

图5是本发明实施例提供的多源数据聚合系统的结构框图;

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

图1示出了本发明实施例提供的多源数据聚合方法的实现流程。如图1所示,该多源数据聚合方法包括:

步骤s10:获取至少两个原始数据源,每一原始数据源包括数据源名称和至少一个关联域。

在现有的金融系统中,一笔交易往往需要经过很多业务系统处理,每个业务系统有自己独立的数据库,数据库中存储着经所属的业务系统处理的数据。在本发明实施例中,我们称业务系统的数据库为原始数据源,每个原始数据源有区别于其他原始数据源的唯一的数据源名称。

由于本发明实施例采用的是关系型数据库,因此原始数据源可以通过关联域联系在一起。

每个原始数据源包括数据源名称和至少一个关联域,为方便介绍,在下文中将每个数据源以s1(a,b)的形式描述。s1(a,b)表示一个数据源的数据源名称是s1,且与另一个数据源连接在一起的关联域是a和b。值得注意的是,同一个原始数据源可能与不同的其他的原始数据源关联,而且由于关联的原始数据源的不同,同一个原始数据源可能出现不同的关联域。例如当原始数据源s1与s2关联时,s1的关联域可能是a和b,而当原始数据源s1与s3关联时,s1的关联域可能是a和c。

具体地,在本发明实施例中一个atm的跨行取款业务的完成就会涉及多个业务系统如:atmp系统、渠道系统、银联前置系统、银联处理中心及本行核心系统等,各个系统业务都有属于自己的数据库,这些数据库分别记录各自处理的交易数据。

在本发明实施例中,银行通过对账系统从各个原始数据源中收集交易数据。例如:提取渠道系统的数据库作为一个原始数据源并赋予数据源名称为s1,提取银联前置系统的数据库作为另一个原始数据源并赋予数据源名称为s2。若原始数据源s1和原始数据源s2是通过流水号以及时间联系在一起,那么流水号和时间就是s1和s2的关联域。值得注意的是,关联域是一类数据的数据类型,每一个关联域在各自的原始数据源中有对应的数据。

步骤s20:基于原始数据源,获取原始策略列表;原始策略列表包括至少一个原始策略,每一原始策略包括左侧数据源和右侧数据源,左侧数据源和右侧数据源包括至少一个相同的关联域。

在本发明实施例中,由于金融系统采用的是关系型数据库,因此各个原始数据源在构建之初已经存在预设的原始策略通过关联域将两两原始数据源联系在一起。这些反应两两原始数据源关系的原始策略被存放在原始策略列表中。原始策略列表包括至少一个原始策略。

上文提到,每个原始数据源以s1(流水,时间)的形式描述。s1(流水,时间)表示一个数据源的数据源名称是s1,且与另一个数据源连接在一起的关联域是流水和时间。

在本发明实施例中,原始策略列表中的每条原始策略描述两个原始数据源以何种关联域联系在一起。例如:一个原始策略可以写成s1(流水,时间)=s2(流水,时间)的形式,这个原始策略表示:原始数据源s1与原始数据域s2通过流水和时间这两个关联域联系在一起。在这个例子中原始数据源s1即是原始策略的左侧数据源,原始数据源s2即是原始策略的右侧数据源。

例如一个原始策略列表可以为:

s1(流水,时间)=s2(流水,时间);

s3(字段a)=s2(字段a);

s4(字段d)=s3(字段d);

s5(字段e)=s2(字段e)。

由于下文还将提到此原始策略列表,因此将此原始策略列表命名为原始策略列表y。

步骤s30:对原始策略列表中的原始策略进行排序,形成数据源间策略列表。

图2示出了本发明实施例提供的多源数据聚合方法中s30的具体实现流程,步骤s30具体包括如下步骤:

步骤s301:从原始数据源中确定起始数据源。

在原始数据源中随机选择一个原始数据源作为起始数据源。例如在上文提到的原始策略列表y中可以选择原始数据源s1作为起始数据源。

步骤s302:从原始策略列表中确定与起始数据源相对应的原始策略作为第一策略;第一策略的左侧数据源与起始数据源的数据源名称相同。

进一步地,在选择原始数据源s1作为起始数据源后,在原始策略列表y中搜索包含起始数据源s1的策略,因此在上述原始策略列表中搜索出s1(流水,时间)=s2(流水,时间)作为第一策略。

进一步地,由于起始数据源为原始数据源s1,因此需将原始数据源s1放在第一策略的左侧,作为第一策略的左侧数据源。

步骤s303:从原始策略列表中广度搜索与第一策略的右侧数据源相对应的原始策略作为第二策略;第二策略的左侧数据源与第一策略的右侧数据源的数据源名称相同。

进一步地,在从原始策略列表y中选择s1(流水,时间)=s2(流水,时间)作为第一策略后,在原始策略列表y中广度搜索包含第一策略的右侧数据源s2的原始策略作为第二策略。在原始策略列表y中s3(字段a)=s2(字段a)以及s5(字段e)=s2(字段e)符合条件。

进一步地,在找出符合第二策略条件的原始策略之后,由于第二策略的左侧数据源需要与第一策略的右侧数据源的数据源名称相同,因此需将原始数据源s2调整为第二策略的左侧数据源,最终第二策略被调整为s2(字段a)=s3(字段a);s2(字段e)=s5(字段e)。

步骤s304:将第二策略的右侧数据源更新为起始数据源,遍历原始策略列表,基于依序形成的第一策略和第二策略形成数据源间策略列表。

由于本发明实施例采用的是广度搜索,因此若确定s1(流水,时间)=s2(流水,时间)为第一策略以及s2(字段a)=s3(字段a);s2(字段e)=s5(字段e)为第二策略后,由于s2(字段a)=s3(字段a)和s2(字段e)=s5(字段e)在广度搜索中属于同一层,所以s2(字段a)=s3(字段a)和s2(字段e)=s5(字段e)的优先级是相同的,因此可以任意选择原始数据源s3或者s5作为新的起始数据源。

进一步地,如果选择原始数据源s3为新的起始数据源,则在原始策略列表中的未被搜索出的原始策略中搜索出包含原始数据源s3的原始策略。在原始策略列表y中选择s4(字段d)=s3(字段d)作为第一策略,之后选择原始数据源s5为新的起始数据源,在原始策略列表中的未被搜索出的原始策略中搜索出包含原始数据源s5的原始策略,在这次搜索中,原始策略列表y中没有符合条件的原始策略。因此只有s4(字段d)=s3(字段d)符合条件可以作为第一策略。

进一步地,由于起始数据源为原始数据源s3,因此需将原始数据源s1放在第一策略的左侧,作为第一策略的左侧数据源,因此最终的第一策略被调整为s3(字段d)=s4(字段d)。

进一步地,在原始策略列表y中广度搜索包含第一策略的右侧数据源s4的原始策略作为第二策略。在原始策略列表y中没有未被搜索出的原始策略符合条件,因此整个搜索过程结束。

进一步地,基于依序形成的第一策略和第二策略形成数据源间策略列表。在本实施例中,根据原始策略列表y以及被搜索出的先后顺序,得到的数据源间策略列表为s1(流水,时间)=s2(流水,时间),s2(字段a)=s3(字段a),s2(字段e)=s5(字段e),s3(字段d)=s4(字段d)。

步骤s40:对原始策略列表中的关联域进行聚合,生成数据源内聚合列表;数据源内聚合列表包括至少两个目标数据源,目标数据源包括数据源名称和关联域集合。

图3示出了本发明实施例提供的多源数据聚合方法s04的具体实现流程,步骤s40具体包括:

步骤s401:对所有原始策略列表中的所有原始策略的左侧数据源和右侧数据源进行聚合处理,将基于同一数据源名称的所有左侧数据源和右侧数据源聚合为目标数据源。

在本发明实施例中,由于原始策略列表y为s1(流水,时间)=s2(流水,时间);s3(字段a)=s2(字段a);s4(字段d)=s3(字段d);s5(字段e)=s2(字段e)。将基于同一数据源名称的所有左侧数据源和右侧数据源聚合为目标数据源。例如:将基于s1的所有左侧数据源和右侧数据源聚合为目标数据源s1:(流水,时间);将基于s2的所有左侧数据源和右侧数据源聚合为目标数据源s2:(流水,时间,字段a,字段e);将基于s3的所有左侧数据源和右侧数据源聚合为目标数据源s3:(字段a,字段d);将基于s4的所有左侧数据源和右侧数据源聚合为目标数据源s4:(字段d);将基于s5的所有左侧数据源和右侧数据源聚合为目标数据源s5:(字段e)。

在本发明实施例中,目标数据源包括数据源名称和关联域集合。

步骤s402:基于至少两个目标数据源,形成数据源内聚合列表。在本发明实施例中,将所有目标数据源聚合后得到数据源内聚合列表:

s1:(流水,时间);

s2:(流水,时间,字段a,字段e);

s3:(字段a,字段d);

s4:(字段d)

s5:(字段e)。

步骤s403:依次获取数据源间策略列表中的每一原始策略,根据数据源内聚合列表确定与原始策略相对应的左侧目标数据源和右侧目标数据源。

具体地,在s50中,依次获取数据源间策略列表中的每一原始策略后,根据数据源内聚合列表确定与原始策略中左侧数据源的数据源名称一致的的目标数据源作为左侧目标数据源;根据数据源内聚合列表确定与原始策略中右侧数据源的数据源名称一致的目标数据源作为右侧目标数据源。

在本发明实施例中,首先从根据原始策略列表y得到的数据源间策略列表中获取第一条原始策略s1(流水,时间)=s2(流水,时间),根据数据源内聚合列表可知原始策略s1对应的目标数据源为s1:(流水,时间),因此s1:(流水,时间)为原始策略s1(流水,时间)=s2(流水,时间)的左侧目标数据源;原始策略s2对应的目标策略为s2:(流水,时间,字段a,字段e),因此s2:(流水,时间,字段a,字段e)为原始策略s1(流水,时间)=s2(流水,时间)的右侧目标数据源。此后在一次确定数据源间策略列表中其他原始策略的对应左侧目标数据源和右侧目标数据源,方法与确定第一条原始策略的对应左侧目标数据源和右侧目标数据源的方法相同,因此不再赘述。

步骤s60:将与左侧目标数据源相对应的数据作为第一数据组,获取与右侧数据源相对应的数据作为第二数据组;将第一数据组和第二数据组作为与原始策略相对应的聚合结果。

图4示出了本发明实施例提供的多源数据聚合方法s60的具体实现流程,详述如下:

步骤s601:获取聚合指令,所述聚合指令包括关键值和与所述关联域相对应的具体参数值。在本发明实施例中,原始数据源s1存储的数据为:

原始数据源s2存储的数据为:

在本发明实施例中,系统获取的聚合指令中的与所述关联域相对应的具体参数值为:流水=010001,时间=1116135231,字段a为92010000,字段d为02105411,字段e为100|12345678;系统获取的聚合指令中的关键值为:卡号=6266661116135232。

步骤s602:在所述左侧目标数据源中基于所述聚合指令,获取包括所述关键值和所述具体参数值的数据作为所述第一数据组。

在本发明实施例中,在接收到聚合指令后,根据数据源间策略列表中的每一条策略进行数据搜索及聚合的过程如下:

以数据源间策略列表中第一条原始策略s1(流水,时间)=s2(流水,时间)为例,s1(流水,时间)=s2(流水,时间)对应的左侧目标数据源为s1:(流水,时间),由于关键值为:卡号,因此在数据源s1中搜索卡号=6266661116135232,流水=010001,时间=1116135231的数据。

在本发明实施例中第一数据组为:

步骤s603:在所述右侧目标数据源中基于所述聚合指令,获取包括所述关键值和所述具体参数值的数据作为所述第二数据组。

以数据源间策略列表中第一条原始策略s1(流水,时间)=s2(流水,时间)为例,s1(流水,时间)=s2(流水,时间)对应的右侧目标数据源为s2:(流水,时间,字段a,字段e),由于关键值为:卡号,因此在数据源s2中搜索卡号=6266661116135232,流水=010001,时间=1116135231,字段a=92010000,字段e=100|12345678的数据。

在本发明实施例中第二数据组为:

并将第一数据组和第二数据组聚合输出。

在本发明实施例中,根据数据源间策略列表中的其他策略搜索以及聚合数据的方式与根据数据源间策略列表中第一条策略搜索以及聚合数据的方式相同,因此不再赘述。

对应于上文实施例的多源数据聚合方法,图5示出了本发明实施例提供的多源数据聚合系统的结构框图,为了便于说明,仅示出了与本实施例相关的部分。

参见图5,该多源数据聚合系统包括:

数据接收模块501,用于获取至少两个原始数据源,每一原始数据源包括数据源名称和至少一个关联域;

策略接收模块502,用于基于原始数据源,获取原始策略列表;原始策略列表包括至少一个原始策略,每一原始策略包括左侧数据源和右侧数据源,左侧数据源和右侧数据源包括至少一个相同的关联域;

第一列表生成模块503,用于对原始策略列表中的原始策略进行排序,形成数据源间策略列表;

第二列表生成模块504,用于对原始策略列表中的关联域进行聚合,生成数据源内聚合列表;数据源内聚合列表包括至少两个目标数据源,目标数据源包括数据源名称和关联域集合;

策略提取模块505,用于依次获取数据源间策略列表中的每一原始策略,根据数据源内聚合列表确定与原始策略相对应的左侧目标数据源和右侧目标数据源;

聚合输出模块506,用于将与左侧目标数据源相对应的数据作为第一数据组,获取与右侧数据源相对应的数据作为第二数据组;将第一数据组和第二数据组作为与原始策略相对应的聚合结果。

进一步地,第一列表生成模块,包括:

初选子模块,用于从原始数据源中确定起始数据源;

搜索子模块,用于从原始策略列表中确定与起始数据源相对应的原始策略作为第一策略;第一策略的左侧数据源与起始数据源的数据源名称相同;

整理子模块,用于从原始策略列表中广度搜索与第一策略的右侧数据源相对应的原始策略作为第二策略;第二策略的左侧数据源与第一策略的右侧数据源的数据源名称相同;

循环子模块,用于将第二策略的右侧数据源更新为起始数据源,遍历原始策略列表,基于依序形成的第一策略和第二策略形成数据源间策略列表。

进一步地,第二列表生成模块,包括:

统计子模块,用于对所有原始策略列表中的所有原始策略的左侧数据源和右侧数据源进行聚合处理,将基于同一数据源名称的所有左侧数据源和右侧数据源聚合为目标数据源;

组合子模块,用于基于至少两个目标数据源,形成数据源内聚合列表。

进一步地策略提取模块,包括:

调整子模块,用于根据数据源内聚合列表确定与原始策略中左侧数据源的数据源名称一致的的目标数据源作为左侧目标数据源;根据数据源内聚合列表确定与原始策略中右侧数据源的数据源名称一致的目标数据源作为右侧目标数据源。

进一步地,聚合输出模块,包括:

指令获取子模块,用于获取聚合指令,聚合指令包括用户指定的数据源内聚合列表中目标数据的关联域对应的具体参数值;

第一数据搜索子模块,用于在原始策略的左侧数据源中,搜索出符合聚合指令的数据,生成第一数据组;

第二数据搜索子模块,用于在原始策略的右侧数据源中,搜索出符合聚合指令的数据,生成第二数据组。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(pro字段aessor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randoma字段a字段aessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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