System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据,尤其涉及一种数据聚合的方法、装置、电子设备和存储介质。
技术介绍
1、原有统计应用收集client上的运行状态,用于监控整体运行情况,提供调整运行状态的数据依据以及发现缺陷等。client可以为app,也可以为设备。
2、由于存在大量的client,单个client的数据太少,看不出数据的趋势,应用程序需要对多个client中多个维度的数据进行汇聚。例如根据client的版本,汇聚某个版本的运行情况,或者查看某个地域的数据是否和其他地域的数据有区别,可能还需要多维度(嵌套)数据的汇聚,例如某个版本加某个地域的数据运行状态汇聚。示例性地,若client为广告牌,那么需要针对某个地域,或某个运营商,计算广告牌耗费的总流量。
3、现有的数据汇聚基于静态语言开发,每一种维度使用一个hash map数据结构作为汇聚的容器,hash map对于每种类型的数据都需要写不同的代码,代码数量巨大,造成代码开发维护困难。
技术实现思路
1、为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据聚合的方法、装置、电子设备和存储介质。
2、第一方面,本申请提供了一种数据聚合的方法,所述方法包括:
3、获取基数树和目标数据,其中,所述基数树是根据初始数据生成的,所述基数树的路径中的每个分层节点对应所述初始数据的一个维度,所述目标数据携带有至少一种目标维度;
4、确定所述目标数据的目标维度是否命中所述基数树的至少一
5、若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中;
6、若未命中,则根据所述至少一种目标维度和所述基数树的路径中的分层节点生成新路径,并将所述目标数据汇聚至所述新路径的叶子节点对应的数据中。
7、可选地,获取基数树之前,所述方法还包括:
8、获取初始数据,其中,所述初始数据携带有至少一种维度;
9、根据所述初始数据生成所述基数树,其中,所述基数树的路径中的每个分层节点对应所述初始数据的一个维度;
10、按照所述基数树的每条路径对应的路径维度,从所述初始数据中选取携带有同一路径中的路径维度的设定数据,其中,所述路径维度为所述路径中的全部节点具有的相同维度;
11、将所述设定数据存储在对应的路径的叶子节点对应的数据中。
12、可选地,若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中包括:
13、若命中一条路径,将所述目标数据汇聚至命中的路径的叶子节点对应的数据中。
14、可选地,若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中包括:
15、若命中多条路径,则确定命中的每条路径中的路径维度;
16、从所述目标数据中选取携带有同一路径中的路径维度的预设数据;
17、将所述预设数据汇聚至命中的路径的叶子节点对应的数据中。
18、可选地,若未命中,则根据所述至少一种目标维度和所述基数树的路径中的分层节点生成新路径包括:
19、若未命中,则按照所述基数树的路径从根节点到叶子节点的走向,确定所述路径中的分层节点命中的所述至少一种目标维度中的重复维度;
20、确定所述目标维度中除所述重复维度之外的剩余维度;
21、根据所述剩余维度在所述基数树中创建新分层节点;
22、根据所述基数树的路径和所述新分层节点生成新路径。
23、可选地,将所述目标数据汇聚至叶子节点对应的数据中之后,所述方法还包括:
24、对汇聚数据后的基数树进行序列化;
25、将序列化后的基数树发送至第一服务器,得到总基数树,以使所述第一服务器对所述总基数树进行反序列化,其中,所述第一服务器接收多个第二服务器发送的基数树,每个第二服务器对应一个基数树。
26、可选地,将所述目标数据汇聚至叶子节点对应的数据中之后,所述方法还包括:
27、遍历所述总基数树的路径,得到所述总基数树中的全部数据;
28、按照表格型数据结构聚合所述全部数据,得到任意维度的数据。
29、可选地,所述初始数据包括适用于不同应用场景中的多种场景数据,根据所述初始数据生成所述基数树包括:
30、采用不同的预设函数对每种场景数据进行处理,生成所述基数树,其中,所述基数树中每种场景数据的路径没有交叉关系。
31、第二方面,提供了一种数据聚合的装置,所述装置包括:
32、获取模块,用于获取基数树和目标数据,其中,所述基数树是根据初始数据生成的,所述基数树的路径中的每个分层节点对应所述初始数据的一个维度,所述目标数据携带有至少一种目标维度;
33、处理模块,用于确定所述目标数据的目标维度是否命中所述基数树的至少一条路径上的全部分层节点;
34、汇聚模块,用于若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中;
35、生成模块,用于若未命中,则根据所述至少一种目标维度和所述基数树的路径中的分层节点生成新路径,并将所述目标数据汇聚至所述新路径的叶子节点对应的数据中。
36、第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
37、存储器,用于存放计算机程序;
38、处理器,用于执行存储器上所存放的程序时,实现任一所述的数据聚合的方法步骤。
39、第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一所述的数据聚合的方法步骤。
40、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
41、本申请实施例提供的该方法,针对包含不同维度的初始数据,将其存储在同一个基数树中,即使有新的目标数据要纳入基数树,如果目标数据的目标维度没有命中基数树的路径,也就是基数树中不存在该目标维度,只需要针对目标维度生成新的路径即可,不需要针对该不存在的目标维度重新编写代码,本申请的代码可以持续复用,代码开发和维护都比较简单。
本文档来自技高网...【技术保护点】
1.一种数据聚合的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,获取基数树之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中包括:
4.根据权利要求1所述的方法,其特征在于,若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中包括:
5.根据权利要求1所述的方法,其特征在于,若未命中,则根据所述至少一种目标维度和所述基数树的路径中的分层节点生成新路径包括:
6.根据权利要求1所述的方法,其特征在于,将所述目标数据汇聚至叶子节点对应的数据中之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,将所述目标数据汇聚至叶子节点对应的数据中之后,所述方法还包括:
8.根据权利要求2所述的方法,其特征在于,所述初始数据包括适用于不同应用场景中的多种场景数据,根据所述初始数据生成所述基数树包括:
9.一种数据聚合的装置,其特征在于,所述装置包括:
10.一种电
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
...【技术特征摘要】
1.一种数据聚合的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,获取基数树之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中包括:
4.根据权利要求1所述的方法,其特征在于,若命中,则将所述目标数据汇聚至命中的路径的叶子节点对应的数据中包括:
5.根据权利要求1所述的方法,其特征在于,若未命中,则根据所述至少一种目标维度和所述基数树的路径中的分层节点生成新路径包括:
6.根据权利要求1所述的方法,其特征在于,将所述目标数据汇聚至叶子节点对应的数据中之后,所述方法还包括...
【专利技术属性】
技术研发人员:张洋,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。