CN103560921B - 一种网络流数据的归并方法 - Google Patents
一种网络流数据的归并方法 Download PDFInfo
- Publication number
- CN103560921B CN103560921B CN201310581417.7A CN201310581417A CN103560921B CN 103560921 B CN103560921 B CN 103560921B CN 201310581417 A CN201310581417 A CN 201310581417A CN 103560921 B CN103560921 B CN 103560921B
- Authority
- CN
- China
- Prior art keywords
- merger
- file
- merging
- time
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种网络流数据的归并方法。本方法为:1)设置归并业务,并为每一归并业务设置相应的归并指标及归并项,设置N级时间粒度;2)利用归并器对每一业务的网络流数据按时间粒度分别进行归并处理;其中:对实时网络流数据,按归并业务分别进行最小归并时间粒度的归并处理,若达到完成时间则进行下一最小时间粒度的数据归并,并将当前归并结果文件存入指定位置;对于第n级时间粒度归并后的归并结果文件,检查当前时刻是否需要对各归并业务进行第n+1级时间粒度的数据归并处理,如果需要,则读取归并业务的第n级时间粒度归并结果文件进行数据归并处理,并将归并结果文件缓存到内存或外存中。本发明灵活性强,提高了归并效率与准确性。
Description
技术领域
本发明涉及计算机网络领域,尤其涉及一种网络管理领域网络流数据的归并方法。
背景技术
随着互联网技术的高速发展,Internet日益广泛的应用,网络管理也具有越来越重要的作用,几乎所有的网络管理都离不开对网络流量的测量和分析,网络流的测量和分析不但可以为网络管理者提供管理网络的依据,也可以为科研工作人员提供研究网络性能的依据。目前网络流测量主要采用被动的方式,如基于流量端口镜像方式,分光方式或者探针方式的网络流量数据采集分析;基于Netflow、sflow、Cflow等数据的网络流测量分析。这些方式都是根据一定的规则例如四元组等,将网络中具有相同规则的数据包组织成一条网络流记录,并将其以特定的方式发送给测量端,测量端根据不同的测量指标(如国家,机构,主机等)对收到的网络流进行相应的归并处理和统计分析等。所谓网络流归并是指将一个时间段内(如5分钟,一小时,一天等)所有测量指标完全相同或者指定的测量指标相同的网络流归并到一起,例如将其字节数,包数等需要归并的项累加起来。
随着互联网用户以及应用的急剧膨胀,网络上传输的数据量也越来越大,相应的网络流数据量也会急剧增长,而且随着各种测量指标的增多,网络流进行归并处理后产生的数据也会越来越大,这对测量端处理机的处理能力(如内存大小)是巨大的挑战,这也限制了在内存中只能进行数据量小的细时间粒度的网络流数据归并(如5分钟流量数据)。然而细时间粒度的流归并数据用于粗时间粒度的查询时,检索速度太慢,因此仍然需要进行粗时间粒度的网络流数据归并,而粗时间粒度的流量数据归并由于需要的计算资源比较大一般都是通过间接的流量归并方式才能得到,需要要借助到外存等手段。
在实际应用中,对网络流数据归并的效率和速度性能有比较高的要求,尤其在网管系统这类对实时性要求比较高的应用中更甚。影响网络流归并效率的因素众多,例如归并任务的触发方式将影响到数据入库的及时性和归并结果的准确性,然而目前普遍采用的是定时任务的触发方式,这种方式灵活性不够好,例如五分钟数据归并一小时数据时,理论上应该在每个整点开始时进行归并,实际中可能整点时需要归并的最后一份五分钟数据并没有准备好,因此需要延迟一段时间,但是需要延长的时间跟实际情况有关,过多过少都会有相应的问题产生。
综上所述网络流量归并需要解决的问题:如何找到一个比较好的归并触发方式代替定时任务这样的方式,使归并更灵活。
发明内容
本发明方法提供一种网络流数据的归并方法,能够解决上述问题,实现网络流不同时间粒度的高效归并。
本发明的技术方案为:
一种网络流数据的归并方法,其步骤为:
1)设置归并业务,并为每一归并业务设置相应的归并指标以及归并项,设置从小到大N级时间粒度;N为大于1的整数;
2)利用归并器对每一归并业务的网络流数据按时间粒度分别进行归并处理;其中:对实时网络流数据,按归并业务分别进行最小归并时间粒度的归并处理,并不断检查当前阶段的最小时间粒度归并处理是否达到完成时间;若达到完成时间则进行下一最小时间粒度的实时网络流数据归并,并将各个归并业务的当前归并结果文件存入指定位置;对于已进行第n级时间粒度归并后的归并结果文件,检查当前时刻是否需要对各个归并业务进行第n+1级时间粒度的数据归并处理,如果需要,则读取归并业务的第n级时间粒度归并结果文件进行第n+1级时间粒度的数据归并处理,并将归并结果文件缓存到内存或外存中,1≤n﹤N。
进一步的,每一归并业务设有N级归并器,其中第n级归并器进行第n级时间粒度归并处理;对于需要暂存在内存中的归并结果文件,将其内存数据地址加入到相关文件链表A中,并给链表项增加一个时间戳字段;对于需要暂存在外存中的归并结果文件,将其输出到指定的外存文件中,并为归并结果文件的文件名增加一个时间戳后缀;每次归并生成第n级时间粒度的归并结果文件后,第n级归并器将进行第n+1级时间粒度的归并结果文件时间戳标记写入到一消息通知文件中供第n+1级归并器查询;第n+1级归并器将消息通知文件中的时间戳与当前时刻进行比较,确定是否需要对各个归并业务进行第n+1级时间粒度的数据归并处理。
进一步的,第n+1级归并器对第n级时间粒度归并结果文件进行第n+1级时间粒度的数据归并处理的方法为:
(a)根据第n级时间粒度归并结果文件的存储位置,扫描外存中的归并文件目录或者文件链表A并对扫描结果按时间顺序进行排序,若扫描结果不为空,则进行步骤(b);
(b)比较扫描到的待归并结果文件的时间戳Tf与当前阶段系统时间戳T,若Tf与T相同,则不进行归并处理;否则设Tf为第一次扫描到的与当前系统时间戳T不相同的文件时间戳,新建一归并文件链表B,并将对应的文件加入到归并文件链表B中,进行步骤(c);
(c)继续扫描归并文件目录或者文件链表A,将文件时间戳与Tf满足指定关系的所有文件加入到该归并文件链表B中,进行步骤(d);
(d)比较Tf与当前系统时间T减去一n级时间粒度长度的时间戳T′,若Tf与T′相同,则进行步骤(e);若Tf早于T′,则直接对文件链表B中的归并结果文件进行归并处理;
(e)检查相应的消息通知文件确定待归并结果文件是否准备好,若所有待归并结果文件已经准备好则进行归并处理,否则继续等待并不断检查消息通知文件。
进一步的,步骤2)之前,首先对每一种归并业务的归并指标进行排序,以排序次序作为归并时进行指标比较的次序进行归并处理,并定期更新指标次序。
进一步的,对归并指标进行排序的方法为:对一归并业务中的每一归并指标,根据该归并指标的历史数据计算该归并指标的信息熵,归并指标的信息熵越大,其排序越靠前。
进一步的,根据公式计算所述信息熵;其中,m为归并业务的归并指标个数,Mi′为第i个归并指标在历史样本数据中不同取值的个数,pij为第i个归并指标第j种取值的概率,Hi为第i个归并指标的信息熵。
进一步的,估计各个归并业务不同时间粒度的归并结果数据的空间复杂度,根据估计的空间复杂度确定需要进行更高级别归并处理的归并结果数据缓存在内存中还是外存中。
进一步的,估计所述空间复杂度O(t)的方法为:O(t)=C*B*M1*M2*…*Mm;其中,C为系数,m为归并业务具有的归并指标个数,Mi为第i个归并指标的不同取值个数的理论值,i=1,2…m,B为归并业务每条记录占用的最大空间。
进一步的,根据估计的所述空间复杂度O(t)、归并处理服务器内存所允许暂存的单个文件大小最大值X以及归并服务器不同时间粒度范围内所处理的流最大条数Fn确定需要进行更高级别归并处理的归并结果数据缓存在内存中还是外存中,其方法为:初始系数C为1,比较O(t)与X的大小,若O(t)小于等于X,则将对应的归并结果暂存在内存中;否则调整系数C的取值为C=Fn/M1*M2*…*Mm,然后再比较O(t)与X的大小,若O(t)小于等于X,则将对应的归并结果暂存在内存中,否则将对应的归并结果暂存在外存中。
进一步的,对实时网络流数据,按归并业务分别进行最小归并时间粒度的归并处理的方法为:将实时网络流数据中各个归并指标值以字符串的形式拼接起来作为关键字,并通过hash定位到一hash单元,若该hash单元是首次接收到该实时网络流数据,则将其关联到该hash单元,否则按归并指标比较次序与该hash单元中的记录进行具体归并指标的比较,若全部指标相同则对归并项进行归并,若有指标值不相同,则通过设定的hash冲突解决方法定位到下一个hash单元中在进行比较,直到完成归并。
根据本发明的实施例,本发明的技术特征有:
1.根据本发明实施例,本发明提供一种流量归并的方法,包括以下步骤:
步骤a,根据实际需求设置归并业务(如按内部主机,外部主机,国家,机构,会话,链路,数据包尺寸等),并为各个归并业务定义相应的归并指标以及归并项;确定归并的时间粒度级别N,设最小时间粒度为第一级别时间粒度;
步骤b,利用给定的归并指标权重排序算法对每一种归并业务的归并指标进行权重排序,以排序次序作为归并时进行指标比较的次序;并定期更新指标次序;
步骤c,依据给定的归并结果数据空间复杂度估计方法估算各个归并业务不同时间粒度归并结果的数据空间复杂度,根据估计的空间复杂度以及其他需要考虑的因素(如内存空间大小,归并服务器的稳定性等)以确定需要进行更高级别归并处理的归并结果数据需要暂存在内存中还是外存中;
步骤d,启动N级归并处理器,对网络流数据按各个归并业务以及时间粒度分别进行归并处理;对于实时网络流数据按照步骤e进行处理,其他数据(即已进行某级时间粒度归并后的数据)归并按照步骤f进行处理;
步骤e,对实时网络流数据按各个归并业务分别进行最小时间粒度的归并处理,并不断检查当前阶段的最小时间粒度归并处理是否达到完成时间;若达到完成时间则对归并结果数据记录进行排序(如按记录字段值的字典序方式)后转步骤h进行处理,同时进行下一个最小时间粒度的实时网络流数据归并;
步骤f,根据设定的粗时间粒度归并触发策略不断检查当前时刻是否需要对各个归并业务进行第n(1﹤n≤N)级别粗时间粒度的数据归并处理;若需要进行归并处理转步骤g;
步骤g,根据步骤c中确定的规则,若待归并的数据保存在内存中,则直接在内存中进行第n级别粗时间粒度数据归并处理,若其待归并数据保存在外存中,则从外存中读入数据到内存中,再进行数据的归并处理;完成归并处理后转步骤h;
步骤h,将各个归并业务的当前归并结果文件存入指定位置;若归并结果数据需要进行更高级别的归并处理,则根据步骤c中确定的规则,需要暂存在内存中的数据将其内存数据地址加入到相关链表中,需要暂存在外存中的数据将其输出到指定的外存文件中,为了便于下一步的归并操作,为暂存文件增加一个其归并时间戳标记,若文件暂存于内存中,则给链表项增加一个时间戳字段,若暂存于外存中,则为文件名增加一个时间戳后缀,并修改对应消息通知文件中的时间戳记录,同时释放占用的内存空间;若不需要继续进行归并,则直接释放内存空间;
2.进一步在步骤a中,本发明设置的归并业务其特征在于包括有:
(1)链路归并,其归并指标包括IP版本,链路ID,应用类型ID,传输层协议ID;
(2)内部主机归并,其归并指标包括IP版本,链路ID,内部主机IP,应用类型ID,传输层协议ID,机构ID,机构类型ID,国家,AS号;
(3)外部主机归并,其归并指标包括IP版本,链路ID,外部主机IP,应用类型ID,传输层协议ID,机构ID,机构类型ID,国家,AS号;
(4)国家归并,其归并指标包括IP版本,链路ID,应用类型ID,源国家,目的国家,传输层协议ID;
(5)机构归并,其归并指标包括IP版本,链路ID,应用类型ID,传输层协议ID,源机构ID,源机构类型ID,目的机构ID,目的机构类型ID,源国家,目的国家,源AS号,目的AS号;
(6)会话归并,其归并指标包括IP版本,链路ID,源主机IP,目的主机IP,应用类型ID,传输层协议ID,源端口,目的端口,源机构ID,源机构类型ID,目的机构ID,目的机构类型ID,源国家,目的国家,源AS号,目的AS号;
(7)数据包尺寸归并,其归并指标包括IP版本,链路ID,包尺寸;数据包尺寸机构归并,其归并指标包括IP版本,链路ID,包尺寸,机构ID,机构类型ID;
本发明中所有归并业务的归并项均为上行流量字节数,上行流量包数,下行流量字节数,下行流量包数;设置的归并时间粒度级别N为5,N=1:5分钟时间粒度归并,N=2:一小时时间粒度归并,N=3:一天时间粒度归并,N=4:一周时间粒度归并,N=5:一月时间粒度归并;
3.更进一步,本发明中设置的不同时间粒度级别的归并之间的关系为:由实时流数据归并生成5分钟粒度数据;由5分钟时间粒度归并数据生成1小时粒度归并数据;由1小时粒度归并数据生成1天粒度归并数据;由1天粒度归并数据生成1周粒度归并数据与1月粒度归并数据;
4.步骤b中,归并指标权重排序算法其特征在于,以某个归并业务的各个归并指标的信息熵来衡量该归并指标在进行归并比较操作时的优先级,归并指标的信息熵越大代表其取值的不确定性越大,因此在归并比较时具有更大的价值;该算法的具体实施方式为,对于每一类归并业务,离线处理程序根据最近的历史数据计算其每一个归并指标的信息熵,然后将归并指标按信息熵大小进行排序,将结果保存到配置文件,并定期根据样本数据重新对指标排序,同步更新到配置文件,信息熵的计算按照如下公式:
其中m为对应的归并业务的归并指标个数,Mi′为第i个归并指标在样本数据中不同取值的个数,可以通过遍历样本数据统计得到,pij为第i个归并指标第j种取值的概率(假设样本数据总共有n条记录,第i个归并指标第j种取值的样本记录有n1条,则pij=n1/n),Hi为第i个指标的信息熵;
5.步骤c中,归并结果数据空间复杂度估计方法其特征在于是根据其各个归并指标取值的空间范围计算的,理论上归并结果数据所占用的空间跟处理的流的数量多少没有直接关系,而跟其不同指标组合后可能的取值记录数量相关,因此可以事先通过分析每种归并业务归并指标的取值范围计算出该归并业务的空间复杂度,但是实际中在不同的时间范围内归并后的流记录条数跟其所处理的流的条数相关,其上限值便是所处理的流条数,设归并业务A具有m个归并指标,每个归并指标的理论值为Mi(i=1,2…m)种(Mi的取值为i归并指标理论上不同取值的个数),归并业务A每条记录占用空间大小最大为B,则归并业务A的空间复杂度为O(t)=C*B*M1*M2*…*Mm(C为系数),并设归并处理服务器内存所允许暂存的单个文件大小最大为X(X的取值需要结合实际处理机的内存大小以及所处理的归并文件的多少),不同时间粒度范围内所处理的流最大条数Fn(n表示不同的时间粒度),在本发明中归并结果数据空间复杂度估计方法如下:
(a)初始系数C为1,比较O(t)与X的大小,若O(t)小于等于X,则转(c)处理,否则转(b)处理;
(b)调整系数C的取值为C=Fn/M1*M2*…*Mm,然后再比较O(t)与X的大小,若O(t)小于等于X,则转(c)处理,否则转(d)处理;
(c)将对应的归并结果文件设定为暂存在内存中;
(d)将对应的归并结果文件设定为暂存在外存中;
6.更进一步在步骤c中,确定归并结果数据需要暂存在内存中还是外存中还需要考虑其它一些因素,如所用归并处理服务器的内存大小,服务器的稳定性(长期处理大量数据导致的宕机或者死机频率等),系统维护以及电源是否会用中断供电等其他外界因素,为了尽可能兼顾数据的安全性以及归并处理的效率,确定如下的例外规则:对于存储在内存中的天时间粒度的归并结果数据,同时需要在外存中保存副本,由于该时间粒度的文件主要用于周粒度和月粒度的数据归并,需要存储周期比较长,因此为了避免系统故障等造成的数据丢失,需要保存在外存中;
7.步骤e中,实时网络流数据最小时间粒度的归并处理其特征在于,采用的是Hash的方式,将接收到的网络流数据记录各个归并指标值以字符串的形式拼接起来作为关键字,并通过Hash定位到某个Hash单元,若该hash单元是首次接收到该网络流数据记录则将网络流数据记录分配到该Hash单元,否则按步骤b给定的归并指标次序与当前hash单元中的记录进行具体归并指标的比较,若全部指标相同则对归并项进行归并,若有指标值不相同,则通过给定的hash冲突解决方法定位到下一个hash单元中在进行比较,依次下去,直到完成归并;本发明中hash冲突解决方法采用的是线性探测方法;
8.步骤e中,本发明中检查当前5分钟阶段内的最小时间粒度归并处理是否结束实施方式:
(a)设置时间跨度S为300(由于获取到的系统时间是用秒来表示的,因此本发明中用秒代替分钟来计数);
(b)启动5分钟时间粒度归并处理器,并设置当前开始时间(T为获取系统当前时间);
(c)不断的查询系统时间T,并判断与Ts的关系;若T-Ts>300,则表示当前5分钟阶段的归并的时间到了,需要归并结果数据做下一步处理,同时设置Ts=Ts+300;
9.步骤f中,粗时间粒度归并触发策略其特征在于,通过检查文件时间戳和消息通知机制的方式实现;文件时间戳检查方式首先不断的扫描归并文件目录或者链表,若扫描结果不为空则比较扫描到的文件时间戳标记与当前系统时间戳,若两者的时间戳不同,则表示扫描到的文件是可以归并的文件,并将扫描到的具有相同时间戳标记的文件组织起来,然后进行归并处理。然而文件时间戳检查方式无法判断当前需要归并的文件数据是否都已准备好,例如以5分钟数据归并一小时数据为例,正常情况下,在每个整点开始的时候归并处理器开始归并扫描到的前一阶段的文件,但是此时前一阶段的最后一个5分钟数据有可能还没有写到外存中或者文件内存地址还没有加入到相关链表中,因此会导致最后一个5分钟数据没有被归并;消息通知机制是指每次归并生成第n级时间粒度第m阶段的归并文件后将其第m+1阶段的归并文件时间戳标记写入到相应消息通知文件中,供第n+1级时间粒度归并器在归并时检查所需文件是否都已准备好,写入的时间戳标记可以只是归并粒度级别上的时间戳标记,例如对于5分钟数据归并,每生成一个5分钟粒度归并文件,便将其下一阶段的5分钟粒度归并文件的时间戳写入到对应消息通知文件,假设当前生成的文件时某小时第0分钟到第5分钟的数据,其5分钟粒度的时间戳标记为5,因此对应下一阶段的5分钟粒度的时间戳标记为10,在实际操作中只需将10写入到相应的消息通知文件中即可;本发明中粗时间粒度归并触发策略具体实施方式为:
(a)扫描归并文件目录或者文件链表A,若扫描结果不为空(对于文件目录将扫描结果按时间顺序由旧到新进行排序),然后转(b);
(b)比较扫描到的待归并文件时间戳Tf与当前阶段系统时间戳T,若Tf与T相同,则不进行归并处理;否则新建归并文件链表B并将Tf对应的文件加入到归并文件链表B(若扫描的为文件链表,还需将原链表中的文件项删除);转(c);
(c)继续扫描文件目录或者文件链表,将文件时间戳Tf在其归并时间粒度级别上一致的所有文件加入到归并文件链表B中,并转(d);
(d)比较Tf与当前阶段T减去一n级时间粒度长度的时间戳T′,若Tf与T′相同,转(e);否则若Tf早于T′,表示该文件不需检查消息通知文件直接进行归并处理;
(e)检查相应的消息通知文件,若所有待归并文件已经准备好则进行归并处理,否则继续等待并不断检查消息通知文件。
10.步骤g中,归并处理采取对归并文件进行两两归并的处理方式,由于所有文件中的记录都是按记录字段值的字典序方式已经排好序的,因此归并处理时只需从每个文件中逐一读取记录,然后比较归并,实施方式如下:
(a)根据步骤f中的粗时间粒度归并触发策略,得到归并文件链表B,设归并文件链表{f1,f2,…},从链表头开始逐个两两归并链表中文件fi、fj;归并结束条件为归并链表B链表项只剩一项为止。
(b)若文件fi、fj存储在内存中,则开辟用于保存归并结果的内存空间,然后按照(d)中方法归并fi、fj,归并完成后从链表中删除fi、fj并释放占用内存空间,同时将归并结果文件的内存地址加入到归并文件链表B中。
(c)若文件fi、fj存储在外存,则在外存中新建用于保存归并结果的文件,然后按照(d)中方法归并fi、fj,归并完成后从链表中删除fi、fj并删除外存文件,同时将归并结果文件的加入到归并文件链表B中。
(d)两两归并的具体操作:设归并文件fi,fj,R1记录读取自fi,R2记录读取自fj,按照步骤b中确定的归并指标比较次序比较R1与R2的归并指标,若全部一致,则对归并项归并并将归并后记录写入到归并结果文件中,然后再次从从fi文件中读取一条记录到R1,从fj文件中再读取一条记录到R2;否则中断比较并返回当前归并指标的比较结果,假设R1是两记录中的较小者,将R1写入到归并结果文件中,同时从fi文件中再此读取一条记录到R1;直到文件fi与fj结束为止。
与现有技术相比,本发明的积极效果为:
第一,目前普遍采用网络流归并触发方式是定时任务形式的触发方式,这种方式灵活性不够好,影响到数据入库的及时性和归并结果的准确性。本发明中归并触发方式采用通过检查文件时间戳和消息通知机制来实现,通过检查文件时间戳方式保证及时的发现需要归并的文件,通过消息通知机制保证所有归并文件都已准备好;因此本发明归并触发方式具有很好的灵活性,兼具最大限度的提升归并效率的同时又能保证归并结果的准确性。
第二,一般参与流量归并的指标数量直接影响到归并的效率,因为归并时需要比较相同指标的值是否一致,所以指标越多归并时需要的计算量越大,归并时间越多;最理想的情况是对于不同的两条记录能以最少的比较次数区分出来,因此需要对归并指标按区分性大小依次进行比较。本发明中利用信息熵来衡量不同归并指标的区分度,并将其按信息熵进行排序作为归并时指标比较的次序,很大程度上减少了归并指标比较的次数,有效的提升了归并效率,同时定期的更新指标排序,也保证了指标次序的时效性,。
第三,一般网络流归并过程中是否有大量的外存I/O操作也直接影响到归并效率,越多的外存I/O,系统开销越大,因此效率越低,然而在实际中所使用的服务器的内存大小都是有限的,而且有些需要归并的文件有往往很大,全部缓存在内存必然会导致内存不足的问题;因此最理想的情况就是最大化的利用内存作为归并文件的缓存,同时又不会因内存不足等因素造成系统性能下降。本发明提出根据估计的所述空间复杂度O(t)以及归并处理服务器内存所允许暂存的单个文件最大值X确定需要进行更高级别归并处理的归并结果数据缓存在内存中还是外存中,既大大提升了网络流归并的时间效率,又合理的利用了资源。
附图说明
附图1为本发明网络流归并处理流程的示例图;
附图2为本发明不同时间粒度级别的归并之间的关系示意图;
附图3为本发明不同归并业务串行归并次序示意图。
具体实施方式
下面将结合本发明实施例以及附图,对本发明做进一步的描述。
本发明实施例中归并服务器同时独立地归并处理N个网络探针发送的网络流数据,简单起见以下将结合图1,图2以及图3,以实施例中所处理的其中一个探针网络流数据的内部主机归并业务1小时时间粒度、1天时间粒度的归并为例,详细描述本发明网络流数据的归并(本发明设置的其他归并业务的归并与内部主机归并业务的归并相同,以下不再做描述)。
第一步,初始化内部主机归并业务的归并指标,归并项以及归并时间粒度如下:
归并指标为IP版本,链路ID,内部主机IP,应用类型ID,协议ID,机构ID,机构类型ID,国家,AS号;归并项为上行流量字节数,上行流量包数,下行流量字节数,下行流量包数;归并时间粒度为5分钟粒度归并,一小时粒度归并,一天粒度归并。
第二步,计算每个归并指标的信息熵,确定归并指标的比较次序;本发明实施例中选取了1天的网络流历史数据用于计算其对应的每个归并指标的信息熵,计算结果排序如下:
内部主机IP(15.30)>链路ID(7.67)>机构ID(5.80)>应用类型ID(2.36)>协议ID(1.09)>IP版本(0.09)>机构类型ID(0.09)>国家(0)>AS号(0)。
国家和AS号熵为0其原因在于一个机构或者单位的内部主机国家和AS号是确定的,因此在进行归并时这两个指标不再需要进行比较。
第三步,根据发明内容步骤c中的归并结果数据空间复杂度估计方法结合实施例中的实际情况估计内部主机归并不同时间粒度归并结果文件的空间复杂度。
估计结果如下:
粒度 | 5分钟 | 一小时 | 一天 |
文件大小 | 15M | 150M | 2.5G |
本发明实施例中,以所用归并服务器内存大小的50%(48G)用于保存需要存储在内存中的归并文件,由于所处理的数据量比较大(10个左右探针发送的数据),经计算对于空间复杂度大于等于100M的归并文件存储于外存,小于100M的文件存储于内存;因此归并过程中5分钟时间粒度数据暂存于内存中,1小时时间粒度数据和一天时间粒度数据暂存于外存。
第四步,完成相关参数及配置的设置并启动归并处理器(为了方便描述归并执行过程,假定归并处理器启动时间为2013-7-28 00:02:00),对探针网络流数据进行内部主机业务的5分钟时间粒度,1小时时间粒度以及1天时间粒度;对于实时网络流数据的归并转第五步进行处理,其他数据的归并转第六步进行处理。
第五步,对实时网络流数据进行5分钟时间粒度的归并处理,按以下操作进行处理并不断循环执行:
(a)开始执行归并前进行分钟时间的对齐,对齐后的当前开始时间Ts为2013-7-2800:00:00;分配保存归并结果数据的内存空间。
(b)开始归并实时网络流数据,每处理完一条记录便查询系统时间T,并判断是否T-Ts>300,若成立则对已经归并的数据进行排序处理,并设置Ts=Ts+300,分配内存空间进行下一个五分钟阶段的归并处理。
(c)将(b)中排序处理后的数据导入到数据库中,并将其内存地址加入到1小时数据归并文件链表中,设置其链表项时间戳字段为2013-7-28 00:00:00。
(d)修改对应的消息通知文件中的时间戳为05(表示下一阶段生成的归并文件的分钟粒度的时间戳计数为05)。
第六步,对已归并的网络流数据进行更高级别的归并处理,进行1小时时间粒度归并转第七步;进行1天时间粒度归并转第八步。
第七步,对已归并的5分钟时间粒度结果数据进行1小时时间粒度的归并处理,按以下操作进行处理并不断循环执行:
(a)设置新链表B,以一定的时间间隔不断的扫描1小时数据归并文件链表。
(b)假设获取的系统时间戳为2013-7-28 01:00,且首次扫描到的链表项时间戳字段小于2013-7-28 01:00:00的链表项其时间戳字段为2013-7-28 00:00:00,将该链表项从1小时归并文件链表中删除并加入B链表中,继续扫描1小时归并文件链表,并将所有时间戳字段满足[2013-7-28 00:00:00,2013-7-28 00:55:00]之间的链表项从原链表删除并加入到B链表中。
(c)检查相应的消息通知文件,假设检查到的消息通知文件中时间戳计数为00,则表示所有数据准备完全,进行1小时数据的归并。
(d)对B链表中文件逐个两两归并,假设链表B中前两个文件F1,F2的时间戳字段分别为2013-7-28 00:00:00与2013-7-28 00:05:00,在内存中开辟新的存储文件Fn+1,分别从这两个文件中各读取一条记录到R1与R2,然后按内部主机IP,链路ID,机构ID,应用类型ID,协议ID,IP版本,机构类型ID的次序比较R1与R2,假设R1与R2所有归并指标都相同,累加归并项后将归并结果记录写入到Fn+1中,然后继续从F1,F2中各读取一条记录到R1与R2继续进行归并;归并完F1,F2后从链表B中删除F1,F2,释放内存空间并将归并结果文件Fn+1加入到链表B中,继续归并F3,F4等等,直到链表B中只剩一个文件为止,然后将生成的1小时归并结果数据导入到数据库中,并将其输出到外存中的1天数据归并文件目录下,为其文件名增加时间戳字段2013-7-28 00:00:00。
(e)修改对应的消息通知文件中的时间戳为01(表示下一阶段生成的归并文件的小时粒度的时间戳计数为01)。
第八步,对已归并的1小时时间粒度结果数据进行1天时间粒度的归并处理,按以下操作进行处理并不断循环执行:
(a)设置新链表B,以一定的时间间隔不断的扫描1天数据归并文件目录,将扫描到的文件名称按时间戳大小进行排序。
(b)假设获取的系统时间戳为2013-7-29 00:00:00,且首次扫描到的链表项时间戳字段小于2013-7-29 00:00:00的链表项其时间戳字段为2013-7-28 00:00:00,将该链表项从1天归并文件链表中删除并加入B链表中,继续扫描1天归并文件链表,并将时间戳字段满足[2013-7-28 00:00:00,2013-7-28 23:00:00]之间的链表项从原链表删除并加入到B链表中。
(c)检查相应的消息通知文件,假设检查到的消息通知文件中时间戳计数为00,则表示所有数据准备完全,进行1天数据的归并。
(d)对B链表中文件逐个两两归并,假设链表B中前两个文件F1,F2的时间戳字段分别为2013-7-28 00:00:00与2013-7-28 01:00:00,在外存中创建新的存储文件Fn+1,分别从这两个文件中各读取一条记录到R1与R2,然后按内部主机IP,链路ID,机构ID,应用类型ID,协议ID,IP版本,机构类型ID的次序比较R1与R2,假设R1与R2所有归并指标都相同,累加归并项后将归并结果记录写入到Fn+1中,然后继续从F1,F2中各读取一条记录到R1与R2继续进行归并;归并完F1,F2后从链表B中删除F1,F2,删除外存文件并将归并结果文件Fn+1加入到链表B中,继续归并F3,F4等等,直到链表B中只剩一个文件为止,然后将生成的1天归并结果数据导入到数据库中,并将其输出到外存中的1周及1月数据归并文件目录下,为其文件名增加时间戳字段2013-7-28 00:00:00。
(e)修改对应的消息通知文件中的时间戳为29(表示下一阶段生成的归并文件的天粒度的时间戳计数为29)。
Claims (9)
1.一种网络流数据的归并方法,其步骤为:
1)设置归并业务,并为每一归并业务设置相应的归并指标以及归并项,设置从小到大N级时间粒度;N为大于1的整数;
2)利用归并器对每一归并业务的网络流数据按时间粒度分别进行归并处理;其中:对实时网络流数据,按归并业务分别进行最小归并时间粒度的归并处理,并不断检查当前阶段的最小时间粒度归并处理是否达到完成时间;若达到完成时间则进行下一最小时间粒度的实时网络流数据归并,并将各个归并业务的当前归并结果文件存入指定位置;对于已进行第n级时间粒度归并后的归并结果文件,检查当前时刻是否需要对各个归并业务进行第n+1级时间粒度的数据归并处理,如果需要,则读取归并业务的第n级时间粒度归并结果文件进行第n+1级时间粒度的数据归并处理,并将归并结果文件缓存到内存或外存中,1≤n﹤N;
其中,每一归并业务设有N级归并器,第n级归并器进行第n级时间粒度归并处理;对于需要暂存在内存中的归并结果文件,将其内存数据地址加入到相关文件链表A中,并给链表项增加一个时间戳字段;对于需要暂存在外存中的归并结果文件,将其输出到指定的外存文件中,并为归并结果文件的文件名增加一个时间戳后缀;每次归并生成第n级时间粒度的归并结果文件后,第n级归并器将进行第n+1级时间粒度的归并结果文件时间戳标记写入到一消息通知文件中供第n+1级归并器查询;第n+1级归并器将消息通知文件中的时间戳与当前时刻进行比较,确定是否需要对各个归并业务进行第n+1级时间粒度的数据归并处理。
2.如权利要求1所述的方法,其特征在于第n+1级归并器对第n级时间粒度归并结果文件进行第n+1级时间粒度的数据归并处理的方法为:
(a)根据第n级时间粒度归并结果文件的存储位置,扫描外存中的归并文件目录或者文件链表A并对扫描结果按时间顺序进行排序,若扫描结果不为空,则进行步骤(b);
(b)比较扫描到的待归并结果文件的时间戳Tf与当前阶段系统时间戳T,若Tf与T相同,则不进行归并处理;否则设Tf为第一次扫描到的与当前系统时间戳T不相同的文件时间戳,新建一归并文件链表B,并将时间戳Tf对应的待归并结果文件加入到归并文件链表B中,进行步骤(c);
(c)继续扫描归并文件目录或者文件链表A,将文件时间戳Tf在第n级归并时间粒度上的所有文件加入到该归并文件链表B中,进行步骤(d);
(d)比较Tf与当前系统时间T减去一n级时间粒度长度的时间戳T′,若Tf与T′相同,则进行步骤(e);若Tf早于T′,则直接对文件链表B中的待归并结果文件进行归并处理;
(e)检查待归并结果文件的消息通知文件确定待归并结果文件是否准备好,若所有待归并结果文件已经准备好则进行归并处理,否则继续等待并不断检查消息通知文件。
3.如权利要求1或2所述的方法,其特征在于步骤2)之前,首先对每一种归并业务的归并指标进行排序,以排序次序作为归并时进行指标比较的次序进行归并处理,并定期更新指标次序。
4.如权利要求3所述的方法,其特征在于对归并指标进行排序的方法为:对一归并业务中的每一归并指标,根据该归并指标的历史数据计算该归并指标的信息熵,归并指标的信息熵越大,其排序越靠前。
5.如权利要求4所述的方法,其特征在于根据公式计算所述信息熵;其中,m为归并业务的归并指标个数,Mi′为第i个归并指标在历史样本数据中不同取值的个数,pij为第i个归并指标第j种取值的概率,Hi为第i个归并指标的信息熵。
6.如权利要求1或2所述的方法,其特征在于估计各个归并业务不同时间粒度的归并结果数据的空间复杂度,根据估计的空间复杂度确定需要进行更高级别归并处理的归并结果数据缓存在内存中还是外存中。
7.如权利要求6所述的方法,其特征在于估计所述空间复杂度O(t)的方法为:O(t)=C*B*M1*M2*…*Mm;其中,C为系数,m为归并业务具有的归并指标个数,Mi为第i个归并指标的不同取值个数的理论值,i=1,2…m,B为归并业务每条记录占用的最大空间。
8.如权利要求7所述的方法,其特征在于根据估计的所述空间复杂度O(t)、归并处理服务器内存所允许暂存的单个文件大小最大值X以及归并服务器不同时间粒度范围内所处理的流最大条数Fn确定需要进行更高级别归并处理的归并结果数据缓存在内存中还是外存中,其方法为:初始系数C为1,比较O(t)与X的大小,若O(t)小于等于X,则将对应的归并结果暂存在内存中;否则调整系数C的取值为C=Fn/M1*M2*…*Mm,然后再比较O(t)与X的大小,若O(t)小于等于X,则将对应的归并结果暂存在内存中,否则将对应的归并结果暂存在外存中;其中,n表示不同的时间粒度。
9.如权利要求4所述的方法,其特征在于对实时网络流数据,按归并业务分别进行最小归并时间粒度的归并处理的方法为:将实时网络流数据中各个归并指标值以字符串的形式拼接起来作为关键字,并通过hash定位到一hash单元,若该hash单元是首次接收到该实时网络流数据,则将其关联到该hash单元,否则按归并指标比较次序与该hash单元中的记录进行具体归并指标的比较,若全部指标相同则对归并项进行归并,若有指标值不相同,则通过设定的hash冲突解决方法定位到下一个hash单元中再进行比较,直到完成归并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310581417.7A CN103560921B (zh) | 2013-11-19 | 2013-11-19 | 一种网络流数据的归并方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310581417.7A CN103560921B (zh) | 2013-11-19 | 2013-11-19 | 一种网络流数据的归并方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103560921A CN103560921A (zh) | 2014-02-05 |
CN103560921B true CN103560921B (zh) | 2017-01-18 |
Family
ID=50015076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310581417.7A Expired - Fee Related CN103560921B (zh) | 2013-11-19 | 2013-11-19 | 一种网络流数据的归并方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103560921B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618361B (zh) * | 2015-01-22 | 2017-12-08 | 中国科学院计算技术研究所 | 一种网络流数据重排序方法 |
CN113076462B (zh) * | 2021-03-25 | 2024-04-30 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1747398A (zh) * | 2004-09-08 | 2006-03-15 | 大唐移动通信设备有限公司 | 网元管理系统中海量性能数据的统计方法 |
CN102158401A (zh) * | 2011-03-03 | 2011-08-17 | 江苏方天电力技术有限公司 | 基于电力自动化系统的流量监测模型 |
-
2013
- 2013-11-19 CN CN201310581417.7A patent/CN103560921B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1747398A (zh) * | 2004-09-08 | 2006-03-15 | 大唐移动通信设备有限公司 | 网元管理系统中海量性能数据的统计方法 |
CN102158401A (zh) * | 2011-03-03 | 2011-08-17 | 江苏方天电力技术有限公司 | 基于电力自动化系统的流量监测模型 |
Non-Patent Citations (1)
Title |
---|
一种高速流量聚合方法的设计与实现;陈宁、徐同阁;《微计算机信息》;20080125;第24卷(第1-3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103560921A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105069703B (zh) | 一种电网海量数据管理方法 | |
CN103235820B (zh) | 一种集群系统中数据存储方法与装置 | |
CN102799514B (zh) | 一种日志记录管理方法和系统 | |
CN104765840B (zh) | 一种大数据分布式存储的方法和装置 | |
CN103631922B (zh) | 基于Hadoop集群的大规模Web信息提取方法及系统 | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
WO2012046316A1 (ja) | ストリームデータ処理方法及び装置 | |
CN106873945A (zh) | 基于批处理和流式处理的数据处理架构及数据处理方法 | |
CN106156115A (zh) | 一种资源调度方法及装置 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN105989061A (zh) | 一种滑动窗口下多维数据重复检测快速索引方法 | |
CN106293941A (zh) | 一种数据库系统资源的分配方法 | |
CN104504103A (zh) | 一种车辆轨迹点插入性能优化方法及系统、信息采集器、数据库模型 | |
CN103259737A (zh) | 一种并行存储高速网络流量的快速定位方法 | |
CN108763044A (zh) | 一种日志处理方法及装置 | |
CN103995828B (zh) | 一种云存储日志数据分析方法 | |
Doraimani et al. | File grouping for scientific data management: lessons from experimenting with real traces | |
CN109325062A (zh) | 一种基于分布式计算的数据依赖挖掘方法及系统 | |
CN103560921B (zh) | 一种网络流数据的归并方法 | |
CN109033173A (zh) | 一种用于生成多维指标数据的数据处理方法及装置 | |
CN105824892A (zh) | 一种数据池对数据同步和处理的方法 | |
CN109657197A (zh) | 一种叠前深度偏移计算方法及系统 | |
Guo et al. | WISE: workload-aware partitioning for RDF systems | |
CN107463487A (zh) | 一种分布式主机性能采集系统及性能采集方法 | |
Li et al. | Durable subgraph matching on temporal graphs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170118 Termination date: 20191119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |