CN111177201B - 一种数据流处理的方法以及相关装置 - Google Patents

一种数据流处理的方法以及相关装置 Download PDF

Info

Publication number
CN111177201B
CN111177201B CN201910718785.9A CN201910718785A CN111177201B CN 111177201 B CN111177201 B CN 111177201B CN 201910718785 A CN201910718785 A CN 201910718785A CN 111177201 B CN111177201 B CN 111177201B
Authority
CN
China
Prior art keywords
preset
data stream
statistics
key
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.)
Active
Application number
CN201910718785.9A
Other languages
English (en)
Other versions
CN111177201A (zh
Inventor
张少愚
李韬
赖俊凡
尤飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910718785.9A priority Critical patent/CN111177201B/zh
Publication of CN111177201A publication Critical patent/CN111177201A/zh
Application granted granted Critical
Publication of CN111177201B publication Critical patent/CN111177201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据流处理的方法以及相关装置,通过对于预设时间段内数据流的获取,并根据预设字段对生成相应的关键词以将数据流聚合在散列表中,然后根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于预设时间段的设定,对于不同聚合时长的场景适配不同的统计方法,使得统计过程更为灵活,并且可以达到实时统计的效果;通过散列表和链表的结合使用,可以配置多种统计方式,而且在统计过程中节约了统计的时间,提高了统计过程的实时性以及效率。

Description

一种数据流处理的方法以及相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据流处理的方法以及相关装置。
背景技术
在很多业务安全场景中,经常会利用某一类特定群体的聚合特性来判断该群体是否恶意,概括来说主要用于描述某一种实体a,在滑动的时间窗口内,另外一种实体b的满足特定条件的数量。比如在账号安全场景中,统计过去24小时内,某个地址上异常登录的用户uin数量。
针对特定的聚合特征来判断群体的特性一般需要将待检测的所有数据存入数据库,然后通过数据查询语句对特定的聚合特征进行查询并分析。
但是,在数据量很大的情况下,调用所有数据的耗时较长,且整个过程会受到网络延迟的影响,难以达到实时检测的目的,影响数据聚合的效率以及稳定性。
发明内容
有鉴于此,本申请第一方面提供一种数据流处理的方法,可应用于业务安全检测统计的系统或程序过程中,具体包括:获取预设时间段内的数据流和预设字段;根据预设算法处理所述预设字段,以生成关键字key,所述key用于指示所述数据流在散列hash表中对应的第一数据节点,所述第一数据节点中包括多个链表单元;根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述根据预设字段对所述数据流进行聚合之后,所述方法还包括:判断所述预设时间段的时长与预设聚合时长的大小关系;所述根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,包括:若所述预设时间段的时长大于所述预设聚合时长,则根据所述时间戳的变化量确定所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述方法还包括:若所述预设时间段的时长小于所述预设聚合时长,则根据所述时间戳确定预设时间段内所述数据流在所述第一数据节点中的指针信息,所述指针信息用于指示所述数据流在所述第一数据节点中的写入范围;根据所述指针信息统计所述写入范围内的数据流,以确定所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述若所述预设时间段的时长大于所述预设聚合时长,则根据所述时间戳的变化量确定所述统计指标的统计量,包括:根据所述时间戳确定所述数据流的存在时长;若所述存在时长大于所述预设聚合时长,则更新所述key在hash表中的对应关系,更新后的对应关系用于指示第二数据节点,所述第二数据节点为当前未根据所述数据流输入所述key的数据节点;根据所述数据流的时间戳在所述第二数据节点中的变化量确定所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述根据预设字段对所述数据流进行聚合,包括:判断所述预设字段是否满足过滤条件,所述过滤条件基于预设字段与预设语法树的对应关系设定;若满足,则根据预设字段对所述数据流进行聚合。
优选的,在本申请一些可能的实现方式中,若所述预设统计方式为去重统计,则所述根据预设算法处理所述预设字段,以生成关键字key之后,所述方法还包括:获取所述key的标识信息,所述标识信息基于所述key的创建时间确定;根据预设规则对所述key进行去重,以得到去重后的key,所述预设规则基于所述标识信息的相似度设定;所述根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元,包括:根据所述去重后的key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
优选的,在本申请一些可能的实现方式中,所述获取预设时间段内的数据流和预设字段之后,所述方法还包括:根据所述数据流的大小确定存储空间信息;所述根据预设算法处理所述预设字段,以生成关键字key之后,所述方法还包括:根据所述key的数量更新所述存储空间信息。
本申请第二方面提供另一种数据流处理的装置,包括:获取单元,用于获取预设时间段内的数据流和预设字段;
处理单元,用于根据预设算法处理所述预设字段,以生成关键字key,所述key用于指示所述数据流在散列hash表中对应的第一数据节点,所述第一数据节点中包括多个链表单元;
聚合单元,用于根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
统计单元,用于根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述聚合单元,还用于判断所述预设时间段的时长与预设聚合时长的大小关系;所述统计单元,具体用于若所述预设时间段的时长大于所述预设聚合时长,则根据所述时间戳的变化量确定所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述统计单元,还用于若所述预设时间段的时长小于所述预设聚合时长,则根据所述时间戳确定预设时间段内所述数据流在所述第一数据节点中的指针信息,所述指针信息用于指示所述数据流在所述第一数据节点中的写入范围;所述统计单元,还用于根据所述指针信息统计所述写入范围内的数据流,以确定所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述统计单元,具体用于根据所述时间戳确定所述数据流的存在时长;所述统计单元,具体用于若所述存在时长大于所述预设聚合时长,则更新所述key在hash表中的对应关系,更新后的对应关系用于指示第二数据节点,所述第二数据节点为当前未根据所述数据流输入所述key的数据节点;所述统计单元,具体用于根据所述数据流的时间戳在所述第二数据节点中的变化量确定所述统计指标的统计量。
优选的,在本申请一些可能的实现方式中,所述聚合单元,具体用于判断所述预设字段是否满足过滤条件,所述过滤条件基于预设字段与预设语法树的对应关系设定;若满足,则根据预设字段对所述数据流进行聚合。
优选的,在本申请一些可能的实现方式中,若所述预设统计方式为去重统计,则所述处理单元,还用于:获取所述key的标识信息,所述标识信息基于所述key的创建时间确定;
所述处理单元,还用于:根据预设规则对所述key进行去重,以得到去重后的key,所述预设规则基于所述标识信息的相似度设定;
所述聚合单元,具体用于:
根据所述去重后的key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
优选的,在本申请一些可能的实现方式中,其特征在于,所述获取单元,还用于根据所述数据流的大小确定存储空间信息;
所述处理单元,还用于根据所述key的数量更新所述存储空间信息。
本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的数据流处理的方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的数据流处理的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过对于预设时间段内数据流的获取,并根据预设字段对所述数据流进行聚合,然后根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于时间戳的可信性以及唯一性,可以提高统计过程的准确性与稳定性;而且由于预设时间段的设定,使得统计过程可以实时的进行;进一步的,由于时间戳便于读取,节约了统计的时间,提高了统计过程的实时性以及效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为数据流检测的网络架构图;
图2为一种数据流处理的系统架构图;
图3为本申请实施例提供的一种数据流处理的方法的流程图;
图4为本申请实施例提供的一种数据流处理方式示意图;
图5为本申请实施例提供的另一种数据流处理的方法的流程图;
图6是本申请实施例提供的一种数据流传输协议示意图;
图7为本申请实施例提供的一种数据流处理的界面显示示意图;
图8为本申请实施例提供的处理装置的结构示意图;
图9为本申请实施例提供的另一种处理装置的结构示意图。
具体实施方式
本申请实施例提供了一种数据流处理的方法以及相关装置,可以应用于业务安全检测统计的系统或程序过程中,具体通过对于预设时间段内数据流的获取,并根据预设字段对所述数据流进行聚合,然后根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于时间戳的可信性以及唯一性,可以提高统计过程的准确性与稳定性;而且由于预设时间段的设定,对于不同聚合时长的场景适配不同的统计方法,使得统计过程更为灵活,并且可以达到实时统计的效果;进一步的,由于时间戳便于读取,节约了统计的时间,提高了统计过程的实时性以及效率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的数据流处理方法可以应用于业务安全检测统计的系统或程序过程中,具体的,数据流安全检测统计的过程可以通过如图1所示的网络架构实现,如图1所示,是数据流检测的网络架构图,如图可知,数据源产生数据流,数据流通过网络传输到服务器,检测装置在其传输过程中进行检测,可以理解的是,图1中示出了一个数据源,在实际场景中可以有更多或更少的数据源参与到传输过程中,具体数量因实际场景而定,此处不做限定;另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多应用数据交互的场景中,具体服务器数量因实际场景而定。
可以理解的是,上述数据源可以是个人移动终端,也可以是服务器,还可以其他具有数据处理功能的设备;具体的,检测装置可以是以一种程序的形式在上述设备中运行,也可以作为上述设备中的系统部件进行运行,还可以作为云端服务程序的一种,具体运作模式因实际场景而定,此处不做限定。
在很多业务安全场景中,经常会利用某一类特定群体的聚合特性来判断该群体是否恶意,概括来说主要用于描述某一种实体a,在滑动的时间窗口内,另外一种实体b的满足特定条件的数量。比如在账号安全场景中,统计过去24小时内,某个地址上异常登录的用户uin数量。
针对特定的聚合特征来判断群体的特性一般需要将待检测的所有数据存入数据库,然后通过数据查询语句对特定的聚合特征进行查询并分析。
但是,在数据量很大的情况下,调用所有数据的耗时较长,且整个过程会受到网络延迟的影响,难以达到实时检测的目的,影响数据聚合的效率以及稳定性。
为了解决上述问题,本申请提出了一种数据流处理的方法,该方法应用于图2所示的数据流处理的系统框架,如图2所示,是一种数据流处理的系统架构图,图中包括配置中心、聚合统计服务器、长时聚合引擎和短时聚合引擎,其中,聚合统计服务器主要用于接收输入数据流,根据聚合时长(或者人工配置)选择相应的聚合统计引擎,并根据配置信息提取统计需要的字段输入统计引擎,计算完成后将统计结果返回给用户。
配置中心主要用于存储用户配置的聚合字段、聚合时间、聚合条件等信息;其中,聚合字段类似于mysql中的group by条件,指定按照某个字段进行聚集,比如统计过去24小时内,某个ip上,异常登录的uin数量,则聚集字段应该选择ip;聚合时间表示进行统计的时间窗口大小,截止时间是收到该条记录的时间,即统计过程的时长;而聚合条件则可以是配置多个聚合统计量,其中列名表示新产生的聚集统计量名称,聚合函数和统计字段用来选择统计的方式以及对象,即预设统计规则,例如一般统计、去重统计、均值、方差等,表达式用来指定过滤条件(比如只统计异常登录的uin数量)。
可以理解的是,在聚合条件设定的过程中,预设统计规则若为去重统计,则需要指定根据预设字段进行去重;若为均值,则需要指定按照预设字段去计算均值,具体的统计规则及其对应的操作应实际场景而定,此处不做限定。
在数据流检测过程中,聚合统计服务器定期从配置中心拉取配置信息,判断任务是否有变化,达到灵活变更的效果。
长时聚合引擎主要适用于聚合时间较长的场景,如1天。不需要存储时间窗口内的数据,内部维护一个计数器,在服务启动后开始计数,每当到达配置的聚合时间则将统计量缓存清空。所有统计量都从0开始递增,在统计量缓存清空时被置零,开始重新累加。由于不需要存储数据,占用内存空间较少。
短时聚合引擎主要用于适用于聚合时间较短,并且对于统计精确度要求较高的场景。需要存储整个时间窗口内和聚合统计相关的所有数据信息。每当有新的数据插入时,同时会根据时间戳淘汰一部分过期数据,并对相应的统计量进行更新;其运行过程中不会产生归零跳变,统计精度高。
本申请提供的数据流处理的方法可应用于聚合统计服务器中,并结合配置中心提供的相关配置信息,以及根据预设时间段的长度与聚合时间的关系选择长时聚合引擎或短时聚合引擎,达到对于数据流中相关信息的统计,便于进一步的判断。
可以理解的是,上述数据流处理系统可以运行于个人移动终端,也可以运行于服务器,还可以作为运行于第三方设备以提供远程服务,以得出统计报告。
可以理解的是,本申请所提供的方法可以为一种程序的写入,以作为硬件系统中的一种处理逻辑,也可以作为一种处理装置,采用集成或外接的方式实现上述处理逻辑。作为一种实现方式,该检测装置通过对于预设时间段内数据流的获取,并根据预设字段对所述数据流进行聚合,然后根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于时间戳的可信性以及唯一性,可以提高统计过程的准确性与稳定性;而且由于预设时间段的设定,对于不同聚合时长的场景适配不同的统计方法,使得统计过程更为灵活,并且可以达到实时统计的效果;进一步的,由于时间戳便于读取,节约了统计的时间,提高了统计过程的实时性以及效率。
结合上述系统架构,下面将对本申请中数据流处理的方法进行介绍,请参阅图3,图3为本申请实施例提供的一种数据流处理的方法的流程图,本申请实施例至少包括以下步骤:
301、获取预设时间段内的数据流。
本实施例中,以上述数据流处理系统框架中的服务器作为执行主体,可以理解的是,此处服务器可以指示上述系统框架中的聚合统计服务器,也可以是上述系统框架中多个部分的集合,例如:配置中心与聚合统计服务器的集合;此外,本实施例所提供的数据流处理的方法也可以以程序的形式应用于数据源或目标服务器的相关处理期间中,具体呈现形式应实际场景而定,此处以服务器为例进行说明。
本实施例中,预设时间段可以是人为设定的,例如:用户设定获取最近1天的数据流;预设时间段也可以是服务器根据历史统计的预设时间段自动生成,例如:历史统计中显示预设时间段设置为1200秒的次数最多,则在无人为设定的情况下,服务器自动设置预设时间段为1200秒;另外,预设时间段的设定也可以和预设字段进行关联,即当确定预设字段后会自动生成其相对应的预设时间段,例如:预设字段为用户,则在无人为设定的前提下,自动设置预设时间段为24小时。
可以理解的是,数据流可以来源于一个数据源,也可以来源于多个数据源,服务器还可以指定的获取某一特定数据源的数据流;另一方面,目标服务器可以是一个或多个,具体数量因实际场景而定,此处不做限定。
可选的,在获取数据流之后,服务器可以根据当前数据流的大小分配相应的内存资源,并可以以预设时间段为间隔,周期性的对该内存资源的额度进行更新,以达到节约系统资源的目的。
302、根据预设字段对数据流进行聚合。
本实施例中,预设字段可以根据用户的输入,也可以根据数据流的特点相应的设定,例如:若服务器检测到数据流的来源为移动终端,则设置预设字段为用户。
可以理解的是,预设字段可以是一个词组,也可以是多个词组的组合,还可以是一个或多个词组根据预设的语法树关联而成,例如:语法树中规定客户端IP与用户数关联,则当输入预设字段为用户时,也可以是自动生成客户端IP的相关字段。
在一种可能的场景中,会出现多个预设字段的情况,此时可以采用hash表的形式对各个字段以及相应的数据流进行储存,进一步的将相应的数据流存入相应的数据节点,并以链表的形式储存,具体可参照如图4所示的形式,图4为本申请实施例提供的一种数据流处理方式示意图,具体的,服务器在接收到数据流之后,首先根据预设字段在hash表中生成相应的key,根据key将数据流储存至相应的数据节点,并以链表的形式处理,在具体的统计过程中,可以只计算链表头尾部分的数据,既可以得到相应的统计量,耗时少,可以很好的应用于实时场景。
可选的,在根据数据流生成相应的key之后,可以根据key的数量以及规定hash表的单元大小确定系统应分配的缓存资源大小,以便于系统对于缓存资源进行规划,并进行相应的调整,保证系统的正常运行。
可以理解的是,在根据预设字段生成相应的key之后,该key若已经存在相应的hash表中,则继续对相应的数据节点储存并统计;若该key未出现在当前的hash表中,则可以生成新的key,并分配新的数据节点以供储存。虽然图4中仅示出了3组key与数据节点,但在实际场景中可以根据上述的说明生成合适数量的对应关系,具体数量因实际场景而定,此处不做限定。
可选的,在根据预设字段对数据流进行聚合之前,可以对预设字段进行筛选,即在统计过程中,系统允许根据数据中部分字段是否满足一定条件进行过滤,即对只有满足一定条件的数据才进行统计。这里的条件过滤是通过分析用户配置的表达式,生成抽象语法树完成的。表达式可以是如下的形式:
ullPtczUin>=10000&&(ulPTCZIp==ulSubCaptchaIp||ullPtczUin==ullSubCa ptchaUin)
其中,表达式的分析过程使用了flex和binson这两个开源工具进行词法分析和语法分析,完成从表达式字符串到抽象语法树的转化。语法树中的节点有一个共同的基类,并提供filter抽象接口,不同节点对于该接口有不同的实现。在过滤过程中,通过输入数据并调用语法树根部的filter接口,递归完成整个过滤过程。
303、根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计。
本实施例中,时间戳为数据流的时间指示信息,在具体的应用中,可以是以数字序列的形式,例如:1562760323,也可以是具体的时间表示形式,例如:2019/7/10 20:05:58,具体的形式因实际场景而定。此处根据时间戳的变化情况进行统计指标的统计,可以是每当有新的数据流到来时,根据时间戳的唯一性,控制服务器内置的计数器加1,根据计数器的指示获得统计指标的统计量。另外,统计指标可以是数量,例如:统计异常用户uni的数量;统计指标也可以是点击量或其他反应聚合后数据流属性的量化指标,具体形式因实际场景而定。
可以理解的是,基于上述步骤302中的描述,在将数据流处理在hash表中后,对于统计指标的统计可以基于链表的头尾进行,需要说明的是,由于预设时间段可能比较长,若统计的方法均采用头尾遍历的方法会耗费过多的缓存空间,此时,可以采用计数器的方法进行统计,即每当有新的数据流到来时,根据时间戳的唯一性,控制服务器内置的计数器加1,根据计数器的指示获得统计指标的统计量。
可选的,在统计指标的统计量之前,可以比较预设时间段与预设聚合时长的大小,便于判断采用何种统计策略,对应的,该过程的实现过程可以基于上述数据流处理系统框架中的长时聚合引擎和短时聚合引擎,即将预设时间段大于预设聚合时长的数据流交由长时聚合引擎处理,将预设时间段小于或等于预设聚合时长的数据流交由短时聚合引擎处理;具体的,长时聚合引擎和短时聚合引擎可以属于上述服务器的部件或内部程序的写入,也可以作为外接的硬件设备。
本实施例中,预设统计规则包括一般统计,即统计数量或其他参数;也可以是去重统计,即只在key为第一次出现时才统计;也可以是包括一些数据处理的统计过程,例如:计算统计量的均值或方差后的数据作为统计数据,具体计算方式因实际场景而定。
可选的,可以规定多个统计规则处理数据流,即基于不同的统计逻辑进行统计,以参照并得出相应的结果;在基于不同的统计规则的场景中,hash表的命名也可以相应的变化,例如:基于一般统计规则过程中的hash表可以称为聚集hash表,相应的,若此时也需要利用去重统计的方法对数据流进行统计,则去重统计过程中的hash表可以称为去重hash表。
可以理解的是,基于不同命名的hash表应分配相应的缓存资源,即在一种可能的场景中,可以根据统计过程中聚集hash表与去重hash表的和确定系统分配的缓存资源大小。
通过上述实施例可以看出,本申请通过对于预设时间段内数据流的获取,并根据预设字段对所述数据流进行聚合,然后根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于时间戳的可信性以及唯一性,可以提高统计过程的准确性与稳定性;而且由于预设时间段的设定,对于不同聚合时长的场景适配不同的统计方法,使得统计过程更为灵活,并且可以达到实时统计的效果;进一步的,由于时间戳便于读取,节约了统计的时间,提高了统计过程的实时性以及效率。
上述实施例提供了一种可能场景下将输入数据流按照hash表和链表方式处理的方法,下面结合附图对具体的流程进行说明,如图5所示,为本申请实施例提供的一种数据流处理的方法的流程图,本申请实施例至少包括以下步骤:
501、获取预设时间段内的数据流。
本实施例中,以上述数据流处理系统框架中的服务器作为执行主体,可以理解的是,此处服务器可以指示上述系统框架中的聚合统计服务器,也可以是上述系统框架中多个部分的集合,例如:配置中心与聚合统计服务器的集合;此外,本实施例所提供的数据流处理的方法也可以以程序的形式应用于数据源或目标服务器的相关处理期间中,具体呈现形式应实际场景而定,此处以服务器为例进行说明。
本实施例中,预设时间段可以是人为设定的,例如:用户设定获取最近1天的数据流;预设时间段也可以是服务器根据历史统计的预设时间段自动生成,例如:历史统计中显示预设时间段设置为1200秒的次数最多,则在无人为设定的情况下,服务器自动设置预设时间段为1200秒;另外,预设时间段的设定也可以和预设字段进行关联,即当确定预设字段后会自动生成其相对应的预设时间段,例如:预设字段为用户,则在无人为设定的前提下,自动设置预设时间段为24小时。
可以理解的是,数据流可以来源于一个数据源,也可以来源于多个数据源,服务器还可以指定的获取某一特定数据源的数据流;另一方面,目标服务器可以是一个或多个,具体数量因实际场景而定,此处不做限定。
可选的,在获取数据流之后,服务器可以根据当前数据流的大小分配相应的内存资源,并可以以预设时间段为间隔,周期性的对该内存资源的额度进行更新,以达到节约系统资源的目的。
502、根据预设字段生成关键字key。
本实施例中,预设字段可以根据用户的输入,也可以根据数据流的特点相应的设定,例如:若服务器检测到数据流的来源为移动终端,则设置预设字段为用户。
可以理解的是,预设字段可以是一个词组,也可以是多个词组的组合,还可以是一个或多个词组根据预设的语法树关联而成,例如:语法树中规定客户端IP与用户数关联,则当输入预设字段为用户时,也可以是自动生成客户端IP的相关字段。
本实施例中,key可以由预设字段通过murmurhash算法生成,预设字段在生成key的同时,也可以生成相应的创建时间、指向对应统计量的数据节点的指针信息,其中,通过该指针信息可以读取或修改相应的统计量信息。可以理解的是,对于不同的统计规则也可以采用上述转化的方法,例如:对对于去重统计的场景中,key也可以由预设字段通过murmurhash算法生成,并储存相应key的创建时间。
可选的,在根据预设字段对数据流进行聚合之前,可以对预设字段进行筛选,即在统计过程中,系统允许根据数据中部分字段是否满足一定条件进行过滤,即对只有满足一定条件的数据才进行统计。这里的条件过滤是通过分析用户配置的表达式,生成抽象语法树完成的。表达式可以是如下的形式:
ullPtczUin>=10000&&(ulPTCZIp==ulSubCaptchaIp||ullPtczUin==ullSubCa ptchaUin)
其中,表达式的分析过程使用了flex和binson这两个开源工具进行词法分析和语法分析,完成从表达式字符串到抽象语法树的转化。语法树中的节点有一个共同的基类,并提供filter抽象接口,不同节点对于该接口有不同的实现。在过滤过程中,通过输入数据并调用语法树根部的filter接口,递归完成整个过滤过程。
可选的,在根据数据流生成相应的key之后,可以根据key的数量以及规定hash表的单元大小确定系统应分配的缓存资源大小,以便于系统对于缓存资源进行规划,并进行相应的调整,保证系统的正常运行。
503、根据key将数据流聚合到对应的数据节点中。
本实施例中,数据节点的集合可以看做是一种用于统计量缓存的连续共享内存空间;其中,按照每条记录需要存储的统计量大小,分成一个个存储单元,每个存储单元占用的空间相同。存储单元分成头部和数据部分两部分:头部保存了其对应的聚合字段信息和一个表示该单元是否被使用的标识位;数据部分按照配置的统计量信息以二进制形式存储相应的统计量。
具体的,上述储存逻辑的实现可以通过对于传输协议的规定来达到,数据流的传输可以参照图6提供的传输协议的形式对数据进行储存,如图6所示,是本申请实施例提供的一种数据流传输协议示意图。图中,输入数据流分为两部分:头部信息和输入字段信息;其中,头部信息中保存一些公共信息,如包长度、业务id、回包地址等;输入字段信息则是用二进制形式保存输入的字段信息,在一种可能的场景中,如果输入的字段是int型,则用四个字节保存,如果是long型则用8字节保存,具体形式形式因实际场景而定,字段顺序按照配置的顺序依次排列。
另外,输出数据流包括头部信息、输入字段信息和输出字段信息,其中,头部信息、输入字段信息的相关描述输入数据流完全一致;输出字段信息中同样用二进制形式存储了计算的聚合统计量,顺序也是和用户配置的顺序相同。在读取相应统计量的过程中,需要知道该字段的起始地址、字段类型和字段长度。其中字段类型和字段长度可以从配置文件中获取,起始地址可以根据每个字段的长度计算出来。
504、判断预设时间段的时长与预设聚合时长的大小关系。
本实施例中,预设聚合时长可以是人为设置的,但是由于数据流场景的多样性,预设聚合时长也可以根据历史数据中相关数据流设置的预设聚合时长进行设定。
可以理解的是,结合图2中所示的统计过程的系统架构,可以将预设时间段的时长大于预设聚合时长时获取的数据流输入长时聚合引擎,将预设时间段的时长小于或等于预设聚合时长时获取的数据流输入短时聚合引擎,并根据不同引擎的统计逻辑进行统计分析。
在一种可能的场景中,可能存在多个数据流的统计分析任务,此时可以根据本实施例中的判断方法将数据流对应的输入不同的聚合引擎中,以得到更为准确的统计结果。
505、选择与判断结果相应的统计方式。
本实施例中,若预设时间段的时长大于预设聚合时长,则可以视为长时聚合的过程;若预设时间段的时长小于或等于预设聚合时长,则可以视为短时聚合的过程。
对于长时聚合的过程,首先查询由当先数据流聚合的key是否在hash表中,如果存在,则获取创建时间,并更新统计量缓存中相应的统计量计数;在一种可能的场景中,该key的存在时间可能大于预设聚合时长,即该key对应的数据可能部分为在预设时间段之外获取的数据流,此时,将其从hash表中删除,同时通过其对应的统计量缓存指针清空对应的统计量缓存单元,然后以该聚合key新建一个hash单元插入hash表中,同时分配一个空闲的统计量缓存单元,即第二数据节点。
应当注意是的,对于预设统计规则为去重统计的过程,需要判断对应字段是不是第一次出现,只有在第一次出现时才进行统计。在更新的过程中,也需要判断数据是否超过聚合时间,超过的情况下需要删除。
对于短时聚合的过程,首先查询key是否存在hash表中,如果存在,则通过其存储的指针信息,找到对应数据节点中的链表的第一个存储单元,开始从前向后遍历。将所有不在聚合时间内的存储单元清空,同时更新对应的统计量。如果链表中所有的存储单元都已经过期,则将该key从聚合hash中删除,同时清空对应的统计量单元。
在一种可能的场景中,如果该key不存在hash表中,则以该key新建一个hash单元插入hash表中,同时分配一个空闲的统计量缓存单元,然后将该条记录的相关数据存入数据缓存单元,并更新相应的链表信息已经统计量信息。
应当注意的是,对于预设统计规则为去重统计的过程,需要利用hash表中存储的该字段出现次数判断是否要对相应的统计量进行增加。具体来说,如果是第一次出现,则需要对相应的统计量加1。如果出现次数字段减少到零,则需要对相应的统计量减1。每次数据链表中有数据被淘汰或者新的数据加入,都需要对去重hash进行更新。
506、根据得到的统计方式对数据流进行统计。
本实施例中,结合上述步骤505中的相关描述,对长时聚合的过程可以采用计数器的方法进行统计,即每当有新的数据流到来时,根据时间戳的唯一性,控制服务器内置的计数器加1,根据计数器的指示获得统计指标的统计量;对短时聚合的过程可以采用按照指针信息依次遍历其中数据的统计方式,根据指针信息指示范围内的数据得到相关的统计量。
可选的,在统计指标的统计量之前,可以比较预设时间段与预设聚合时长的大小,便于判断采用何种统计策略,对应的,该过程的实现过程可以基于上述数据流处理系统框架中的长时聚合引擎和短时聚合引擎,即将预设时间段大于预设聚合时长的数据流交由长时聚合引擎处理,将预设时间段小于或等于预设聚合时长的数据流交由短时聚合引擎处理;具体的,长时聚合引擎和短时聚合引擎可以属于上述服务器的部件或内部程序的写入,也可以作为外接的硬件设备。
本实施例中,预设统计规则包括一般统计,即统计数量或其他参数;也可以是去重统计,即只在key为第一次出现时才统计;也可以是包括一些数据处理的统计过程,例如:计算统计量的均值或方差后的数据作为统计数据,具体计算方式因实际场景而定。
可选的,可以规定多个统计规则处理数据流,即基于不同的统计逻辑进行统计,以参照并得出相应的结果;在基于不同的统计规则的场景中,hash表的命名也可以相应的变化,例如:基于一般统计规则过程中的hash表可以称为聚集hash表,相应的,若此时也需要利用去重统计的方法对数据流进行统计,则去重统计过程中的hash表可以称为去重hash表。
可以理解的是,基于不同命名的hash表应分配相应的缓存资源,即在一种可能的场景中,可以根据统计过程中聚集hash表与去重hash表的和确定系统分配的缓存资源大小。
通过上述实施例可以看出,本申请通过对于预设时间段内数据流的获取,并根据预设字段对所述数据流进行聚合,然后根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于时间戳的可信性以及唯一性,可以提高统计过程的准确性与稳定性;而且由于预设时间段的设定,对于不同聚合时长的场景适配不同的统计方法,使得统计过程更为灵活,并且可以达到实时统计的效果;进一步的,通过hash表和链表的结合使用,可以配置多种统计方式,而且在统计过程中节约了统计的时间,提高了统计过程的实时性以及效率。
上述方法实施例可以应用在服务器中,也可以应用在具有相应检测功能的终端中,并将相关的处理结果通过显示模块进行与用户的交互过程,在一种可能的显示方式中,可以采用如图7所述的显示方式,图7为本申请实施例提供的一种数据流处理的界面显示示意图。该界面可以包括预设字段、聚合时间和设置聚合输出,其中,设置聚合输出可以包括序号、列名、长度或聚合函数,可以理解的是,列名用于指示相应的统计项目,长度用于指示对应统计项目的统计量,而聚合函数用于指示具体的统计方法,即上述方法实施例中指示的预设统计规则。
应当注意的是,本显示界面为一种示例,图3至图6实施例中涉及的相关参数均可以进行显示,具体显示方式因实际场景而定。
另外,上述实施例中指出了根据数据流、key或不同统计规则下的hash表种类进行缓存资源的估计,但基于一种可能的应用场景中,预设时间段为比较长的时长,此时,还可以根据单位时间内的数据流量确定缓存资源的分配,例如:在对于数据流缓存资源的估计过程中,首先确定单位时间内的数据流量,然后确定数据流的聚合时长,并确定每条数据流占用的资源大小,则分配的数据缓存=聚合时长*单位时间内的数据流量*每条数据流占用的资源大小;在对于统计量的缓存资源的估计过程中,首先确定聚合时间内key的数量,然后确定单个数据节点的资源占用大小,则分配的统计量缓存=聚合时间内key的数量*单个数据节点的资源占用大小。上述缓存资源的估计方法可以应用在图3或图5所对应的实施例中,具体的应用方式因实际场景而定,此处不做限定。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图8,图8为本申请实施例提供的处理装置的结构示意图,处理装置800包括:
获取单元801,用于获取预设时间段内的数据流和预设字段;
处理单元802,用于根据预设算法处理所述预设字段,以生成关键字key,所述key用于指示所述数据流在散列hash表中对应的第一数据节点,所述第一数据节点中包括多个链表单元;
聚合单元803,用于根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
统计单元804,用于根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量。
优选的,在一些可能的实现方式中,所述聚合单元803,具体用于根据预设算法处理所述预设字段,以生成关键字key,所述key用于指示所述数据流在散列hash表中对应的第一数据节点;
所述聚合单元803,具体用于根据所述key将所述数据流聚合到对应的所述第一数据节点中。
优选的,在一些可能的实现方式中,所述聚合单元803,还用于判断所述预设时间段的时长与预设聚合时长的大小关系;
所述统计单元804,具体用于若所述预设时间段的时长大于所述预设聚合时长,则根据所述时间戳的变化量确定所述统计指标的统计量。
优选的,在一些可能的实现方式中,所述统计单元804,还用于若所述预设时间段的时长小于所述预设聚合时长,则根据所述时间戳确定预设时间段内所述数据流在所述第一数据节点中的指针信息,所述指针信息用于指示所述数据流在所述第一数据节点中的写入范围;
所述统计单元804,还用于根据所述指针信息统计所述写入范围内的数据流,以确定所述统计指标的统计量。
优选的,在一些可能的实现方式中,所述统计单元804,具体用于根据所述时间戳确定所述数据流的存在时长;
所述统计单元804,具体用于若所述存在时长大于所述预设聚合时长,则更新所述key在hash表中的对应关系,更新后的对应关系用于指示第二数据节点,所述第二数据节点为当前未根据所述数据流输入所述key的数据节点;
所述统计单元804,具体用于根据所述数据流的时间戳在所述第二数据节点中的变化量确定所述统计指标的统计量。
优选的,在一些可能的实现方式中,所述聚合单元803,具体用于判断所述预设字段是否满足过滤条件,所述过滤条件基于预设字段与预设语法树的对应关系设定;若满足,则根据预设字段对所述数据流进行聚合。
优选的,在本申请一些可能的实现方式中,若所述预设统计方式为去重统计,则所述处理单元802,还用于:获取所述key的标识信息,所述标识信息基于所述key的创建时间确定;
所述处理单元802,还用于:根据预设规则对所述key进行去重,以得到去重后的key,所述预设规则基于所述标识信息的相似度设定;
所述聚合单元803,具体用于:
根据所述去重后的key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
优选的,在本申请一些可能的实现方式中,其特征在于,所述获取单元801,还用于根据所述数据流的大小确定存储空间信息;
所述处理单元802,还用于根据所述key的数量更新所述存储空间信息。
通过获取单元801对于预设时间段内数据流的获取,然后聚合单元803根据预设字段对所述数据流进行聚合,然后统计单元804根据聚合后的数据流的时间戳的变化情况对所述统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,由于时间戳的可信性以及唯一性,可以提高统计过程的准确性与稳定性;而且由于预设时间段的设定,对于不同聚合时长的场景适配不同的统计方法,使得统计过程更为灵活,并且可以达到实时统计的效果;进一步的,通过hash表和链表的结合使用,可以配置多种统计方式,而且在统计过程中节约了统计的时间,提高了统计过程的实时性以及效率。
本申请实施例还提供了一种处理装置,请参阅图9,图9为本申请实施例提供的另一种处理装置的结构示意图,该处理装置900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对处理装置中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在处理装置900上执行存储介质930中的一系列指令操作。
处理装置900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由处理装置所执行的步骤可以基于该图9所示的处理装置结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有数据流处理指令,当其在计算机上运行时,使得计算机执行如前述图3至图6所示实施例描述的方法中处理装置所执行的步骤。
本申请实施例中还提供一种包括数据流处理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图6所示实施例描述的方法中处理装置所执行的步骤。
本申请实施例还提供了一种数据流处理系统,所述数据流处理系统可以包含图8所描述实施例中的处理装置,或者图9所描述的处理装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,处理装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (12)

1.一种数据流处理的方法,其特征在于,包括:
获取预设时间段内的数据流和预设字段;
根据预设算法处理所述预设字段,以生成关键字key,所述key用于指示所述数据流在散列hash表中对应的第一数据节点,所述第一数据节点中包括多个链表单元;
根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元;
判断所述预设时间段的时长与预设聚合时长的大小关系;
根据聚合后的数据流的时间戳的变化情况对统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,具体包括:
若所述预设时间段的时长大于所述预设聚合时长,则根据所述时间戳确定所述key的存在时长;
若所述存在时长大于所述预设聚合时长,则更新所述key在hash表中的对应关系,更新后的对应关系用于指示第二数据节点,所述第二数据节点为当前未根据所述数据流输入所述key的数据节点;
根据所述数据流的时间戳在所述第二数据节点中的变化量确定所述统计指标的统计量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述预设时间段的时长小于所述预设聚合时长,则根据所述时间戳确定所述预设时间段内所述数据流在所述第一数据节点中的指针信息,所述指针信息用于指示所述数据流在所述第一数据节点中的写入范围;
根据所述指针信息统计所述写入范围内的数据流,以确定所述统计指标的统计量。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据所述key将所述数据流聚合到对应的所述第一数据节点中,包括:
判断所述预设字段是否满足过滤条件,所述过滤条件基于预设字段与预设语法树的对应关系设定;
若满足,则根据所述key将所述数据流聚合到对应的所述第一数据节点中。
4.根据权利要求1-2任一项所述的方法,其特征在于,若所述预设统计规则为去重统计,则所述根据预设算法处理所述预设字段,以生成关键字key之后,所述方法还包括:
获取所述key的标识信息,所述标识信息基于所述key的创建时间确定;
根据所述预设统计规则对所述key进行去重,以得到去重后的key,所述预设统计规则基于所述标识信息的相似度设定;
所述根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元,包括:
根据所述去重后的key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
5.根据权利要求1-2任一项所述的方法,其特征在于,所述获取预设时间段内的数据流和预设字段之后,所述方法还包括:
根据所述数据流的大小确定存储空间信息;
所述根据预设算法处理所述预设字段,以生成关键字key之后,所述方法还包括:
确定所述key的数量信息;
根据所述key的数量信息更新所述存储空间信息。
6.一种数据流处理的装置,其特征在于,包括:
获取单元,用于获取预设时间段内的数据流和预设字段;
处理单元,用于根据预设算法处理所述预设字段,以生成关键字key,所述key用于指示所述数据流在散列hash表中对应的第一数据节点,所述第一数据节点中包括多个链表单元;
聚合单元,用于根据所述key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元;
所述聚合单元,还用于判断所述预设时间段的时长与预设聚合时长的大小关系;
统计单元,用于根据聚合后的数据流的时间戳的变化情况对统计指标按照预设统计规则进行统计,以得到所述统计指标的统计量,具体包括:
若所述预设时间段的时长大于所述预设聚合时长,则根据所述时间戳确定所述key的存在时长;
若所述存在时长大于所述预设聚合时长,则更新所述key在hash表中的对应关系,更新后的对应关系用于指示第二数据节点,所述第二数据节点为当前未根据所述数据流输入所述key的数据节点;
根据所述数据流的时间戳在所述第二数据节点中的变化量确定所述统计指标的统计量。
7.根据权利要求6所述的装置,其特征在于,所述统计单元,还用于:
若所述预设时间段的时长小于所述预设聚合时长,则根据所述时间戳确定所述预设时间段内所述数据流在所述第一数据节点中的指针信息,所述指针信息用于指示所述数据流在所述第一数据节点中的写入范围;
根据所述指针信息统计所述写入范围内的数据流,以确定所述统计指标的统计量。
8.根据权利要求6-7任一项所述的装置,其特征在于,所述聚合单元,具体用于:
判断所述预设字段是否满足过滤条件,所述过滤条件基于预设字段与预设语法树的对应关系设定;
若满足,则根据所述key将所述数据流聚合到对应的所述第一数据节点中。
9.根据权利要求6-7任一项所述的装置,其特征在于,若所述预设统计规则为去重统计,则所述处理单元,还用于:
获取所述key的标识信息,所述标识信息基于所述key的创建时间确定;
根据所述预设统计规则对所述key进行去重,以得到去重后的key,所述预设统计规则基于所述标识信息的相似度设定;
所述聚合单元,还用于:
根据所述去重后的key将所述数据流聚合到对应的所述第一数据节点中,以得到根据时间戳进行排列的多个所述链表单元。
10.根据权利要求6-7任一项所述的装置,其特征在于,
所述获取单元,还用于根据所述数据流的大小确定存储空间信息;确定所述key的数量信息;
所述处理单元,还用于根据所述key的数量信息更新所述存储空间信息。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行权利要求1至5任一项所述的数据流处理的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1至5任一项所述的数据流处理的方法。
CN201910718785.9A 2019-08-05 2019-08-05 一种数据流处理的方法以及相关装置 Active CN111177201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910718785.9A CN111177201B (zh) 2019-08-05 2019-08-05 一种数据流处理的方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910718785.9A CN111177201B (zh) 2019-08-05 2019-08-05 一种数据流处理的方法以及相关装置

Publications (2)

Publication Number Publication Date
CN111177201A CN111177201A (zh) 2020-05-19
CN111177201B true CN111177201B (zh) 2023-10-13

Family

ID=70650049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910718785.9A Active CN111177201B (zh) 2019-08-05 2019-08-05 一种数据流处理的方法以及相关装置

Country Status (1)

Country Link
CN (1) CN111177201B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506581B (zh) * 2020-06-17 2020-11-06 北京北龙超级云计算有限责任公司 一种数据聚合方法和服务器
CN111882179A (zh) * 2020-07-09 2020-11-03 福建奇点时空数字科技有限公司 一种基于数据流处理的网络安全态势感知系统平台
CN112000841B (zh) * 2020-07-29 2023-09-26 北京达佳互联信息技术有限公司 电子标签数据的处理方法、装置、电子设备及存储介质
CN112507208B (zh) * 2020-11-02 2021-07-20 北京迅达云成科技有限公司 一种基于大数据的网络数据采集系统
CN113010852B (zh) * 2021-03-29 2024-07-30 北京金山云网络技术有限公司 数据的计量统计方法、装置、电子设备及存储介质
CN113872976B (zh) * 2021-09-29 2023-06-02 绿盟科技集团股份有限公司 一种基于http2攻击的防护方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317811A (zh) * 2014-09-25 2015-01-28 小米科技有限责任公司 业务指标的统计方法、装置及服务器
CN106294866A (zh) * 2016-08-23 2017-01-04 北京奇虎科技有限公司 一种日志处理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306953B2 (en) * 2010-08-31 2012-11-06 International Business Machines Corporation Online management of historical data for efficient reporting and analytics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317811A (zh) * 2014-09-25 2015-01-28 小米科技有限责任公司 业务指标的统计方法、装置及服务器
CN106294866A (zh) * 2016-08-23 2017-01-04 北京奇虎科技有限公司 一种日志处理方法和装置

Also Published As

Publication number Publication date
CN111177201A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN111177201B (zh) 一种数据流处理的方法以及相关装置
US11023504B2 (en) Searching unstructured data in response to structured queries
US9633079B2 (en) Generating and using temporal metadata partitions
US9178824B2 (en) Method and system for monitoring and analysis of network traffic flows
US8179799B2 (en) Method for partitioning network flows based on their time information
US9191325B2 (en) Method and system for processing network traffic flow data
US8601113B2 (en) Method for summarizing flow information from network devices
CN107634848A (zh) 一种采集分析网络设备信息的系统和方法
CN109379390B (zh) 一种基于全流量的网络安全基线生成方法
US20160379122A1 (en) Recommendation algorithm optimization method, device and system
US11080115B2 (en) Sampling management of application programming interface (API) requests
CN110620699B (zh) 消息到达率确定方法、装置、设备和计算机可读存储介质
CN113468226A (zh) 一种业务处理方法、装置、电子设备和存储介质
CN112085535A (zh) 资源计量计费方法、装置、集群及存储介质
CN112256734A (zh) 一种大数据处理方法、装置、系统、设备和存储介质
CN114398520A (zh) 数据检索方法、系统、装置、电子设备及存储介质
WO2021147319A1 (zh) 一种数据处理方法、装置、设备及介质
CN117130851B (zh) 一种高性能计算集群运行效率评价方法及系统
CN113852490A (zh) 一种分布式存储系统中samba用户QoS实现方法、装置及设备
CN112269726A (zh) 一种数据处理方法及装置
CN112771512B (zh) 数据处理方法、数据处理系统和计算机可读介质
WO2019019387A1 (zh) 信息推送建议生成方法、装置、计算机设备和存储介质
WO2023045434A1 (zh) 访问检测方法、系统及装置
CN111221824A (zh) 存储空间的存储优化方法、装置、设备和介质
CN118093669A (zh) 大数据计算方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant