本发明涉及计算机,尤其涉及一种数据处理方法和装置。
背景技术:
1、通常,风控模型所需要的大部分特征都是反映某类事件在某些维度上的聚集程度。常见的聚集性特征主要分为两类:去重统计特征(统计一段时间内,在某些相同维度下不同参数出现的次数)、增量统计特征(统计一段时间内,某类事件在相同维度下重复出现的次数)。
2、目前,常见的聚集性特征计算方法有两种:基于map的原文算法和基于哈希的二维数组算法。但是,这两种方法存在以下技术问题:
3、1)基于map的原文算法:数据存储重复率高,内存占用率高,资源消耗严重;
4、2)基于哈希的二维数组算法:特征对象的相关数据不可回溯,可能出现小概率的哈希冲突,特征计算结果不够精确。
技术实现思路
1、有鉴于此,本发明实施例提供一种数据处理方法和装置,以解决内存占用率高或者数据不可回溯的技术问题。
2、为实现上述目的,根据本发明实施例的一个方面,提供了一种数据处理方法,包括:
3、接收并解析业务请求,得到各个维度对应的维度值、各个统计参数对应的统计参数值和事件时间;
4、根据所述各个维度对应的维度值、所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入多路平衡查找树;
5、其中,所述多路平衡查找树根据所述各个维度在各个特征对象中的被引用次数而构建得到,所述特征对象定义了各个维度和各个统计参数。
6、可选地,接收并解析业务请求之前,还包括:
7、根据各个维度在各个特征对象中的被引用次数,确定各个维度的顺序;
8、根据所述各个维度的顺序,构建多路平衡查找树,使得所述多路平衡查找树中的异源节点按照所述各个维度的顺序依次挂载;
9、其中,在所述多路平衡查找树中,同源是指父节点和子节点具有相同的维度,异源是指父节点与子节点的维度不同。
10、可选地,根据各个维度在各个特征对象中的被引用次数,确定各个维度的顺序,包括:
11、采用贪婪优化算法并基于各个维度在各个特征对象中的被引用次数由大到小的顺序,对所述各个维度进行排序,从而确定所述各个维度的顺序。
12、可选地,采用贪婪优化算法并基于各个维度在各个特征对象中的被引用次数由大到小的顺序,对所述各个维度进行排序,包括:
13、步骤41)、从特征对象列表中选取尚未被优化且被引用次数最多的最大维度;
14、步骤42)、根据所述最大维度,将所述特征对象列表分为包含所述最大维度的特征对象子列表和不包含所述最大维度的特征对象子列表;
15、步骤43)、对于包含所述最大维度的特征对象子列表,将位于所述最大维度之前且出现次数小于所述最大维度的维度移至所述最大维度的后面,并将所述最大维度标记为已优化;
16、步骤44)、重复执行步骤41)至步骤43),直到无法从所述特征对象列表中选取出尚未被优化且被引用次数最多的最大维度。
17、可选地,根据所述各个维度对应的维度值、所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入多路平衡查找树,包括:
18、根据多路平衡查找树的挂载顺序和所述各个维度对应的维度值,确定目标节点,从而将所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入所述目标节点。
19、可选地,根据多路平衡查找树的挂载顺序和所述各个维度对应的维度值,确定目标节点,从而将所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入所述目标节点,包括:
20、在多路平衡查找树中确定当前维度的根节点;
21、在所述多路平衡查找树中查找所述根节点的同源节点,将所述当前维度的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述同源节点;
22、在所述多路平衡查找树中查找所述根节点的异源节点,将所述异源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述异源节点。
23、可选地,在所述多路平衡查找树中查找所述根节点的同源节点,将所述当前维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述同源节点,包括:
24、步骤71)、判断当前节点的同源子节点列表是否为空;若是,则将所述同源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述当前节点;若否,则执行步骤72);
25、步骤72)、将所述当前维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,判断所述当前节点的键值对列表中是否存在所述待插入键值对;若是,则直接返回所述当前节点;若否,则执行步骤73);
26、步骤73)、根据所述待插入键值对与所述当前节点中已有键值对的大小关系,从所述当前节点中已有键值对的同源左子节点或者同源右子节点中继续查找待插入的节点,从而将所述待插入键值对插入其中。
27、可选地,在所述多路平衡查找树中查找所述根节点的异源节点,将所述异源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述异源节点,包括:
28、判断所述根节点对应的键值对的异源子节点列表中是否存在维度为所述待插入键值对所属维度的异源子节点;
29、若是,则将所述异源子节点作为新的根节点;
30、若否,则初始化新的异源子节点,将所述新的异源子节点插入所述根节点对应的键值对的异源子节点列表中,以使所述异源子节点列表中的各个异源子节点按照其对应的维度升序排列;并且,将所述新的异源子节点作为新的根节点;
31、在所述多路平衡查找树中查找所述新的根节点的同源节点,将所述同源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述同源节点。
32、可选地,根据所述各个维度对应的维度值和所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入多路平衡查找树之后,还包括:
33、基于所述多路平衡查找树计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行数据溯源。
34、可选地,基于所述多路平衡查找树计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行数据溯源,包括:
35、在所述多路平衡查找树中定位所述统计参数值和所述事件时间对应的键值对所在节点的逻辑根节点;
36、遍历所述逻辑根节点及其子节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源。
37、可选地,基于所述多路平衡查找树计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行数据溯源,包括:
38、基于深度优先遍历所述多路平衡查找树的各个节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源。
39、可选地,基于深度优先遍历所述多路平衡查找树的各个节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源,包括:
40、步骤121)、判断当前节点是否为所述统计参数值和所述事件时间对应的节点;若是,则执行步骤122);若否,则执行步骤123);
41、步骤122)、遍历所述当前节点及其子节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源;
42、步骤123)、以递归方式将所述当前节点的异源子节点作为新的当前节点,执行步骤121)。
43、另外,根据本发明实施例的另一个方面,提供了一种数据处理装置,包括:
44、解析模块,用于接收并解析业务请求,得到各个维度对应的维度值、各个统计参数对应的统计参数值和事件时间;
45、处理模块,用于根据所述各个维度对应的维度值、所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入多路平衡查找树;
46、其中,所述多路平衡查找树根据所述各个维度在各个特征对象中的被引用次数而构建得到,所述特征对象定义了各个维度和各个统计参数。
47、可选地,还包括构建模块,用于:
48、根据各个维度在各个特征对象中的被引用次数,确定各个维度的顺序;
49、根据所述各个维度的顺序,构建多路平衡查找树,使得所述多路平衡查找树中的异源节点按照所述各个维度的顺序依次挂载;
50、其中,在所述多路平衡查找树中,同源是指父节点和子节点具有相同的维度,异源是指父节点与子节点的维度不同。
51、可选地,所述构建模块还用于:
52、采用贪婪优化算法并基于各个维度在各个特征对象中的被引用次数由大到小的顺序,对所述各个维度进行排序,从而确定所述各个维度的顺序。
53、可选地,所述构建模块还用于:
54、步骤41)、从特征对象列表中选取尚未被优化且被引用次数最多的最大维度;
55、步骤42)、根据所述最大维度,将所述特征对象列表分为包含所述最大维度的特征对象子列表和不包含所述最大维度的特征对象子列表;
56、步骤43)、对于包含所述最大维度的特征对象子列表,将位于所述最大维度之前且出现次数小于所述最大维度的维度移至所述最大维度的后面,并将所述最大维度标记为已优化;
57、步骤44)、重复执行步骤41)至步骤43),直到无法从所述特征对象列表中选取出尚未被优化且被引用次数最多的最大维度。
58、可选地,所述处理模块还用于:
59、根据多路平衡查找树的挂载顺序和所述各个维度对应的维度值,确定目标节点,从而将所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入所述目标节点。
60、可选地,所述处理模块还用于:
61、在多路平衡查找树中确定当前维度的根节点;
62、在所述多路平衡查找树中查找所述根节点的同源节点,将所述当前维度的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述同源节点;
63、在所述多路平衡查找树中查找所述根节点的异源节点,将所述异源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述异源节点。
64、可选地,所述处理模块还用于:
65、步骤71)、判断当前节点的同源子节点列表是否为空;若是,则将所述同源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述当前节点;若否,则执行步骤72);
66、步骤72)、将所述当前维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,判断所述当前节点的键值对列表中是否存在所述待插入键值对;若是,则直接返回所述当前节点;若否,则执行步骤73);
67、步骤73)、根据所述待插入键值对与所述当前节点中已有键值对的大小关系,从所述当前节点中已有键值对的同源左子节点或者同源右子节点中继续查找待插入的节点,从而将所述待插入键值对插入其中。
68、可选地,所述处理模块还用于:
69、判断所述根节点对应的键值对的异源子节点列表中是否存在维度为所述待插入键值对所属维度的异源子节点;
70、若是,则将所述异源子节点作为新的根节点;
71、若否,则初始化新的异源子节点,将所述新的异源子节点插入所述根节点对应的键值对的异源子节点列表中,以使所述异源子节点列表中的各个异源子节点按照其对应的维度升序排列;并且,将所述新的异源子节点作为新的根节点;
72、在所述多路平衡查找树中查找所述新的根节点的同源节点,将所述同源节点的维度对应的维度值或者所述各个统计参数对应的统计值和所述事件时间作为待插入键值对,插入所述同源节点。
73、可选地,还包括计算模块,用于:
74、根据所述各个维度对应的维度值和所述各个统计参数对应的统计参数值和所述事件时间作为键值对,插入多路平衡查找树之后,基于所述多路平衡查找树计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行数据溯源。
75、可选地,所述计算模块还用于:
76、在所述多路平衡查找树中定位所述统计参数值和所述事件时间对应的键值对所在节点的逻辑根节点;
77、遍历所述逻辑根节点及其子节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源。
78、可选地,所述计算模块还用于:
79、基于深度优先遍历所述多路平衡查找树的各个节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源。
80、可选地,所述计算模块还用于:
81、步骤121)、判断当前节点是否为所述统计参数值和所述事件时间对应的节点;若是,则执行步骤122);若否,则执行步骤123);
82、步骤122)、遍历所述当前节点及其子节点中的键值对,从而计算所述各个特征对象对应的业务请求的数量,并对所述业务请求进行维度值溯源;
83、步骤123)、以递归方式将所述当前节点的异源子节点作为新的当前节点,执行步骤121)。
84、根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
85、一个或多个处理器;
86、存储装置,用于存储一个或多个程序,
87、当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
88、根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
89、根据本发明实施例的另一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
90、上述发明中的一个实施例具有如下优点或有益效果:因为采用根据各个维度对应的维度值、各个统计参数对应的统计参数值和事件时间作为键值对,插入多路平衡查找树,其中,多路平衡查找树根据各个维度在各个特征对象中的被引用次数而构建得到的技术手段,所以克服了现有技术中内存占用率高或者数据不可回溯的技术问题。本发明实施例基于各个维度的被引用次数创建多路平衡查找树并将维度值、统计参数值和事件时间作为键值对插入其中,从底层支持数据复用以实现节约内存资源的目的,而且特征对象的相关数据可回溯,特征对象的计算结果精确。
91、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。