数据流分片方法、装置、设备及存储介质与流程



1.本发明涉及大数据技术领域,尤其涉及一种数据流分片方法、装置、设备及存储介质。


背景技术:



2.传统的网络安全系统基于网络包处理及流量特征分析,结合特征库和专家系统,能发现并抵御一定的异常行为,但是其对网络传输的数据内容的识别能力不足,对新型攻击行为的甄别响应迟缓,而基于大数据处理系统开发的网络安全系统,因其新鲜度高、分析能力强且响应迅速,基于大数据处理系统开发的网络安全系统成为了网络安全应用的大力发展方向。
3.大数据处理系统可以分为两类:批处理大数据系统和流处理大数据系统,其中,流处理大数据系统相对批处理大数据系统实时性更高,响应更快速,在网路安全应用领域更适用,但是,现有的流处理大数据系统在一般采用成熟的流处理组件,如spark streaming、storm、kafka等组件,并基于该组件的原生数据切片能力,对数据流进行简单数据分片,甚至不做数据分片,即转入数据分析过程,该方案虽然一定程度上降低了数据流处理的时延,但是给后续的数据分析过程带来了建模复杂、计算开销大等问题,且牺牲了分析的精确性。
4.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:



5.本发明的主要目的在于提供一种数据流分片方法、装置、设备及存储介质,旨在解决现有技术由于数据流分片粒度较大,从而导致数据困难的技术问题。
6.为实现上述目的,本发明提供了一种数据流分片方法,所述方法包括以下步骤:
7.从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段,所述预设分片字段集中包括应用协议、目标ip地址和源ip地址;
8.根据所述第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;
9.通过一级分片节点组根据所述第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流;
10.通过二级分片节点组根据所述第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流;
11.将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果。
12.可选的,所述从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段的步骤,包括:
13.从预设字段集中取出应用协议、目标ip地址和源ip地址;
14.将所述应用协议作为第一分片字段,将所述目标ip地址作为第二分片字段,将所
述源ip地址作为第三分片字段。
15.可选的,所述从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段的步骤之前,还包括:
16.获取预设三级节点数量及待处理数据流对应的应用协议枚举量与业务服务地址枚举量;
17.根据所述应用协议枚举量创建一级分片节点组,根据所述应用协议枚举量及所述业务服务枚举量创建二级分片节点组,根据所述预设三级节点数量创建三级分片节点组。
18.可选的,所述将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果的步骤之前,还包括:
19.根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容;
20.根据所述枚举数量及枚举内容确定节点拓扑配置;
21.相应的,所述将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果的步骤,包括:
22.根据所述节点拓扑配置将多组所述第三节点数据流分发至三级分片节点组。
23.可选的,所述根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容的步骤之前,还包括:
24.获取当前运行时序,将所述当前运行时序与预设时序阈值进行比较;
25.在所述当前运行时序大于预设时序阈值时,获取前次时序对应的源ip地址枚举数量及预测三级节点数量;
26.根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;
27.根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量。
28.可选的,所述根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量的步骤,包括:
29.通过指数平滑公式根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;
30.所述指数平滑公式为:
31.y
t+1
'=a*y
t
+(1-a)y
t
'
32.式中,y
t+1
'为当前运行时序对应的预测三级节点数量;y
t
前次时序对应的源ip地址枚举数量;y
t
'为前次时序对应的预测三级节点数量;a为平滑常数,取值范围为[0,1]。
[0033]
可选的,所述根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量的步骤之前,还包括:
[0034]
获取预测容错值;
[0035]
相应的,所述根据所述预测三级节点数量调整所述三级分片节点组中三级分片节点的数量的步骤,包括:
[0036]
根据所述当前运行时序对应的预测三级节点数量及所述预测容错值调整所述三级分片节点组中三级分片节点的数量。
[0037]
此外,为实现上述目的,本发明还提出一种数据流分片装置,所述数据流分片装置
包括以下模块:
[0038]
字段确定模块,用于从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段,所述预设分片字段集中包括应用协议、目标ip地址和源ip地址;
[0039]
一级分片模块,用于根据所述第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;
[0040]
二级分片模块,用于通过一级分片节点组根据所述第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流;
[0041]
三级分片模块,用于通过二级分片节点组根据所述第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流;
[0042]
数据分发模块,用于将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果。
[0043]
此外,为实现上述目的,本发明还提出一种数据流分片设备,所述数据流分片设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据流分片程序,所述数据流分片程序被所述处理器执行时实现如上所述的数据流分片方法的步骤。
[0044]
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据流分片程序,所述数据流分片程序执行时实现如上所述的数据流分片方法的步骤。
[0045]
本发明通过从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段;根据第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;再通过一级分片节点组及二级分片节点组根据第二分片字段及第三分片字段对待处理数据流进行多次分片,以获得多组第三节点数据流;将多组第三节点数据流分发至三级分片节点组,以获得数据流分片结果。由于对待处理数据流依据多种分片字段进行数据分片,可生成细粒度的分片数据流,可以降低后续处理过程中建模过程复杂度,减少计算开销,提高分析精确性。
附图说明
[0046]
图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;
[0047]
图2为本发明数据流分片方法第一实施例的流程示意图;
[0048]
图3为本发明数据流分片方法第二实施例的流程示意图;
[0049]
图4为本发明数据流分片方法第二实施例的数据分片流程示意图;
[0050]
图5为本发明数据流分片装置第一实施例的结构框图。
[0051]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0052]
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0053]
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据流分片设备结构示意图。
[0054]
如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,
通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0055]
本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0056]
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据流分片程序。
[0057]
在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在数据流分片设备中,所述电子设备通过处理器1001调用存储器1005中存储的数据流分片程序,并执行本发明实施例提供的数据流分片方法。
[0058]
本发明实施例提供了一种数据流分片方法,参照图2,图2为本发明一种数据流分片方法第一实施例的流程示意图。
[0059]
本实施例中,所述数据流分片方法包括以下步骤:
[0060]
步骤s10:从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段,所述预设分片字段集中包括应用协议、目标ip地址和源ip地址。
[0061]
需要说明的是,本实施例的执行主体可以是所述数据流分片设备,所述数据流分片设备可以是个人电脑、服务器或服务器集等电子设备,还可以为其他可实现相同或相似功能的设备,本实施例对此不加以限制,在本实施例及下述各实施例中,以数据流分片设备为例对本发明数据流分片方法进行说明。
[0062]
需要说明的是,预设分片字段集可以是由多个分片字段组合构建的集合,预设分片字段集可以由开发人员预先设置,分片字段可以是用于对数据流进行数据分片使用的字段,预设分片字段集中可以包括应用协议、目标ip地址及源ip地址等三种分片字段。
[0063]
可以理解的是,从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段可以是取出预设分片字段集中所有的分片字段,将取出的分片字段分别作为第一分片字段、第二分片字段及第三分片字段。
[0064]
步骤s20:根据所述第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流。
[0065]
需要说明的是,待处理数据流可以是由实时采集的用户访问各个业务服务时产生的访问数据构建的数据流,待处理数据流可以从开发人员预设设置的数据源进行获取,数据源可以为预设消息队列。其中,应用协议可以为用户访问业务服务时使用的网络协议,例如:http、ftp等,目标ip地址可以为用户访问各个业务服务时业务服务对应的服务器的ip地址,源ip地址可以为用户访问各个业务服务时的用户自身终端的ip地址。
[0066]
根据第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流可以是通过预设流处理框架将待处理数据流分片为第一分片字段不同的多组数据流,即可获得多组第一节点数据流。
[0067]
在实际使用中,预设流处理框架可以为storm框架,也可以是flink框架,也可以是其他具备相同或相似功能的框架,在本实施例中以storm框架进行说明。
[0068]
例如:假设第一分片字段为应用协议,预设流处理框架为storm框架,则可以利用storm框架的流分组功能,将流分组字段设置为“protocol”,则storm框架则可以将输入的待处理数据流根据应用协议的不同分为多组数据流,即多组第一节点数据流。
[0069]
步骤s30:通过一级分片节点组根据所述第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流。
[0070]
需要说明的是,一级分片节点组可以是由多个一级分片节点(bolt)组合构建的,其中,一级分片节点可以是基于与上述预设流处理框架相同框架创建的节点,各个一级分片节点可以仅处理第一分片字段对应的属性相同的数据流,例如:假设第一分片字段为应用协议,则一级分片节点a可以仅处理应用协议为http的数据流。
[0071]
可以理解的是,通过一级分片节点组根据第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流可以是将各组第一节点数据流分发至一级分片节点组中的各个一级分片节点,各个一级分片节点根据第二分片字段流设置流分组字段,将接收到的第一节点数据流进行数据分片,将第一节点数据流分片为多组第二分片字段不同的数据流,以获得多组第二节点数据流。
[0072]
其中,将各组第一节点数据流分发至一级分片节点组中的各个一级分片节点可以是根据各组第一节点数据流中第一分片字段对应的属性在一级分片节点组中查对应的一级分片节点,将第一节点数据流分发至对应的一级分片节点。
[0073]
步骤s40:通过二级分片节点组根据所述第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流。
[0074]
需要说明的是,二级分片节点组可以是由多个二级分片节点组合构建的,其中,二级分片节点可以是基于与上述预设流处理框架相同框架创建的节点,各个二级分片节点可以仅处理第一分片字段对应的属性及第二分片字段对应的属性均相同的数据流,例如:假设第一分片字段为应用协议,第二分片字段为目标ip地址,二级分片节点b仅处理应用协议为http且目标ip地址为c的数据流。
[0075]
可以理解的是,通过二级分片节点组根据第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流可以是将各组第一节点数据流分发至一级分片节点组中的各个二级分片节点,各个二级分片节点根据第三分片字段流设置流分组字段,将接收到的第二节点数据流进行数据分片,将第二节点数据流分片为多组第三分片字段不同的数据流,以获得多组第三节点数据流。
[0076]
其中,将各组第二节点数据流分发至二级分片节点组中的各个二级分片节点可以是根据各组第二节点数据流中第一分片字段对应的属性及第二分片字段对应的属性在二级分片节点组中查对应的二级分片节点,将第二节点数据流分发至对应的二级分片节点。
[0077]
步骤s50:将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果。
[0078]
需要说明的是,三级分片节点组可以是由多个三级分片节点组合构建的,其中,三级分片节点可以是基于与上述预设流处理框架相同框架创建的节点,各个三级分片节点可
以仅处理第一分片字段对应的属性、第二分片字段对应的属性及第三分片字段对应的属性均相同的数据流,例如:三级分片节点a可以仅处理应用协议为http、目标ip地址为b且源ip地址为c的数据流。
[0079]
在实际使用中,将多组第三节点数据流分发至三级分片节点组可以是根据各组第三节点数据流中第一分片字段对应的属性、第二分片字段对应的属性及第三分片字段对应的属性在三级分片节点组中查对应的三级分片节点,将第三节点数据流分发至对应的三级分片节点中。
[0080]
可以理解的是,三级分片节点在接收到对应的第三节点数据流时,其中接收到的第三节点数据流的第一分片字段对应的属性、第二分片字段对应的属性及第三分片字段对应的属性均应当一致,即接收到的第三节点数据流中的流数据的应用协议、目标ip地址及源ip地址均相同,而由于各数据流中本身可以具备具体的业务访问路径(业务url),即各个三级分片节点接收到的第三节点数据流本身可以是四元(应用协议、源ip地址、目标ip地址及业务url)切片数据流。
[0081]
可以理解的是,三级分片节点可以与数据分析层连接,可以将接收到的第三节点数据流传输至数据分析层中对应的数据分析节点,由此各个数据分析节点需要分析的数据为应用协议、目标ip地址及源ip地址均相同的数据,则数据分析节点因不必关注其他属性,进行数据分析时可以简化建模复杂度,节省计算开销,且可以针对某一目标ip地址进行分析,可以提高分析精准性。
[0082]
需要说明的是,若预设流处理框架为storm框架,而storm默认使用zookeeper注册中心作为协调者,storm框架的所有的状态信息都可以保存在zookeeper中,storm框架中的调度者nimbus可以通过在zookeeper上面写状态信息来分配任务,storm框架中守护进程supervisor及任务执行者task可以通过从zookeeper中读状态来领取任务,同时supervisor,task也可以定义发送心跳信息到zookeeper,使得nimbus可以监控整个storm集的状态,从而可以重启运行异常的task,保证任务的顺利执行。可以理解的是,若预设流处理框架为其他框架,依旧可以采用类似的方式进行状态、心跳监控,由此保证任务的顺利执行。
[0083]
本实施例通过从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段;根据第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;再通过一级分片节点组及二级分片节点组根据第二分片字段及第三分片字段对待处理数据流进行多次分片,以获得多组第三节点数据流;将多组第三节点数据流分发至三级分片节点组,以获得数据流分片结果。由于对待处理数据流依据多种分片字段进行数据分片,可生成细粒度的分片数据流,可以降低后续处理过程中建模过程复杂度,减少计算开销,提高分析精确性。
[0084]
参考图3,图3为本发明一种数据流分片方法第二实施例的流程示意图。
[0085]
基于上述第一实施例,本实施例数据流分片方法在所述步骤s10,包括:
[0086]
步骤s101:从预设字段集中取出应用协议、目标ip地址和源ip地址。
[0087]
可以理解的是,从预设字段集中取出应用协议、目标ip地址和原ip地址可以是对预设字段集进行遍历,从而获取应用协议、目标ip地址和原ip地址。
[0088]
步骤s102:将所述应用协议作为第一分片字段,将所述目标ip地址作为第二分片
字段,将所述源ip地址作为第三分片字段。
[0089]
需要说明的是,由于应用协议数量一般较少,数量可控,目标ip地址一般为业务服务器的ip地址,业务服务器的ip地址数量有限,容易获知,更改极少,就算更改也可快速知悉,但是源ip地址数量可能极为庞大,因此,将应用协议作为第一分片字段,将目标ip地址作为第二分片字段,将源ip地址作为第三分片字段,则在设置各级分片节点组时一级分片节点组及二级分片节点组的节点数量可控,可以降低系统构建的复杂性,也便于过滤数据流。
[0090]
需要说明的是,由于在不同时间访问业务服务的用户可能并不相同,即源ip地址并不相同,而三级分片节点组中各个三级分片节点可以仅处理第一分片字段对应的属性、第二分片字段对应的属性及第三分片字段对应的属性均相同的数据流,难以预先估量三级分片节点的数量,因此,可以在获取到各组第三节点数据流之后,统计各个二级分片节点输出的第三节点数据流对应的源ip枚举量,以获得源ip枚举总量,再创建数量与源ip枚举总量相等的三级分片节点。
[0091]
如图4所示,图4为将应用协议作为第一分片字段,目标ip地址作为第二分片字段,源ip地址作为第三分片字段时的数据分片流程示意图。
[0092]
图中,tcp stream为待处理数据流,stream grouping为预设流处理框架,以storm为例,http和ftp为两种应用协议,target ip为目标ip地址,source ip为源ip地址,tuple为storm中的元组,grouping bolt1为一级分片节点组,grouping bolt2为二级分片节点组,task为一级分片节点中的任务执行者,analyzing bolts为与数据分析层相连的三级分片节点组。
[0093]
进一步地,在统计到源ip枚举总量之后再创建与源ip枚举总量相同的三级分片节点,由于创建耗时,会导致大量延时,为了克服上述延时缺陷,本实施例步骤s10之前,还可以包括:
[0094]
获取预设三级节点数量及待处理数据流对应的应用协议枚举量与业务服务地址枚举量;根据所述应用协议枚举量创建一级分片节点组,根据所述应用协议枚举量及所述业务服务枚举量创建二级分片节点组,根据所述预设三级节点数量创建三级分片节点组。
[0095]
需要说明的是,为了保证三级分片节点数量充足,开发人员在预先设置预设三级节点数量时可以将预设三级节点数量设置的尽可能大,以避免需要分析的源ip数量过多导致三级分片节点不足报错。获取待处理数据流对应的应用协议枚举量与业务服务地址枚举量可以是获取待处理数据流对应的业务服务器所支持的应用协议种类,以获得应用协议枚举量,统计待处理数据流对应的业务服务器对应的目标ip地址数量,以获得业务服务地址枚举量。
[0096]
可以理解的是,根据应用协议枚举量创建一级分片节点组可以是根据创建于应用协议枚举量相同的一级分片节点,以构建一级分片节点组。根据应用协议枚举量及业务服务枚举量创建二级分片节点组可以是将应用协议枚举量与业务服务枚举量相乘,获得乘积,创建与乘积数量相同的二级分片节点,以构建二级分片节点组。根据预设三级节点数量创建三级分片节点组可以是创建于预设三级节点数量相同的三级分片节点,以构建三级分片节点组。
[0097]
在实际使用中,各级节点创建完毕之后,还可以将各级节点对应的节点拓扑配置
保存至预设节点注册中心,预设节点注册中心可以是zookeeper注册中心。
[0098]
进一步地,若每次进行数据分发均要根据第一分片字段对应的属性、第二分片字段对应的属性及第三分片字段对应的属性在三级分片节点组中查对应的三级分片节点会浪费大量的性能在查功能上,为了克服上述缺陷,降低该查性能的消耗,本实施例步骤s50之前,还可以包括:
[0099]
根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容;根据所述枚举数量及枚举内容确定节点拓扑配置。
[0100]
相应的,所述步骤s50,可以包括:
[0101]
根据所述节点拓扑配置将多组所述第三节点数据流分发至三级分片节点组。
[0102]
需要说明的是,节点拓扑配置中可以存储有应用协议、目标ip地址、源ip地址、三级分片节点的对应关系,根据多组第三节点数据流确定源ip地址的枚举数量及枚举内容可以是分别统计各组第三节点数据流中不同源ip地址的数量及内容,将所有统计得到的源ip地址的数量进行加和,以获得枚举数量,将所有统计得到的源ip地址的内容与第三节点数据流的应用协议及目标ip地址进行组合,以获得枚举内容。根据枚举数量及枚举内容确定节点拓扑配置可以是获取所有三级分片节点,将应用协议、目标ip地址及枚举内容进行排列组合,以获得组合结果,根据组合结果与所有三级分片节点生成节点拓扑配置。
[0103]
在实际使用中,节点拓扑配置可以保存至预设注册中心,所述预设注册中心可以为zookeeper集(zookeeper cluster),根据节点拓扑配置将多组第三节点数据流分发至三级分片节点组可以是预设注册中心基于节点拓扑配置根据各组第三节点数据流中第一分片字段对应的属性、第二分片字段对应的属性、第三分片字段对应的属性在三级分片节点组中查对应的三级分片节点,将第三节点数据流分发至对应的三级分片节点。
[0104]
进一步地,由于预设三级节点数量为了保证三级分片节点数量充足,设置的尽可能大,可能会出现大量三级分片节点空闲的现象,浪费了大量的资源,为了克服上述缺陷,本实施例上述根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容步骤之前,还可以包括:
[0105]
获取当前运行时序,将所述当前运行时序与预设时序阈值进行比较;在所述当前运行时序大于预设时序阈值时,获取前次时序对应的源ip地址枚举数量及预测三级节点数量;根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量。
[0106]
需要说明的是,时序可以是依据运行时长与预设间隔时长确定的,例如:将预设间隔时长设置为10分钟,则运行时长小于或等于十分钟时当前运行时序为1,当运行时长大于10分钟小于或等于20分钟时,则当前运行时序为2,依次类推。若预设流处理框架为storm框架,则时序还可以由storm自身的元组(tuple)分组机制进行确定,第一个tuple分组数据流处理过程中时序为1,第二个tuple分组数据流处理过程中时序为2,依次类推。
[0107]
需要说明的是,预设时序阈值可以根据实际情况设置,预设时序阈值为正整数,如:将预设时序阈值设置为3。前次时序可以为上一次时序。
[0108]
可以理解的是,由于用户访问业务服务的趋势除少数特殊场景或特殊原因外,极少会大量变化,即根据前次时序的源ip地址枚举数量可以推测当前运行时序中可能需要的
三级分片节点的数量。在当前运行时序大于预设时序阈值时可以确定当前数据流分片程序已经平稳运行较长时间,因此,可以根据前次时序推测当前运行时序需要的三级分片节点的数量,此时可以获取前次时序的源ip地址枚举数量及预测三级节点数量,根据前次时序的源ip地址枚举数量及预测三级节点数量推测当前运行时序的所需三级分片节点的数量,即预测三级节点数量,再根据预测三级节点数量增加或减少三级分片节点组中三级分片节点的数量。
[0109]
在实际使用中,根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量可以是通过指数平滑公式根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;
[0110]
所述指数平滑公式为:
[0111]yt+1
'=a*y
t
+(1-a)y
t
'
[0112]
式中,y
t+1
'为当前运行时序对应的预测三级节点数量;y
t
前次时序对应的源ip地址枚举数量;y
t
'为前次时序对应的预测三级节点数量;a为平滑常数,取值范围为[0,1]。
[0113]
在实际使用中,可以记录每次时序中真实统计的源ip地址枚举数量,且除当前运行时序为1的情况,均可利用指数平滑公式计算一次预测三级节点数量,将源ip地址枚举数量及预测三级节点数量保存至预设缓存数组中,以便于在当前运行时序大于预设时序阈值时获取前次时序对应的源ip地址枚举数量及预测三级节点数量。
[0114]
进一步地,由于根据前次时序对应的源ip地址枚举数量及预测三级节点数量确定当前运行时序对应的预测三级节点数量可能出现预测结果不准导致预测三级节点数量小于实际需要的三级分片节点的数量,为了克服上述缺陷,本实施例所述根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量的步骤之前,还可以包括:
[0115]
获取预测容错值;
[0116]
相应的,所述根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量的步骤,可以包括:
[0117]
根据所述当前运行时序对应的预测三级节点数量及所述预测容错值调整所述三级分片节点组中三级分片节点的数量。
[0118]
需要说明的是,预测容错值可以根据实际需要进行设置,根据当前运行时序对应的预测三级节点数量及预测容错值调整三级分片节点组中三级分片节点的数量可以是将当前运行时序对应的预测三级节点数量与预测容错值相加,以获得容错预测节点数量,根据容错预测节点数量增加或减少三级分片节点组中三级分片节点的数量。
[0119]
可以理解的是,在预测三级节点数量基础上增加一定的预测容错值,可以避免因预测不准导致三级分片节点不足而报错的情况。
[0120]
本实施例通过从预设字段集中取出应用协议、目标ip地址和源ip地址;将所述应用协议作为第一分片字段,将所述目标ip地址作为第二分片字段,将所述源ip地址作为第三分片字段。由于应用协议数量可控,目标ip地址一般为业务服务器的ip地址,业务服务器的ip地址数量有限,容易获知,但是源ip地址数量可能极为庞大,因此,先依据应用协议进行第一次数据分片,再根据目标ip地址进行第二次数据分片,最后再根据源ip地址进行数
据分片,使得在设置各级分片节点组时一级分片节点组及二级分片节点组的节点数量可控,降低系统构建的复杂性,也便于过滤数据流。
[0121]
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据流分片程序,所述数据流分片程序被处理器执行时实现如上文所述的数据流分片方法的步骤。
[0122]
参照图5,图5为本发明数据流分片装置第一实施例的结构框图。
[0123]
如图5所示,本发明实施例提出的数据流分片装置包括:
[0124]
字段确定模块501,用于从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段,所述预设分片字段集中包括应用协议、目标ip地址和源ip地址;
[0125]
一级分片模块502,用于根据所述第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;
[0126]
二级分片模块503,用于通过一级分片节点组根据所述第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流;
[0127]
三级分片模块504,用于通过二级分片节点组根据所述第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流;
[0128]
数据分发模块505,用于将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果。
[0129]
本实施例通过从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段;根据第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;再通过一级分片节点组及二级分片节点组根据第二分片字段及第三分片字段对待处理数据流进行多次分片,以获得多组第三节点数据流;将多组第三节点数据流分发至三级分片节点组,以获得数据流分片结果。由于对待处理数据流依据多种分片字段进行数据分片,可生成细粒度的分片数据流,可以降低后续处理过程中建模过程复杂度,减少计算开销,提高分析精确性。
[0130]
进一步地,所述字段确定模块401,还用于从预设字段集中取出应用协议、目标ip地址和源ip地址;将所述应用协议作为第一分片字段,将所述目标ip地址作为第二分片字段,将所述源ip地址作为第三分片字段。
[0131]
进一步地,所述字段确定模块401,还用于获取预设三级节点数量及待处理数据流对应的应用协议枚举量与业务服务地址枚举量;
[0132]
根据所述应用协议枚举量创建一级分片节点组,根据所述应用协议枚举量及所述业务服务枚举量创建二级分片节点组,根据所述预设三级节点数量创建三级分片节点组。
[0133]
进一步地,所述数据分发模块405,还用于根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容;根据所述枚举数量及枚举内容确定节点拓扑配置;
[0134]
所述数据分发模块405,还用于根据所述节点拓扑配置将多组所述第三节点数据流分发至三级分片节点组。
[0135]
进一步地,所述数据分发模块405,还用于获取当前运行时序,将所述当前运行时序与预设时序阈值进行比较;在所述当前运行时序大于预设时序阈值时,获取前次时序对应的源ip地址枚举数量及预测三级节点数量;根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量。
[0136]
进一步地,所述数据分发模块405,还用于通过指数平滑公式根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;
[0137]
所述指数平滑公式为:
[0138]yt+1
'=a*y
t
+(1-a)y
t
'
[0139]
式中,y
t+1
'为当前运行时序对应的预测三级节点数量;y
t
前次时序对应的源ip地址枚举数量;y
t
'为前次时序对应的预测三级节点数量;a为平滑常数,取值范围为[0,1]。
[0140]
进一步地,所述数据分发模块405,还用于获取预测容错值;
[0141]
所述数据分发模块405,还用于根据所述当前运行时序对应的预测三级节点数量及所述预测容错值调整所述三级分片节点组中三级分片节点的数量。
[0142]
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
[0143]
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
[0144]
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据流分片方法,此处不再赘述。
[0145]
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0146]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0147]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0148]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:


1.一种数据流分片方法,其特征在于,所述数据流分片方法包括以下步骤:从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段,所述预设分片字段集中包括应用协议、目标ip地址和源ip地址;根据所述第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;通过一级分片节点组根据所述第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流;通过二级分片节点组根据所述第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流;将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果。2.如权利要求1所述的数据流分片方法,其特征在于,所述从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段的步骤,包括:从预设字段集中取出应用协议、目标ip地址和源ip地址;将所述应用协议作为第一分片字段,将所述目标ip地址作为第二分片字段,将所述源ip地址作为第三分片字段。3.如权利要求2所述的数据流分片方法,其特征在于,所述从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段的步骤之前,还包括:获取预设三级节点数量及待处理数据流对应的应用协议枚举量与业务服务地址枚举量;根据所述应用协议枚举量创建一级分片节点组,根据所述应用协议枚举量及所述业务服务枚举量创建二级分片节点组,根据所述预设三级节点数量创建三级分片节点组。4.如权利要求2所述的数据流分片方法,其特征在于,所述将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果的步骤之前,还包括:根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容;根据所述枚举数量及枚举内容确定节点拓扑配置;相应的,所述将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果的步骤,包括:根据所述节点拓扑配置将多组所述第三节点数据流分发至三级分片节点组。5.如权利要求4所述的数据流分片方法,其特征在于,所述根据多组所述第三节点数据流确定源ip地址的枚举数量及枚举内容的步骤之前,还包括:获取当前运行时序,将所述当前运行时序与预设时序阈值进行比较;在所述当前运行时序大于预设时序阈值时,获取前次时序对应的源ip地址枚举数量及预测三级节点数量;根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量。6.如权利要求5所述的数据流分片方法,其特征在于,所述根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量的步骤,包括:
通过指数平滑公式根据所述前次时序对应的源ip地址枚举数量及预测三级节点数量确定所述当前运行时序对应的预测三级节点数量;所述指数平滑公式为:y
t+1
'=a*y
t
+(1-a)y
t
'式中,y
t+1
'为当前运行时序对应的预测三级节点数量;y
t
前次时序对应的源ip地址枚举数量;y
t
'为前次时序对应的预测三级节点数量;a为平滑常数,取值范围为[0,1]。7.如权利要求5所述的数据流分片方法,其特征在于,所述根据所述当前运行时序对应的预测三级节点数量调整所述三级分片节点组中三级分片节点的数量的步骤之前,还包括:获取预测容错值;相应的,所述根据所述预测三级节点数量调整所述三级分片节点组中三级分片节点的数量的步骤,包括:根据所述当前运行时序对应的预测三级节点数量及所述预测容错值调整所述三级分片节点组中三级分片节点的数量。8.一种数据流分片装置,其特征在于,所述数据流分片装置包括以下模块:字段确定模块,用于从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段,所述预设分片字段集中包括应用协议、目标ip地址和源ip地址;一级分片模块,用于根据所述第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;二级分片模块,用于通过一级分片节点组根据所述第二分片字段对各组第一节点数据流分别进行数据分片,以获得多组第二节点数据流;三级分片模块,用于通过二级分片节点组根据所述第三分片字段对各组第二节点数据流分别进行数据分片,以获得多组第三节点数据流;数据分发模块,用于将多组所述第三节点数据流分发至三级分片节点组,以获得数据流分片结果。9.一种数据流分片设备,其特征在于,所述数据流分片设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据流分片程序,所述数据流分片程序被所述处理器执行时实现如权利要求1-7中任一项所述的数据流分片方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据流分片程序,所述数据流分片程序执行时实现如权利要求1-7中任一项所述的数据流分片方法的步骤。

技术总结


本发明属于大数据技术领域,公开了一种数据流分片方法、装置、设备及存储介质。本发明通过从预设分片字段集中取出第一分片字段、第二分片字段和第三分片字段;根据第一分片字段对待处理数据流进行数据分片,以获得多组第一节点数据流;再通过一级分片节点组及二级分片节点组根据第二分片字段及第三分片字段对待处理数据流进行多次分片,以获得多组第三节点数据流;将多组第三节点数据流分发至三级分片节点组,以获得数据流分片结果。由于对待处理数据流依据多种分片字段进行数据分片,可生成细粒度的分片数据流,可以降低后续处理过程中建模过程复杂度,减少计算开销,提高分析精确性。提高分析精确性。提高分析精确性。


技术研发人员:

江为强

受保护的技术使用者:

中国移动通信集团有限公司

技术研发日:

2021.05.19

技术公布日:

2022/11/24

本文发布于:2024-09-20 13:51:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/3361.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   分片   数据流   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议