CN113760989A - 一种无界流数据处理方法、装置、设备及存储介质 - Google Patents
一种无界流数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113760989A CN113760989A CN202110158642.4A CN202110158642A CN113760989A CN 113760989 A CN113760989 A CN 113760989A CN 202110158642 A CN202110158642 A CN 202110158642A CN 113760989 A CN113760989 A CN 113760989A
- Authority
- CN
- China
- Prior art keywords
- data
- stream
- processing
- processing window
- triggering condition
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Abstract
本发明实施例公开了一种无界流数据处理方法、装置、设备及存储介质,所述方法包括:获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并基于数据处理时长判断是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并基于数据接收量判断是否满足数据量触发条件;当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流作为待处理数据进行处理,保证了数据量情况不同时,均能够合理的对无界流数据进行处理。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种无界流数据处理方法、装置、设备及存储介质。
背景技术
在流处理应用中,数据是连续不断的,因此不可能等到所有数据都接收才开始处理。常用的处理方式是将数据进行聚合类的处理。
在实现本发明的过程中,发明人发现现有技术中至少存在以下技术问题:目前的数据聚合方式仅适用于单一的数据特征,当数据特征改变时,数据聚合方式不合理,导致数据处理的准确度差。
发明内容
本发明实施例提供了一种无界流数据处理方法、装置、设备及存储介质,以实现提供一种不同数据特征均使用的数据流处理方法,提高无界流数据的处理效果。
第一方面,本发明实施例提供了一种无界流数据处理方法,包括:
获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;
针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并基于数据处理时长判断是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并基于数据接收量判断是否满足数据量触发条件;
当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
第二方面,本发明实施例还提供了一种无界流数据处理装置,包括:
数据分组模块,用于获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;
计时计量模块,用于针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并基于数据处理时长判断是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并基于数据接收量判断是否满足数据量触发条件;
数据处理模块,用于当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
第三方面,本发明实施例还提供了一种计算机设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如本发明任意实施例所提供的无界流数据处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的无界流数据处理方法。
本发明实施例通过获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;计时计量模块,用于针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并基于数据处理时长判断是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并基于数据接收量判断是否满足数据量触发条件;数据处理模块,用于当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流聚合作为待处理数据进行处理,通过在时长触发条件和数据流触发条件任一条件触发时进行数据聚合以进行数据处理,保证了数据量情况不同时,均能够合理的对无界流数据进行处理,提高了无界流数据的处理效果。
附图说明
图1是本发明实施例一所提供的一种无界流数据处理方法的流程图;
图2是本发明实施例二所提供的一种无界流数据处理方法的流程示意图;
图3是本发明实施例三所提供的一种无界流数据处理方法的流程示意图;
图4是本发明实施例四所提供的一种无界流数据处理装置的结构示意图;
图5是本发明实施例五所提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一所提供的一种无界流数据处理方法的流程图。本实施例可适用于对无界流数据进行聚合处理时的情形。该方法可以由无界流数据处理装置执行,该无界流数据处理装置可以采用软件和/或硬件的方式实现,例如,该无界流数据处理装置可配置于计算机设备中。如图1所示,该方法包括:
S110、获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口。
在本实施例中,原始数据流是实时获取的操作数据的数据序列,其中包含有多条原始数据。无界流数据处理装置接收到原始数据流后,对原始数据流中的原始数据进行分组,以将关联的原始数据分配至同一组,将不关联的原始数据分配至不同的组。具体的,将原始数据分组实际为:将原始数据发送至相应的流处理窗口,使得关联的原始数据在同一个流处理窗口进行处理。其中,对原始数据进行分组的方式在此不做限定,可以采用任意分组方式对原始数据进行分组。例如,可以采用哈希分组的方式对原始数据进行分组,即计算原始数据的哈希值,根据哈希值确定原始数据对应的流处理窗口。还可以以字段分组的方式对原始数据进行分组,将同一字段的原始数据分配至同一个流处理窗口。优选的,采用字段分组的方式对原始数据进行分组。采用字段分组的方式对原始数据进行分组,方便分组后的业务处理。具体的,分组所依据的字段可以根据实际数据需求进行设置。
以电商平台为例,各用户在电商平台上的浏览、购买、收藏等操作均为操作数据,无界流数据处理装置接收用户在电商平台上的操作数据序列作为原始数据流。可以理解的是,操作数据都对应有数据标识、用户标识等标识。可以以标识作为字段,将原始数据流分为不同的组,并分配至相应的流处理窗口,具体的标识可以根据数据处理需求设置。假设需要分析不同操作的特征,可以将字段表征“浏览”的原始数据划分为一组,分配至流处理窗口1,以根据流处理窗口1内的分组数据对浏览行为进行分析处理;将字段表征“购买”的原始数据划分为一组,分配至流处理窗口2,以根据流处理窗口2内的分组数据对购买行为进行分析处理;将字段表征“收藏”的原始数据划分为一组,分配至流处理窗口3,以根据流处理窗口3内的分组数据对收藏行为进行分析处理。假设需要分析每个用户的数据,可以将字段表征同一“用户标识”的原始数据划分为一组,分配至同一流处理窗口,以通过同一个流处理窗口内的数据实现对单个用户行为的数据处理分析。
在本实施例中,可以实时接收获取原始数据流,也可以根据预设的数据接收参数定时接收获取原始数据流。一个实施例中,获取原始数据流,包括:根据预先设定的数据流接收参数接收原始数据流,数据量接收参数包括接收时间参数和接收计数参数。可以根据数据处理需求预先设定数据接收参数,如接收时间参数和接收计数参数,以使接收到的数据不会超出程序的最大处理量。其中,接收时间参数可以根据业务需求设定,如例如业务需求要求时间延迟不能超过3秒钟,就可以定义接收时间参数为3秒,即每3秒接收一次原始数据流。接收计数参数可以根据处理能力设置,处理能力可以通过压测测试确定。
S120、针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并基于数据处理时长判断是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并基于数据接收量判断是否满足数据量触发条件。
在本实施例中,通过时长触发条件和数据量触发条件同时对流处理窗口的数据聚合进行控制。可选的,是否时长触发可以通过计时器的相关数值判断,是否数据量触发可以通过计数器的相关数值判断。
一个实施例中,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并判断数据接收时长是否满足时长触发条件,包括:计算当前时间与计时器的初始时间的时间差值,当时间差值满足设定的时间阈值时,判定数据接收时长满足时长触发条件。以通过计时器的相关数值判断是否时长触发为例,可以根据实际需求预先设置时长阈值,当数据接收时长满足预先设置的时长阈值时,认为满足时长触发条件,触发流处理窗口将接收到的分组数据聚合,以后续根据聚合的分组数据进行数据处理分析。其中,数据接收时长可以根据计时器中的初始时间和当前时间确定。即将当前时间与初始时间之间的时间差值作为数据接收时长。计时器中的初始时间为流处理窗口接收分组数据的时间。需要说明的是,当前时间与初始时间的时间差值的计算可以是数据接收触发的,也可以是时间触发的。如每接收到一条数据,计算当前时间与初始时间的时间差值,或每隔固定时间(如1秒中)计算当前时间与初始时间的差值。另一个实施例中,可以将计时器的初始时间设定为0,计时器的时间随数据接收进行累计,直接将计时器累计的数据作为数据接收时长。
可选的,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并判断数据接收量是否满足数据量触发条件,包括:每接收到一条分组数据,累加计数器的计数值,当计数器的计数值到达设定的数据量阈值时,判定数据接收量满足数据量触发条件。以通过计数器的相关数值判断是否数据量触发为例,可以根据窗口处理能力预先设置数据量阈值,当数据接收量到达预先设置的数据量阈值时,认为满足数据量触发条件,触发流处理窗口将接收到的分组数据聚合,以后续根据聚合的分组数据进行数据处理分析。其中,计数器的初始值可以设置为0,每接收到一条分组数据,将计数器的数值累加1,将累加后的数值作为数据接收量。
S130、当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
在本实施例中,通过时长触发以及数据量触发中的任一触发方式,均可实现对数据聚合处理的触发。示例性的,假设数据接收时长先满足时长触发条件,则直接将接收到的分组数据聚合处理;假设数据接收量先满足数据量触发条件,也直接将接收到的分组数据聚合处理。
在上述方案的基础上,当时长触发条件或数据量触发条件任一条件满足时,对计时器和计数器进行重置。为保证基于计数器和/或计时器的数据处理触发更加准确,在当次触发后,将计数器和计时器中的数据重置,以使之后可以根据重置后的数据准确的进行数据处理的下次触发。
可选的,对计时器和计数器进行重置,包括:将计数器的数值重置为0,将计时器的初始时间设置为当前时间。计数器用于累计接收到的分组数据的数据量,当触发数据聚合处理时,流处理窗口需要重新接收分组数据,重新计算接收到的数据量,因此,在任一触发条件满足时,将计数器的数值重置为0。计时器用于确定数据接收时间,可以根据数据接收时间的确定方式对计时器进行重置。若通过当前时间与初始时间差值的方式计算数据接收时间,可以将计时器的初始时间设置为当前时间;若直接将计时器的时间作为数据接收时间,则可以将计时器的数值重置为0。
本发明实施例通过获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并基于数据处理时长判断是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并基于数据接收量判断是否满足数据量触发条件;当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流聚合作为待处理数据进行处理,保证了数据量情况不同时,均能够合理的对无界流数据进行处理,提高了无界流数据的处理效果。
实施例二
图2是本发明实施例二所提供的一种无界流数据处理方法的流程图。本实施例在上述实施例的基础上,增加了通过基于最大处理能力确定时间阈值和数据量的操作。其中与上述各实施例相同或相应的术语的解释在此不再赘述。如图2所示,本实施例提供的无界流数据处理方法包括如下步骤:
S210、通过憋洪压测方式确定最大处理能力。
为合理的确定计时器的时间阈值和计数器的数据量阈值,需要首先确定实时计算程序使用的资源,在确定的资源下找到最大处理能力。具体的,对无界流数据处理装置进行压测测试,以确定无界流数据处理装置的最大处理能力。具体的测试方式可参照现有技术中的压测测试方式,在此不再赘述。
S220、基于最大处理能力和流处理窗口的并发数量确定各流处理窗口的窗口处理能力。
上述步骤中确定的最大处理能力为所有窗口累加的最大处理能力,可以将最大处理能力与流处理窗口的并发数量的商作为每个窗口的最大的窗口处理能力。其中,流处理窗口的并发数量可以根据处理器集群数量确定。
S230、基于窗口处理能力设定计时器的时间阈值和计数器的数据量阈值。
在确定每个流处理窗口的窗口处理能力后,将窗口处理能力作为计数器的数据量阈值,避免流处理窗口接收过量的分组数据导致系统崩溃,结合窗口处理能力以及数据接收速度确定计时器的时间阈值,同样避免流处理窗口接收过量的分组数据导致系统崩溃。
S240、获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口。
S250、针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并判断数据接收时长是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并判断数据接收量是否满足数据量触发条件。
S260、当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流作为待处理数据进行处理。
本实施例在上述实施例的基础上,增加了确定时间阈值和数据量阈值的操作,通过憋洪压测方式确定最大处理能力,基于最大处理能力和流处理窗口的并发数量确定各流处理窗口的窗口处理能力,基于窗口处理能力设定计时器的时间阈值和计数器的数据量阈值,通过基于系统的最大处理能力确定数据聚合触发的阈值,保证了系统的稳定性,巧妙地解决了峰值处理能力和平时处理能力平衡的问题。
实施例三
图3是本发明实施例三所提供的一种无界流数据处理方法的流程示意图。本实施例在上述方案的基础上,提供了一种优选实施例。
首先,需要确定窗口的窗口处理能力。具体可以为:(1)给定资源规格。首先确定实时计算程序使用的资源,需要在确定的资源下找到最大处理能力。(2)憋洪压测。具体方法可参照现有技术,通过憋洪压测能找到计算程序最大处理能力max_process_count,例如30万条每秒钟。(3)确定窗口处理能力。假设每秒钟同时有n个窗口(即流处理窗口的并发数量)在处理数据,那么每个窗口的窗口处理能力是window_max_process_count=max_process_count/n。
如图3所示,无界流数据处理方法主要包括:
1、创建window(窗口)分配器
(1)接收时间参数,定义为timeoutTm。其可以根据业务需求确定,例如业务方要求时间延迟不能超过3秒钟,就可以定义timeoutTm为3秒。
(2)接收计数参数,定义为maxCount。即为上述确定的窗口处理能力window_max_process_count。
2、创建触发器。
(1)创建计时器timer,初始值为计时器创建时间t0,设置超时时间为时间参数timeoutTm。
(2)创建计数器counter,初始值为0,设置最大值为计数参数maxCount,技术参数的数值可以参考窗口处理能力window_max_process_count。
3、基于数据元素触发
当window接收到一条数据时,
(1)对计数器counter加1,判断counter值是否超过maxCount。如果超过maxCount则进入第5步,将计数器和计时器进行状态重置;否则进入(2)。
(2)当前时间减去timer初始值t0,判断差值是否大于等于timoutTm,如果大于,进入第5步,将计数器和计时器进行状态重置;否则不进行处理。
4、基于处理时间触发
每个固定时间(例如1秒钟),用当前时间减去timer初试值t0,判断差值是否大于等于timoutTm,如果大于,并且counter值不为0,进入步骤6;否则不进行处理。
5、状态重置
(1)将counter值置为0。
(2)将timer值置为当前时间。
6、触发计算
将接收到的分组数据发送至数据处理装置,并向数据处理装置发送可以处理的状态,进行数据处理计算。
本发明实施例提供的方法在海量数据实时计算过程中,在大促峰值期间,保障了程序的最大处理能力,且不会被海量数据压垮程序;在平时,数据量相对少时,不会造成数据延迟过大,巧妙地解决了峰值处理能力和平时处理能力平衡的问题
实施例四
图4是本发明实施例四所提供的一种无界流数据处理装置的结构示意图。该无界流数据处理装置可以采用软件和/或硬件的方式实现,例如该无界流数据处理装置可以配置于计算机设备中。如图4所示,该装置包括数据分组模块410、计时计量模块420和数据处理模块430,其中:
数据分组模块410,用于获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;
计时计量模块420,用于针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并判断数据接收时长是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并判断数据接收量是否满足数据量触发条件;
数据处理模块430,用于当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流作为待处理数据进行处理。
本发明实施例通过获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各分组数据流分配至各流处理窗口;针对每个流处理窗口,基于流处理窗口关联的计时器确定流处理窗口的数据接收时长并判断数据接收时长是否满足时长触发条件,基于流处理窗口关联的计数器确定流处理窗口的数据接收量并判断数据接收量是否满足数据量触发条件;当时长触发条件或数据量触发条件任一条件满足时,将流处理窗口接收到的分组数据流作为待处理数据进行处理,通过在时长触发条件和数据流触发条件任一条件触发时进行数据聚合以进行数据处理,保证了数据量情况不同时,均能够合理的对无界流数据进行处理,提高了无界流数据的处理效果。
可选的,在上述方案的基础上,计时计量模块420具体用于:
计算当前时间与计时器的初始时间的时间差值,当时间差值满足设定的时间阈值时,判定数据接收时长满足时长触发条件。
可选的,在上述方案的基础上,计时计量模块420具体用于:
每接收到一条分组数据,累加计数器的计数值,当计数器的计数值满足设定的数据量阈值时,判定数据接收量满足数据量触发条件。
可选的,在上述方案的基础上,装置还包括数据重置模块,用于:
当时长触发条件或数据量触发条件任一条件满足时,对计时器和计数器进行重置。
可选的,在上述方案的基础上,装置还包括阈值设置模块,用于:
通过憋洪压测方式确定最大处理能力;
基于最大处理能力和流处理窗口的并发数量确定各流处理窗口的窗口处理能力;
基于窗口处理能力设定计时器的时间阈值和计数器的数据量阈值。
可选的,在上述方案的基础上,数据分组模块410具体用于:
根据预先设定的数据流接收参数接收原始数据流,数据量接收参数包括接收时间参数和接收计数参数。
可选的,在上述方案的基础上,数据分组模块410具体用于:
通过字段分组对原始数据进行分组,得到分组数据流。
本发明实施例所提供的无界流数据处理装置可执行本发明任意实施例所提供的无界流数据处理方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五所提供的一种计算机设备的结构示意图。图5是本发明实施例六所提供的计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备512的框图。图5显示的计算机设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备512以通用计算设备的形式表现。计算机设备512的组件可以包括但不限于:一个或者多个处理器515,系统存储器528,连接不同系统组件(包括系统存储器528和处理器515)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器515或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)530和/或高速缓存存储器532。计算机设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储装置534可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例如存储器528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备512也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该计算机设备512交互的设备通信,和/或与使得该计算机设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,计算机设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与计算机设备512的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器515通过运行存储在系统存储器528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的无界流数据处理方法,该方法包括:
获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各所述分组数据流分配至各流处理窗口;
针对每个所述流处理窗口,基于所述流处理窗口关联的计时器确定所述流处理窗口的数据接收时长并基于所述数据处理时长判断是否满足时长触发条件,基于所述流处理窗口关联的计数器确定所述流处理窗口的数据接收量并基于所述数据接收量判断是否满足数据量触发条件;
当所述时长触发条件或所述数据量触发条件任一条件满足时,将所述流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的无界流数据处理方法的技术方案。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所提供的无界流数据处理方法,该方法包括:
获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各所述分组数据流分配至各流处理窗口;
针对每个所述流处理窗口,基于所述流处理窗口关联的计时器确定所述流处理窗口的数据接收时长并基于所述数据处理时长判断是否满足时长触发条件,基于所述流处理窗口关联的计数器确定所述流处理窗口的数据接收量并基于所述数据接收量判断是否满足数据量触发条件;
当所述时长触发条件或所述数据量触发条件任一条件满足时,将所述流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的无界流数据处理方法的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种无界流数据处理方法,其特征在于,包括:
获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各所述分组数据流分配至各流处理窗口;
针对每个所述流处理窗口,基于所述流处理窗口关联的计时器确定所述流处理窗口的数据接收时长并基于所述数据处理时长判断是否满足时长触发条件,基于所述流处理窗口关联的计数器确定所述流处理窗口的数据接收量并基于所述数据接收量判断是否满足数据量触发条件;
当所述时长触发条件或所述数据量触发条件任一条件满足时,将所述流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述流处理窗口关联的计时器确定所述流处理窗口的数据接收时长并基于所述数据处理时长判断是否满足时长触发条件,包括:
计算当前时间与所述计时器的初始时间的时间差值,当所述时间差值到达设定的时间阈值时,判定所述数据接收时长满足所述时长触发条件。
3.根据权利要求1所述的方法,其特征在于,所述基于所述流处理窗口关联的计数器确定所述流处理窗口的数据接收量并基于所述数据接收量判断是否满足数据量触发条件,包括:
每接收到一条分组数据,累加所述计数器的计数值,当所述计数器的计数值到达设定的数据量阈值时,判定所述数据接收量满足所述数据量触发条件。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述时长触发条件或所述数据量触发条件任一条件满足时,对所述计时器和所述计数器进行重置。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过憋洪压测方式确定最大处理能力;
基于所述最大处理能力和所述流处理窗口的并发数量确定各流处理窗口的窗口处理能力;
基于所述窗口处理能力设定所述计时器的时间阈值和所述计数器的数据量阈值。
6.根据权利要求1所述的方法,其特征在于,所述获取原始数据流,包括:
根据预先设定的数据流接收参数接收所述原始数据流,所述数据量接收参数包括接收时间参数和接收计数参数。
7.根据权利要求1所述的方法,其特征在于,所述将原始数据流中的原始数据进行分组,得到至少一个分组数据流,包括:
通过字段分组对所述原始数据进行分组,得到所述分组数据流。
8.一种无界流数据处理装置,其特征在于,包括:
数据分组模块,用于获取原始数据流,将原始数据流中的原始数据进行分组,得到至少一个分组数据流,并将各所述分组数据流分配至各流处理窗口;
计时计量模块,用于针对每个所述流处理窗口,基于所述流处理窗口关联的计时器确定所述流处理窗口的数据接收时长并基于所述数据处理时长判断是否满足时长触发条件,基于所述流处理窗口关联的计数器确定所述流处理窗口的数据接收量并基于所述数据接收量判断是否满足数据量触发条件;
数据处理模块,用于当所述时长触发条件或所述数据量触发条件任一条件满足时,将所述流处理窗口接收到的分组数据流聚合作为待处理数据进行处理。
9.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的无界流数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的无界流数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110158642.4A CN113760989A (zh) | 2021-02-04 | 2021-02-04 | 一种无界流数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110158642.4A CN113760989A (zh) | 2021-02-04 | 2021-02-04 | 一种无界流数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760989A true CN113760989A (zh) | 2021-12-07 |
Family
ID=78786548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110158642.4A Pending CN113760989A (zh) | 2021-02-04 | 2021-02-04 | 一种无界流数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760989A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610765A (zh) * | 2022-03-14 | 2022-06-10 | 平安国际智慧城市科技股份有限公司 | 流计算方法、装置、设备及存储介质 |
-
2021
- 2021-02-04 CN CN202110158642.4A patent/CN113760989A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610765A (zh) * | 2022-03-14 | 2022-06-10 | 平安国际智慧城市科技股份有限公司 | 流计算方法、装置、设备及存储介质 |
CN114610765B (zh) * | 2022-03-14 | 2024-05-03 | 平安国际智慧城市科技股份有限公司 | 流计算方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3857381B1 (en) | Collecting samples hierarchically in a datacenter | |
US20210038995A1 (en) | Method and system for gathering time-varying metrics | |
CN107528749A (zh) | 基于云防护日志的网站可用性检测方法、装置及系统 | |
US10411969B2 (en) | Backend resource costs for online service offerings | |
US20170185454A1 (en) | Method and Electronic Device for Determining Resource Consumption of Task | |
CN111290696A (zh) | 一种应用程序组件的流控方法及装置 | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
US20100017514A1 (en) | Method for determining service demands in a network load balanced scenario | |
CN108932241B (zh) | 日志数据统计方法、装置及节点 | |
CN105471938B (zh) | 服务器负载管理方法及装置 | |
CN113760989A (zh) | 一种无界流数据处理方法、装置、设备及存储介质 | |
CN111177513A (zh) | 异常访问地址的确定方法、装置、电子设备及存储介质 | |
CN112596985B (zh) | 一种it资产探测方法、装置、设备和介质 | |
CN108494635A (zh) | 一种基于云计算的网络流量探测系统 | |
CN111913861A (zh) | 物联网系统的性能测试方法、装置、设备及介质 | |
CN108418730B (zh) | 网络流量测试方法、装置、设备以及计算机可读存储介质 | |
CN115811483A (zh) | 一种网络状态监测方法、装置、电子设备和存储介质 | |
CN115016890A (zh) | 虚拟机资源分配方法、装置、电子设备及存储介质 | |
Guo et al. | Sketchpolymer: Estimate per-item tail quantile using one sketch | |
CN112702227B (zh) | 心跳事件检测方法、装置、设备及计算机可读存储介质 | |
CN113656314A (zh) | 压力测试处理方法及装置 | |
CN110020166A (zh) | 一种数据分析方法及相关设备 | |
US8949862B2 (en) | Rate of operation progress reporting | |
CN113079062A (zh) | 一种资源调整方法、装置、计算机设备和存储介质 | |
CN111737083A (zh) | VMware集群资源监控方法及装置 |
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 |