公开/公告号CN116126910A
专利类型发明专利
公开/公告日2023-05-16
原文格式PDF
申请/专利权人 上海天旦网络科技发展有限公司;
申请/专利号CN202211685215.2
申请日2022-12-27
分类号G06F16/2455(2019.01);G06F16/2458(2019.01);G06F16/22(2019.01);G06F16/25(2019.01);
代理机构上海锻创知识产权代理有限公司 31448;
代理人范文琦
地址 200086 上海市虹口区峨嵋路315号8752室
入库时间 2023-06-19 19:35:22
法律状态公告日
法律状态信息
法律状态
2023-06-02
实质审查的生效 IPC(主分类):G06F16/2455 专利申请号:2022116852152 申请日:20221227
实质审查的生效
2023-05-16
公开
发明专利申请公布
技术领域
本发明涉及数据处理技术领域,具体地,涉及一种海量会话数据滚动聚合方法、系统、设备及介质。
背景技术
在网络性能管理领域,通过将某个时间范围内的时序数据汇聚成会话数据以便对网络中的会话进行洞察和分析是普遍的需求,当前网络性能管理设备处理能力日渐提升,每分钟的会话数达到数百万级别,时序数据更是达到每分钟千万级别,此时用户需要将出问题的时间范围内的海量时序数据中聚合出会话数据,并定位到出问题的会话,一般实现方式是由于数据量过于庞大,所以每固定时间间隔将时序数据聚合成会话数据,然后分析时基于会话数据直接分析,此方法一方面会造成资源的浪费,用户往往只需要查询出问题时间点的数据,而此方法把所有时间的数据都进行了聚合,另外一个问题是用户关注的是查询范围内的会话数据,而此方法由于是预先聚合会话数据,所以会话数据超过了用户查询范围,再者由于数据量过于庞大,最终用户需要等待很长时间才能得到结果,交互性差。
综上所述,现有技术中存在以下缺陷:1)预生成会话数据导致无法准确分析查询范围内活跃会话,出现数据过大的问题。2)分析过程时间过长,需要等待整个查询结束才能反馈结果,交互性差3)预生成会话数据,导致系统资源占用高。
发明内容
针对现有技术中的缺陷,本发明提供一种海量会话数据滚动聚合方法、系统、设备及介质。
根据本发明提供的一种海量会话数据滚动聚合方法、系统、设备及介质,所述方案如下:
第一方面,提供了一种海量会话数据滚动聚合方法,所述方法包括:
步骤S1:通过前端发送查询请求,输入模块接收并对请求参数进行校验,当请求参数中的必要参数缺失、参数类型错误或者参数取值错误时,返回校验错误,校验完后,把请求参数发送到会话分析管理模块;
步骤S2:通过会话分析管理模块接收请求参数,管理整个查询的生命周期,将任务拆分成多个分片任务,下发到巨页会话数据生成模块;
步骤S3:巨页会话数据生成模块调用时序数据完整性校验模块进行完整性校验;
步骤S4:根据完整性校验结果,如果完整性校验不通过,则该分片不需要处理,如果通过校验,巨页会话数据生成模块执行数据生成任务,任务完成时,会话分析管理模块调度会话表查询模块,生成分片会话数据,多个分片进行合并,生成大页数据作为预览结果,如果所有分片处理完毕,则得到最终结果。
优选地,所述步骤S1中的请求参数的必要参数包括:时间范围、页数、会话五元组列和指标列。
优选地,所述步骤S2包括:
步骤S2.1:校验查询条件的巨页会话表是否存在或者查询的页数是否超出巨页会话表数据量100N;
步骤S2.2:如果巨页会话表存在,并且查询页数没有超过巨页会话表,则从巨页会话表中查询最终结果,否则按时间的倒序将任务拆分成多个分片任务,然后执行步骤S2.3。
步骤S2.3:执行一个分片任务,根据查询的过滤条件从时序数据表中过滤数据,此时过滤条件包括时间过滤,五元组过滤,再按照五元组和会话开始时间分组,聚合成分片会话数据,然后将该分片会话数据插入到分片会话数据表,插入后,调用巨页会话数据生成模块生成巨页会话表;
步骤S2.4:会话表查询模块查询巨页会话表并生成预览数据,然后清理分片汇聚会话数据表,若此时是最后一个分片,整个查询结束,会话分析管理模块结束流程,退出;否则,继续步骤S2.3。
优选地,所述步骤S2.4包括:
步骤S2.4.1:会话表查询模块查询分片聚合会话表,带入开始时间大于等于分片的开始时间并且小于分片的结束时间作为过滤条件,将分片聚合会话表中该分片的会话数据过滤出,然后和巨页会话表做Union All,再次排序和分页,生成一个新的巨页会话表;
步骤S2.4.2:触发一次预览,从步骤S2.4.1中生成的巨页会话表中,查询大页数据作为预览结果返回;
步骤S2.4.3:触发完预览之后,分片汇聚会话表中开始时间大于等于该分片的数据此时已经存在于巨页会话表中,此时删除分片汇聚会话表中开始时间大于等于该分片的开始时间的数据;
步骤S2.4.4:如果当前分片任务不是最后一个分配,则重复步骤S2.3,否则已经是最后一个分片,则带入开始时间小于该分片的开始时间作为过滤条件,从分片汇聚会话表中,将最后的会话数据过滤出,然后和巨页会话表做Union All,再次排序和分页,生成最后一个巨页会话表;
步骤S2.4.5:从巨页会话表中,查出最后的结果,并且通知会话分析管理模块整个查询结束。
优选地,所述步骤S2.2包括:
如果巨页表不存在,对会话表进行排序生成巨页表;
如果巨页表已经存在,合并当前巨页表和之前已经存在的巨页表,重新排序和分页,生成新的巨页表。
优选地,所述如果巨页表已经存在,新的巨页表生成后,回收会话表的会话开始时间落在时间分片范围内的数据,如果此分片为最后一个分片,则查询会话开始时间小于该分配开始时间的数据,做最后一次巨页合并,生成最终结果。
优选地,所述步骤S3的完整性校验包括:如果是完整的,则调用会话数据生成模块,生成巨页数据。
第二方面,提供了一种海量会话数据滚动聚合系统,所述系统包括:
输入模块:提供对外的接口,用于接收查询请求,对请求参数进行校验;
会话分析管理模块:处理查询请求,管理整个查询的生命周期,调度分片任务,输出中间预览结果的反馈;
会话数据生成模块:通过任务管理模块中的分片任务作为输入,获取任务状态,如果任务未被执行过,则执行分片任务,将分片时序数据聚合成会话数据,并且更新分片状态;
巨页会话数据生成模块:用于生成分片汇聚会话表,并且从分片汇聚会话表合并和生成巨页会话表;
时序数据完整性校验模块:用于校验时序数据的完整性;
会话表查询模块:按照查询需求查询会话表,并且返回中间预览结果,当查询结束时,返回最终查询结果。
第三方面,提供了一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述海量会话数据滚动聚合方法的步骤。
第四方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述海量会话数据滚动聚合方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明能够准确分析查询范围内的长时间海量活跃会话数据;
2、本发明能够在分析过程中实时反馈中间处理结果,提高交互性;
3、本发明中的磁盘能够及时回收,资源占用低。
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为会话分析整体流程图;
图2为系统模块图;
图3为会话数据分桶算法及查询图;
图4为分片任务预览图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明实施例提供了一种海量会话数据滚动聚合系统,参照图1和图2所示,该系统具体包括:
输入模块:提供对外的接口,用于接收查询请求,对请求参数进行校验。
会话分析管理模块:处理查询请求,管理整个查询的生命周期,调度分片任务,将中间预览结果适时的输出反馈。
会话数据生成模块:通过任务管理模块中的分片任务作为输入,获取任务状态,如果任务未被执行过,则执行分片任务,将分片时序数据聚合成会话数据,并且更新分片状态。
巨页会话数据生成模块:用于生成分片汇聚会话表,并且从分片汇聚会话表合并和生成巨页会话表。
时序数据完整性校验模块:用于校验时序数据的完整性。
会话表查询模块:按照查询需求查询会话表,并且返回中间预览结果,当查询结束时,返回最终查询结果。
参照图1所示,本发明还提供了一种海量会话数据滚动聚合方法,该方法具体包括以下内容:
步骤S1:输入模块接收前端发送的查询请求,对请求参数进行校验,当请求参数中的必要参数缺失、参数类型错误或者参数取值错误时,返回校验错误,必要参数包括时间范围,五元组列(源IP地址、源端口号、目的IP地址、目的端口号和网络协议)、页数和指标列,校验完后,把请求参数发送到会话分析管理模块。
其中时间范围由开始时间和结束时间构成,表示希望查询那段时间内的活跃会话,页数是指需要获取哪个分页数据,会话五元组包括源IP地址、源端口号、目的IP地址、目的端口号和网络协议,指标列包括并不限于包长、包数、比特率、字节率、包率、会话数、平均包长、广播包数、组播包数、单播包数、包长分布、建连无响应数、建连无响应率、建连重置数、建连重置率、SYN、SYN&ACK、FIN、RST、零窗口数、平均窗口大小、重传数、重传率、丢包数、丢包率、乱序包数、乱序率、重复包数、重复率、建连连接数、建连成功数、建连成功率、建连失败率、三次握手时间、最大三次握手时间、最小三次握手时间、Apdex指数、网络延时、响应时间、最大响应时间、最小响应时间、数据传输时间和ACK时间。
步骤S2:通过会话分析管理模块接收请求参数,管理整个查询的生命周期,将任务拆分成多个分片任务,下发到巨页会话数据生成模块。,该模块维护一个分片汇聚会话表和一个巨页会话表,其中分片汇聚会话表用于汇聚分片的会话数据,巨页会话表用于存放巨页会话数据,设分页每页记录数量为N,则大页数据为N的10倍,即10N,巨页为大页的10倍,即100N。
其中,步骤S2包括如下步骤:
步骤S2.1:校验查询条件的巨页会话表是否存在,如果存在,判断页数是否超出巨页范围,如果没有超出巨页范围,则调用会话表查询模块,输出最终大页结果。如果巨页会话表不存在,按时间的倒序将任务拆分成多个分片任务,对于会话数据,除了网络中的5元组(源IP地址SrcIP、源端口号SrcPort、目的IP地址DestIP、目的端口号DestPort、网络协议IPProtocol)之外,由于同一个五元组可能是不同的会话,此时需要一个会话id,本方法选用会话的开始时间StartTime作为会话id,同时按照(StartTime,SrcIP,SrcPort,DestIP,DestPort,IPProtocol)进行分组聚合,因为会话开始时间一定是小于等于活跃时间的,所以按时间倒序拆分任务的算法保证当某个分片的会话数据生成之后,插入到巨页表之后,可以马上回收该会话表,从而减少系统资源占用。
步骤S2.2:如果巨页会话表存在,并且查询页数没有超过巨页会话表,则从巨页会话表中查询最终结果,否则按时间的倒序将任务拆分成多个分片任务,然后执行步骤S2.3。
步骤S2.3:执行一个分片任务,根据查询的过滤条件从时序数据表中过滤数据,此时过滤条件包括时间过滤,五元组过滤,比如过滤ip.src==“192.168.1.1”&&port.dest==80&&starttime>=“2022-12-12 10:00:00”&&endtime<“2022-12-1216:00:00”,然后按照五元组和会话开始时间分组(此处的会话开始时间是会话ID),聚合成分片会话数据,然后将该分片会话数据插入到分片会话数据表,插入后,调用巨页会话数据生成模块生成巨页会话表;
判断巨页表是否已经存在,如果不存在,对会话表进行排序生成巨页表,此处定义小页为100,大页为1000,巨页为10000,对于用户来说,这种分页方式一般足够分析,如果巨页表已经存在,合并当前巨页表和之前已经存在的巨页表,重新排序和分页,生成新的巨页表,巨页表生成后,回收会话表的会话开始时间落在时间分片范围内的数据,从而减少资源占用,如果此分片为最后一个分片,则查询会话开始时间小于该分配开始时间的数据,如图3所示,做最后一次巨页合并,生成最终结果。
步骤S2.4:会话表查询模块,查询巨页表生成预览数据,形成如图4预览效果,如果此时已经是最后一个分片,整个查询结束,会话分析管理模块结束流程,退出,否则,继续步骤S2.3。
该步骤包括:步骤S2.4.1:会话表查询模块查询分片聚合会话表,带入开始时间大于等于分片的开始时间并且小于分片的结束时间作为过滤条件,将分片聚合会话表中该分片的会话数据过滤出,然后和巨页会话表做Union All,然后再次排序和分页,生成一个新的巨页会话表;
步骤S2.4.2:触发一次预览,从步骤S2.4.1中生成的巨页会话表中,查询大页数据作为预览结果返回;
步骤S2.4.3:触发完预览之后,由于分片任务是时间的倒序执行的并且按照会话开始时间分组的,所以分片汇聚会话表中开始时间大于等于该分片的数据此时已经存在于巨页会话表中,此时可以删除分片汇聚会话表中开始时间大于等于该分片的开始时间的数据,以便减少磁盘占用,保证每次查询的磁盘占用一个分片的数据;
步骤S2.4.4:如果当前分片任务不是最后一个分配,则重复步骤S2.3,否则已经是最后一个分片,则带入开始时间小于该分片的开始时间作为过滤条件,从分片汇聚会话表中,将最后的会话数据过滤出,然后和巨页会话表做Union All,然后再次排序和分页,生成最后一个巨页会话表;
步骤S2.4.5:从巨页会话表中,查出最后的结果,并且通知会话分析管理模块整个查询结束。
步骤S3:通过巨页会话数据生成模块调用时序数据完整性校验模块进行完整性校验;如果是完整的,则调用会话数据生成模块,生成巨页数据。
步骤S4:当巨页会话数据生成模块任务完成时,会话分析管理模块调度会话表查询模块,生成分片会话数据,多个分片进行合并,生成预览或者最终结果。
本发明实施例提供的一种海量会话数据滚动聚合方法、系统、设备及介质,准确分析用户查询长时间范围内的海量会话数据,并且通过中间结果预览方式提高交互性。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
机译: 用于在用户会话之间提供数据同步的方法,用于存储所存储的档案和至少一个外部系统的数据存储,存储在计算机可读非瞬态存储介质中的计算机程序产品以及用于提供包括数据存储,会话的同步的系统至少一个外部系统包括用户界面,并被配置为访问存储在所述数据存储器中的存储的档案,该至少一个外部系统通过包括与至少会话通信的同步器来区分自身。和数据存储
机译: 海量存储卡与移动终端的近场通信单元之间的数据通信方法,包括通过海量存储卡的读取设备接口将海量存储卡与读取设备连接
机译: 用于确定与数据通信会话有关的费用的系统,用于确定与数据通信会话有关的费用的无线设备。智能卡配置为与能够与通信服务网络通信的无线设备合作用于确定与CO会话有关的费用的数据通信和用于确定与数据通信会话有关的费用的方法