具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书一个实施例提供的资金数据的分析方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置。如图1所示,所述方法具体可以包括:
步骤102,获取业务处理链路中各业务系统的多笔资金明细。
以一个业务系统对应的一笔资金明细为例来说,该笔资金明细可以记录到对应的数据表中。该数据表中可以包括多个字段,每个字段可以具有至少一个字段值。也即每笔资金明细可以包括多个字段,每个字段可以具有至少一个字段值。这里的多个字段可以包括但不限于账号字段、账号类型字段、交易金额字段、流入/流出金额字段、对方账号字段、对方账号类型字段、账户余额方向字段、流水明细借贷方向字段以及创建时间字段等等。
步骤104,基于各笔资金明细的多个字段以及字段值,确定目标字段的多个字段值。
这里的目标字段可以是人为预先设定好的,其个数可以为一个或多个。在一个例子中,可以预先设定多个目标字段,且该多个目标字段可以如表1所示。
表1
应理解,表1中的目标字段只是一种示例性说明,在实际应用中,上述目标字段还可以包括流入/流出方向字段以及明细时间字段等等。
以多笔资金明细中的任意的第一资金明细为例来说,上述确定过程可以为:建立第一资金明细的多个字段中至少一个字段与目标字段之间的映射关系。基于至少一个字段的字段值,确定目标字段的第一字段值。
以交易金额字段为例来说,如果第一资金明细中包括该交易金额字段,则直接可以建立第一资金明细中的交易金额字段与表1中交易金额字段之间的映射关系(简称直接映射)。之后,可以根据第一资金明细中的交易金额字段的字段值,确定表1中交易金额字段的字段值。
再以操作符字段为例来说,由于操作符字段的字段值是根据账户余额方向字段以及流水明细借贷方向字段的字段值共同来确定的,因此,可以建立第一资金明细中的账户余额方向字段以及流水明细借贷方向字段与表1中操作符字段之间的映射关系。即建立了第一资金明细中的两个字段与目标字段的映射关系。之后再根据该两个字段的字段值,确定操作符字段的字段。如,在该两个字段的字段值相等(即账户余额方向和流水明细借贷方向相同)时,操作符字段的字段值为增加;否则在该两个字段的字段值不等(即账户余额方向和流水明细借贷方向相反)时,操作符字段的字段值为减少。
需要说明的是,对于实际含义相同的字段,其在不同的资金明细中可能会有不同的描述。如,资金明细中可能会包含子交易代码:490413,内部户账号:2088XX,账号类型:0304,清算机构:3008,清算渠道:MYBANK等等,因此需要将这些编码的描述进行管理。在一种实现方式中,在建立上述映射关系之前,可以先将各个业务系统的配置表以清洗回流的方式统一收口到字典表中。该字典表用于恢复资金明细中纯编码的中文释义的映射。之后基于可以对该字典表进行清洗,并基于清洗后的字典表来建立上述映射关系。
由上可以看出,在某些场景下,资金明细中的字段在加工之后才能进行映射,因此为提高字段映射的效率,本说明书可以预先为各笔资金明细对应的数据表编写相应的清洗代码。通过该清洗代码来建立每笔资金明细的字段的映射以及字段值的确定。
最后,还需要说明的是,在建立字段间的映射关系以及确定目标字段的字段值之后,就可以得到标准资金明细。该标准资金明细所对应的数据表可以包括如表1所示。表1中,可以包括10个目标字段,且该10个目标字段的各个字段值构成不同行记录。也即标准资金明细可以包括多条行记录。
在一个例子中,上述标准资金明细对应的数据表的内容可以如表2所示。
表2
NN |
name |
TA |
operators |
account |
AT |
OA |
OAT |
data |
memo |
1 |
×× |
1000 |
- |
A |
×× |
B |
×× |
×× |
×× |
2 |
×× |
200 |
- |
A |
×× |
B |
×× |
×× |
×× |
3 |
×× |
1000 |
+ |
B |
×× |
A |
×× |
×× |
×× |
4 |
×× |
200 |
+ |
B |
×× |
A |
×× |
×× |
×× |
5 |
×× |
1200 |
+ |
C |
×× |
B |
×× |
×× |
×× |
6 |
×× |
1200 |
+ |
E |
×× |
C |
×× |
×× |
×× |
7 |
×× |
1200 |
- |
B |
×× |
C |
×× |
×× |
×× |
8 |
×× |
1200 |
- |
C |
×× |
E |
×× |
×× |
×× |
表2中,NN、TA、AT、OA以及OAT分别为节点编号、交易金额、账号类型、其它账号以及其它账号类型的英文缩写。此外,表2中的10个不同的目标字段的字段值构成了8条行记录。
步骤106,基于不同行记录中目标字段的字段值以及预设的关联关系规则,确定各行记录之间的排列次序。
在一种实现方式中,上述确定过程可以通过如下几个步骤来完成:
首先,按照操作符字段的字段值,将不同行记录划分为两个分组。该两个分组包括第一分组和第二分组,其中,第一分组中的各行记录的操作符字段的字段值为减少,第二分组中的各行记录的操作符字段的字段值为增加。对两个分组中的每个分组,按照账号字段的字段值,对该分组中的各行记录进行再次分组,得到与该分组对应的至少一个子分组。其中,同一子分组中的各行记录具有相同的账号。也即子分组与账号是一一对应的关系。
以表2所示的8条行记录为例来说,第一分组中的行记录可以为:编号为1、2、7以及8的行记录。由于该四条行记录对应三个账号,其中,编号为1和2的行记录具有相同的账号。因此,第一分组对应的子分组的个数为三个,假设将该三个子分组分别表示为:子分组A、子分组B以及子分组C,那么子分组A中的行记录可以为:编号为1和2的行记录,且子分组A对应的账号为:A;子分组B中的行记录可以为:编号为7的行记录,且子分组B对应的账号为:B;子分组C中的行记录可以为:编号为8的行记录,且子分组C对应的账号为:C。
此外,第二分组中的行记录分别可以为:编号为3、4、5以及6的行记录。由于该四条行记录对应三个账号,其中,编号为3和4的行记录具有相同的账号。因此,第二分组对应的子分组的个数为三个,假设将该三个子分组分别表示为:子分组X、子分组Y以及子分组Z,那么子分组X中的行记录可以为:编号为3和4的行记录,且子分组X对应的账号为:B;子分组Y中的行记录可以为:编号为5的行记录,且子分组Y对应的账号为:C;子分组Z中的行记录可以为:编号为6的行记录,且子分组Z对应的账号为:E。
当用账号、操作符以及交易金额来表示表2中的各行记录时,各行记录的分组情况也可以如图2所示。
其次,判断两个分组对应的各个子分组是否存在相匹配的子分组。
在一种实现方式中,该判断过程具体可以为:对于第一分组对应的任意的第一子分组,判断第二分组中是否存在第二子分组,其中,第一子分组与第二子分组对应的账号字段的字段值相同,也即该两个子分组所对应的账号相同。若是,则判断第一子分组存在相匹配的子分组;否则,判断不存在。
以前述例子为例来说,对于第一分组对应的子分组A,其对应的账号为:A,而第二分组对应的三个子分组各自所对应的账号分别为:B,C和E,也即子分组A所对应的账号与第二分组对应的三个子分组所对应的账号均不相同,因此判断子分组A不存在相匹配的子分组。同理,可以判断子分组B存在相匹配的子分组:子分组X,子分组C存在相匹配的子分组:子分组Y。
可以理解的是,在对第一分组对应的各个子分组是否存在相匹配的子分组判断结束后,第二分组对应的各个子分组是否存在相匹配的子分组也就可以确定了。如,第二分组对应的子分组X存在相匹配的子分组:子分组B,子分组Y存在相匹配的子分组:子分组C,而子分组Z不存在相匹配的子分组。
在另一种实现方式中,上述判断过程具体也可以为:对于第二分组对应的任意的第二子分组,判断第一分组中是否存在第一子分组,其中,第二子分组与第一子分组对应的账号字段的字段值相同;若是,则判断第二子分组存在相匹配的子分组;否则,判断不存在。
最后,根据判断结果以及预设的关联关系规则,确定各行记录之间的排列次序。
该预设的关联关系规则例如可以为:1.行记录中包含的账号所对应的操作符只包括减少的排在最前面。2.行记录中包含的账号所对应的操作符只包括增加的排在最后面。3.流入和流出金额相同,且方向相反的行记录,流出的一方在前,流入的一方在后,如果是余额账户时,还需要判断对方账号和对方账号类型(0-未知,1-公司,2-个人,3-内部,6-支付宝中间账户)。4.创建时间早的行记录排在前面等等。
此外,上述预设的关联关系规则还可以包括指定排序规则,该指定排序规则适用于账号和操作符均相同的行记录之间的排序。例如可以为:交易金额较大的行记录排在前面等等。
具体地,可以从第一分组对应的各个子分组中选取出不存在相匹配的子分组的第一目标子分组。从第二分组对应的各个子分组中选取出不存在相匹配的子分组的第二目标子分组。按照如下顺序排列第一分组以及第二分组对应的各个子分组:第一目标子分组、第一分组对应的其它子分组、第二分组对应的其它子分组以及第二目标子分组。这里的第一分组对应的其它子分组是指第一分组对应的至少一个子分组中除第一目标子分组外的子分组。这里的第二分组对应的其它子分组是指第二分组对应的至少一个子分组中除第二目标子分组外的子分组。根据指定排序规则,确定排序后的各子分组内各行记录的排列次序。
这里,需要说明的是,如果第一分组对应的其它子分组以及第二分组对应的其它子分组的个数均为一个,则对于每个子分组,直接根据指定排序规则,确定排序后的各子分组内各行记录的排列次序。而如果第一分组对应的其它子分组和/或第二分组对应的其它子分组的个数为多个。则针对不同的分组,其对应的多个其它子分组内各行记录的排列次序的确定方法可以不相同。
具体地,对于第一分组对应的其它子分组的个数为多个的情况,对于多个其它子分组中的每个子分组,根据该子分组中各行记录的账号类型字段的字段值,确定每个子分组对应的账号类型。按照预先设定好的账号类型的排列次序,确定多个其它子分组的排列次序。根据指定排序规则,确定排序后的各其它子分组内各行记录的排列次序。
图3为本说明书提供的账号类型的排列次序示意图。图3中,“Xx待清算”、“A余额”、“B余额”、“业务过渡户”以及“C余额”分别表示账号类型。其中,“Xx待清算”和“业务过渡户”可以为某支付系统内部的账号类型。
对于第二分组对应的其它子分组的个数为多个的情况,将多个其它子分组中的各行记录重新组合在一起。根据交易金额字段以及资金流向字段和/或对方账号与账号类型字段和/或明细时间字段的字段值,确定重新组合后的各行记录的排列次序。
以上是对第一分组或者第二分组对应的其它子分组内各行记录的排列次序的确定过程的说明,对于第一目标子分组或者第二目标子分组,则直接根据指定排序规则,确定其内各行记录的排列次序。
在前述例子中,由于第一子分组对应的各个子分组中子分组A不存在相匹配的子分组,因此可以将子分组A选取为第一目标子分组;同理可以将子分组Z选取为第二目标子分组。从而第一分组以及第二分组对应的各个子分组的排列次序可以为:子分组A、子分组B和子分组C、子分组X和子分组Y、子分组Z。
在步骤106的其它实现方式中,也可以基于业务规则,确定各行记录的排列次序,本说明书对此不作限定。这里的业务规则可以是根据一些架构设计,也可以是专家输入一些账号关联辅助图而构建,其可以用于后续账户间关联关系的统计分析。
步骤108,按照确定的排列次序,对各行记录进行排序。
步骤110,基于排序后的各行记录,对多笔资金明细进行分析。
这里,通过对各业务系统的多笔资金明细进行分析,就可以实现业务的需求评估以及风险防控等。
综上,本说明书实施例提供的资金数据的分析方法,先将多笔资金明细转换为与其对应的不同行记录,并对该不同行记录进行排序,之后基于排序后的行记录来实现资金数据的分析,由此,可以有效地对资金数据进行分析。
图4为本说明书提供的资金数据的分析方法示意图。图4中,首先获取业务处理链路中各业务系统的多笔原始资金明细。之后,基于基本映射规则或者自定义映射规则,将该多笔原始资金明细转换为标准资金明细。这里的基本映射规则可以是指前述的建立字段之间映射关系的方法。自定义映射规则可以是指前述的为每笔资金明细编写的清洗代码。转换后的标准资金明细可以包括多条行记录。最后,基于基础规则以及可扩展规则对上述多条行记录之间的排列次序进行分析。这里的基础规则可以是指上述预设的关联关系规则。可扩展规则也可以称为优化规则。基于分析得到的行记录之间的排列次序,依次排列多条行记录并连接,以得到资金视图。
需要说明的是,基于基础规则构建出来的资金视图可能因为场景问题顺序上可能有些差异,这时可以通过可扩展规则进行特殊场景的准确性优化。可扩展规则作为插件的方式,以动态脚本的方式进行配置装载。
图5为本说明提供的行记录的排列次序确定方法流程图。如图5所示,该方法可以包括如下步骤:
步骤502,按照操作符对标准资金明细中的各行记录进行分组,得到两个分组。
该两个分组包括第一分组和第二分组,其中,第一分组中的各行记录的操作符为减少,第二分组中的各行记录的操作符为增加。
步骤504,按照账号,对每个分组中的行记录进行再次分组,分到与每个分组对应的至少一个子分组。
步骤506,从多个子分组中选取出两个目标子分组,并将该两个目标子分组分别确定为排在最前面的子分组和排在最后面的子分组。
这里的两个目标子分组均不存在与其相匹配的子分组。
步骤508,对第一分组对应的多个其它子分组,按照预先设定好的账号类型的排列次序,确定多个其它子分组的排列次序。根据指定排序规则,确定排序后的各其它子分组中各行记录的排列次序。
步骤510,对于第二分组对应的多个其它子分组,将多个其它子分组中的各行记录重新组合在一起,之后执行以下步骤,直至重新组合在一起的各行记录的排列次序均确定为止。
步骤512,选取交易金额相同的多条目标行记录。
步骤514,判断该多条目标行记录中是否包含对方账号与账号类型,如果包含,则跳转至步骤516,否则跳转至步骤520。
步骤516,基于对方账号与账号类型,确定多条目标行记录的排列次序。
步骤518,判读目标行记录的排列次序是否全部确定完成,如果是,则跳转至步骤512;否则跳转至步骤520。
步骤520,判断该多条目标行记录中是否包含明细时间,如果包含,则跳转至步骤522;否则跳转至步骤526。
步骤522,基于明细时间,确定多条目标行记录的排列次序。
步骤524,判读目标行记录的排列次序是否全部确定完成,如果是,则跳转至步骤512;否则跳转至步骤526。
步骤526,按照匹配规则,确定多条目标行记录的排列次序;并跳转至步骤512。
与资金数据的分析方法对应地,本说明书一个实施例还提供的一种资金数据的分析装置,如图6所示,该装置可以包括:
获取单元602,用于获取业务处理链路中各业务系统的多笔资金明细。其中,每笔资金明细包括多个字段,每个字段具有至少一个字段值。
确定单元604,用于基于各笔资金明细的多个字段以及字段值,确定目标字段的多个字段值。目标字段的各个字段值构成与各笔资金明细对应的不同行记录。
确定单元604,还用于基于不同行记录中目标字段的字段值以及预设的关联关系规则,确定各行记录之间的排列次序。
排序单元606,用于按照确定单元604确定的排列次序,对各行记录进行排序。
分析单元608,用于基于排序单元606排序后的各行记录,对多笔资金明细进行分析。
可选地,多笔资金明细可以包括第一资金明细,目标字段的多个字段值可以包括第一字段值。
确定单元604具体可以用于:
对于第一资金明细,建立第一资金明细的多个字段中至少一个字段与目标字段之间的映射关系。
基于至少一个字段的字段值,确定目标字段的第一字段值。
目标字段的第一字段值构成与第一资金明细对应的第一行记录。
可选地,目标字段至少包括账号字段和操作符字段。
确定单元604具体可以用于:
按照操作符字段的字段值,将不同行记录划分为两个分组。该两个分组包括第一分组和第二分组,其中,第一分组中的各行记录的操作符字段的字段值为减少,第二分组中的各行记录的操作符字段的字段值为增加。
对两个分组中的每个分组,按照账号字段的字段值,对该分组中的各行记录进行再次分组,得到与该分组对应的至少一个子分组。其中,子分组与账号字段的字段值一一对应。
判断两个分组对应的各个子分组是否存在相匹配的子分组。
根据判断结果以及预设的关联关系规则,确定各行记录之间的排列次序。
可选地,确定单元604还具体可以用于:
对于第一分组对应的任意的第一子分组,判断第二分组中是否存在第二子分组,其中,第一子分组与第二子分组对应的账号字段的字段值相同。若是,则判断第一子分组存在相匹配的子分组,否则,判断不存在。或者,
对于第二分组对应的任意的第二子分组,判断第一分组中是否存在第一子分组,其中,第二子分组与第一子分组对应的账号字段的字段值相同。若是,则判断第二子分组存在相匹配的子分组,否则,判断不存在。
可选地,预设的关联关系规则还可以包括指定排序规则。确定单元604还具体可以用于:
从第一分组对应的各个子分组中选取出不存在相匹配的子分组的第一目标子分组,从第二分组对应的各个子分组中选取出不存在相匹配的子分组的第二目标子分组。
按照如下次序排列第一分组以及第二分组对应的各个子分组:第一目标子分组、第一分组对应的其它子分组、第二分组对应的其它子分组以及第二目标子分组。
根据指定排序规则,确定排序后的各子分组内各行记录的排列次序。
可选地,目标字段还可以包括账号类型字段,第一分组对应的其它子分组的个数为多个。
确定单元604还具体可以用于:
对于多个其它子分组,根据其中每个子分组中各行记录的账号类型字段的字段值,确定每个子分组对应的账号类型。
按照预设的账号类型的排列次序,确定多个其它子分组的排列次序。
根据指定排序规则,确定排序后的各其它子分组内各行记录的排列次序。
可选地,目标字段还可以包括交易金额字段以及资金流向字段和/或对方账号与账号类型字段和/或明细时间字段。第二分组对应的其它子分组的个数为多个。
确定单元604还具体可以用于:
对于多个其它子分组,将多个其它子分组中的各行记录重新组合在一起。
根据交易金额字段以及资金流向字段和/或对方账号与账号类型字段和/或明细时间字段的字段值,确定重新组合后的各行记录的排列次序。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的资金数据的分析装置,获取单元602获取业务处理链路中各业务系统的多笔资金明细。其中,每笔资金明细包括多个字段,每个字段具有至少一个字段值。确定单元604基于各笔资金明细的多个字段以及字段值,确定目标字段的多个字段值。目标字段的各个字段值构成与各笔资金明细对应的不同行记录。确定单元604基于不同行记录中目标字段的字段值以及预设的关联关系规则,确定各行记录之间的排列次序。排序单元606按照确定的排列次序,对各行记录进行排序。分析单元608基于排序后的各行记录,对多笔资金明细进行分析。由此,可以有效地对资金数据进行分析。
与上述资金数据的分析方法对应地,本说明书实施例还提供了一种资金数据的分析设备,如图7所示,该设备可以包括:存储器702、一个或多个处理器704以及一个或多个程序。其中,该一个或多个程序存储在存储器702中,并且被配置成由一个或多个处理器704执行,该程序被处理器704执行时实现以下步骤:
获取业务处理链路中各业务系统的多笔资金明细。其中,每笔资金明细包括多个字段,每个字段具有至少一个字段值。
基于各笔资金明细的多个字段以及字段值,确定目标字段的多个字段值。目标字段的各个字段值构成与各笔资金明细对应的不同行记录。
基于不同行记录中目标字段的字段值以及预设的关联关系规则,确定各行记录之间的排列次序。
按照确定的排列次序,对各行记录进行排序。
基于排序后的各行记录,对多笔资金明细进行分析。
本说明书一个实施例提供的资金数据的分析设备,可以有效地对资金数据进行分析。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。