CN112286582A - 基于流式计算框架的多线程数据处理方法、装置和介质 - Google Patents
基于流式计算框架的多线程数据处理方法、装置和介质 Download PDFInfo
- Publication number
- CN112286582A CN112286582A CN202011618342.1A CN202011618342A CN112286582A CN 112286582 A CN112286582 A CN 112286582A CN 202011618342 A CN202011618342 A CN 202011618342A CN 112286582 A CN112286582 A CN 112286582A
- Authority
- CN
- China
- Prior art keywords
- window
- data slice
- target window
- data
- timestamp
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 72
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 12
- 230000037406 food intake Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 abstract description 18
- 230000001960 triggered effect Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于流式计算框架的多线程数据处理方法、装置和存储介质,通过基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则记录流式计算框架接收迟滞数据切片的系统时间戳;设置第二水位线,其中,第二水位线的延迟时间不小于迟滞数据切片的系统时间戳与目标窗口的结束时间戳之差;基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果,并根据第二处理结果校正第一处理结果,解决了基于流式计算框架的计算结果不准确的问题,在保证一定数据处理时效性的情况下,提升了计算结果的准确度。
Description
技术领域
本申请涉及大数据处理技术领域,特别是涉及基于流式计算框架的多线程数据处理方法、电子装置和存储介质。
背景技术
通常在大数据体系中,采用Flink处理实时数据是较优的选择。Flink是一种流式计算框架,用于对无界数据流和有界数据流进行有状态计算,其可在集群环境中运行,以内存执行速度和任意规模来对实时数据执行计算。在Flink中有三个时间概念,分别是事件时间戳(Event Time)、摄入时间戳(Ingestion Time)和系统时间戳(Processing Time)。事件时间戳代表在客观世界中产生的时间,比如用户点击网页产生了一条日志;摄入时间戳代表日志到达Flink的时间;系统时间戳代表操作算子计算日志的本地系统时间。当数据流入Flink中时,Flink采用窗口(Window)按照数据的摄入时间戳来划分数据。
图1是根据相关技术的Flink的滚动窗口示意图,如图1所示,分别有三个用户产生的数据流入Flink,Flink采用滚动窗口对数据做划分,滚动窗口分别如下所示:WA(1-5s)、WB(6-10s)、WC(11-15s),圆圈中的数字代表数据切片在客观世界中生成的相对顺序,比如序号1的数据切片比序号2的数据切片先生成。每个滚动窗口划分的长度相同,为窗口的开始时间戳减去结束时间戳,两个滚动窗口之间互不叠加。在数据生成、流经源端、再到窗口的过程中,流到窗口的数据通常都是按照事件时间戳来排序的,但是也不排除由于网络、分布式等原因,导致乱序的产生,即Flink接收到的数据的先后顺序不是严格按照数据的事件时间戳顺序排列的。
当存在网络延时的情况下,本来进入窗口A的2号数据在5秒内没有进入窗口A,但是它仍然在采集后出现在A窗口里面,这是因为Flink将每条日志的实际产生时间纪录下来,2号数据就是在1-5s产生的,Flink就会把它放在窗口A。只不过它是在6-10s的时候被放进去的。Flink内部会在预设时间后生成一个时间戳,它的值等于当前窗口的结束时间戳加预设延迟时间。
该机制就是水位线(Watermark)机制,可以理解成一个延迟触发机制,通过设置水位线的延迟时间t,窗口开放时,Flink会校验已经到达的数据的最大事件时间戳(maxEventTime),然后认定当前小于的所有数据都已经到达,如果有窗口的结束时间戳等于,那么这个窗口被关闭并触发执行,在最大事件时间戳的数据之后到达Flink的迟滞数据将不被该窗口计算。然而,该机制存在的缺陷为:若水位线设置过低,会导致大量数据因迟到而不被当前窗口接收,导致计算结果不准确;若水位线设置过高,只有等待时间到达水位线后才会触发当前窗口计算,导致计算的时效性低。
目前针对相关技术中基于流式计算框架的计算结果不准确的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于流式计算框架的多线程数据处理方法、电子装置和存储介质,以至少解决相关技术中基于流式计算框架的计算结果不准确的问题。
第一方面,本申请实施例提供了一种基于流式计算框架的多线程数据处理方法,包括:
基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则记录流式计算框架接收迟滞数据切片的系统时间戳;设置第二水位线,其中,第二水位线的延迟时间不小于迟滞数据切片的系统时间戳与目标窗口的结束时间戳之差;基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果,并根据第二处理结果校正第一处理结果。
在其中一些实施例中,基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果包括:创建主线程;由主线程基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;
基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果包括:创建分线程;由分线程基于第二水位线触发目标窗口处理数据切片,得到第二处理结果。
在其中一些实施例中,在基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果之后,方法还包括:在由分线程基于第二水位线触发目标窗口处理数据切片,得到第二处理结果之后,释放分线程;
或者,在流式计算框架处理完所有接收到的数据切片之后,释放分线程。
在其中一些实施例中,在基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果之后,方法还包括:获取目标窗口的标识信息,其中,目标窗口的标识信息包括目标窗口的开始时间戳;将经目标窗口处理的历史数据切片按照目标窗口的标识信息进行存储。
在其中一些实施例中,将经目标窗口处理的历史数据切片按照目标窗口的标识信息进行存储之后,方法还包括:判断历史数据切片的存储时长是否达到预设存储时长,在判断到历史数据切片的存储时长达到预设存储时长的情况下,删除存储的历史数据切片;
或者,判断是否生成第二处理结果,在判断到生成第二处理结果的情况下,删除存储的历史数据切片。
在其中一些实施例中,若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则方法还包括:存储迟滞数据切片。
在其中一些实施例中,在基于第二水位线重新触发目标窗口处理数据切片之前,方法还包括:获取已关闭窗口的开始时间戳和窗口长度;根据迟滞数据切片的事件时间戳和已关闭窗口的窗口长度,生成候选窗口开始时间戳区间;根据候选窗口开始时间戳区间,从已关闭窗口中提取开始时间戳落入候选窗口开始时间戳区间的窗口为目标窗口。
在其中一些实施例中,已关闭窗口包括滚动窗口或者滑动窗口。
第二方面,本申请实施例提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行如上述第一方面所述的基于流式计算框架的多线程数据处理方法。
第三方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于流式计算框架的多线程数据处理方法。
相比于相关技术,本申请实施例提供的基于流式计算框架的多线程数据处理方法、电子装置和存储介质,通过基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则记录流式计算框架接收迟滞数据切片的系统时间戳;设置第二水位线,其中,第二水位线的延迟时间不小于迟滞数据切片的系统时间戳与目标窗口的结束时间戳之差;基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果,并根据第二处理结果校正第一处理结果,解决了基于流式计算框架的计算结果不准确的问题,在保证一定数据处理时效性的情况下,提升了计算结果的准确度。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术的Flink的滚动窗口示意图;
图2是根据本申请实施例的电子装置的硬件结构框图;
图3是根据本申请实施例的基于流式计算框架的多线程数据处理方法的流程图;
图4是根据本申请实施例的Flink的窗口示意图;
图5是根据本申请实施例的Flink的滑动窗口示意图;
图6是根据本申请实施例的基于流式计算框架的多线程数据处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供的方法实施例可以在终端、计算机或者类似的电子装置中执行。图2是根据本申请实施例的电子装置的硬件结构框图。如图2所示,电子装置可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器204,可选地,上述电子装置还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的基于流式计算框架的多线程数据处理方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输设备206包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备206可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例提供了一种基于流式计算框架的多线程数据处理方法,图3是根据本申请实施例的基于流式计算框架的多线程数据处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果。
本实施例的流式计算框架指Flink,图4是根据本申请实施例的Flink的窗口示意图,如图4所示,窗口W1(6-10s)为当前正在接收数据的目标窗口,其开始时间戳为6s,结束时间戳为10s,窗口长度为5s,圆圈中的数字代表数据切片的事件时间戳,时间发展方向为从右至左的方向,水位线M1为第一水位线,其延迟时间为2s,当事件时间戳为12s的数据切片到达窗口W1时,即水位线M1的时间戳到达时,窗口W1关闭,并被触发处理所接收的数据切片,得到第一处理结果,其中,窗口W1所处理的数据切片的事件时间戳为7s、6s、10s、9s。
步骤S302,若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则记录流式计算框架接收迟滞数据切片的摄入时间戳。
参考图4,对于事件时间戳为8s的数据,其事件时间戳小于窗口W1的结束时间戳,由于网络或者终端时间不同步,事件时间戳为12s的数据切片先于事件时间戳为8s的数据切片到达窗口W1,触发水位线M1,导致事件时间戳为8s数据切片被丢弃,成为迟滞数据切片,丢弃迟滞数据切片将导致窗口W1的计算结果不准确。假设该滞数据切片到达窗口W1的时间戳为13s,则记录Flink接收迟该滞数据切片的摄入时间戳为13s。
步骤S303,设置第二水位线,其中,第二水位线的延迟时间不小于迟滞数据切片的摄入时间戳与目标窗口的结束时间戳之差。
在本实施例中,第二水位线是根据迟滞数据切片的摄入时间戳与目标窗口的结束时间戳设定的,与相关技术中采用固定延迟时间的水位线相比,具有更好的灵活性。在一些实施例中,为保证数据处理的时效性,第二水位线的延迟时间优选为迟滞数据切片的摄入时间戳与目标窗口的结束时间戳之差。参考图4,水位线M2为第二水位线,其延迟时间优选为3s。
步骤S304,基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果,并根据第二处理结果校正第一处理结果。
在设置水位线M2后,当迟滞数据切片到达窗口W1时,水位线M2的时间戳恰好到达窗口W1,窗口W1关闭,并被触发处理所接收的数据切片,得到第二处理结果,其中,窗口W1所处理的数据切片的事件时间戳为7s、6s、10s、9s、8s,并根据第二处理结果校正第一处理结果。校正方式可以是将第二处理结果覆盖第一处理结果,以修正实时计算过程中数据切片丢失导致计算结果不准确的情况。
通过上述步骤,解决了相关技术中基于流式计算框架的计算结果不准确的问题,在保证一定数据处理时效性的情况下,提升了计算结果的准确度。
在其中一些实施例中,第一处理结果和第二处理结果分别在两个不同的线程中计算得到。基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果包括:创建主线程;由主线程基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果。基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果包括:创建分线程;由分线程基于第二水位线触发目标窗口处理数据切片,得到第二处理结果。
通过开设主线程和分线程来处理数据切片,能够在不改动数据实时传输的情况下,达到修正计算结果的目的。分线程不会干扰主线程,第二水位线和第一水位线相互独立,能够保证主线程的数据处理时效性。该方法的数据处理逻辑简单,能够避免不可预知的情况出现,比如由于Flink资源紧张而造成反压情况。
在一些实施例中,主线程和分线程由单个CPU(Central Processing Unit,中央处理器)调度执行,当主线程执行完成任务之后,释放主线程,启动分线程执行相应的任务。在另一些实施例中,主线程和分线程由多个CPU调度执行,主线程和分线程能够并行执行。
在其中一些实施例中,在基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果之后,方法还包括:
在由分线程基于第二水位线触发目标窗口处理数据切片,得到第二处理结果之后,释放分线程;或者,在流式计算框架处理完所有接收到的数据切片之后,释放分线程。
对于单个CPU调度执行主线程和分线程的情况下,分线程在每一次执行得到第二处理结果之后,释放分线程,交由主线程执行,以充分利用CPU的资源。对于多个CPU调度执行主线程和分线程的情况下,由于主线程和分线程能够并行执行,在Flink处理完所有接收到的数据切片之后,再释放分线程,以减少CPU调度和管理的开销,避免出现不可预知的情况。
在其中一些实施例中,在基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果之后,方法还包括:
获取目标窗口的标识信息,其中,目标窗口的标识信息包括目标窗口的开始时间戳;将经目标窗口处理的历史数据切片按照目标窗口的标识信息进行存储。
相关技术在每次窗口关闭之后,默认会丢弃处理过的历史数据切片,本实施例在每次窗口关闭之后都会有序保存相应窗口的历史数据切片。在一些实施例中,其参数表现形式为“(windowStartTime,data)”,其中,windowStartTime代表窗口的开始时间戳,将其作为该窗口的唯一标识信息,data代表该窗口内的全部历史数据切片。通过将经目标窗口处理的历史数据切片按照目标窗口的标识信息进行存储,能够在第二水位线的时间戳到达时,重新获取这些历史数据切片。
在其中一些实施例中,将经目标窗口处理的历史数据切片按照目标窗口的标识信息进行存储之后,方法还包括:
判断历史数据切片的存储时长是否达到预设存储时长,在判断到历史数据切片的存储时长达到预设存储时长的情况下,删除存储的历史数据切片;或者,判断是否生成第二处理结果,在判断到生成第二处理结果的情况下,删除存储的历史数据切片。
为了防止历史数据太多占用过多集群资源,在一些实施例中,为历史数据切片设定存储时间阈值,存储时间阈值可根据实际集群资源修改,比如设为1小时,即只储存一小时内的所有目标窗口的标识信息和经目标窗口处理过的历史数据切片,将超过1小时的标识信息和历史数据切片做删除处理。在另一些实施例中,也可以在该目标窗口的第一处理结果被修正的情况下,删除存储的历史数据切片。
在相关技术中,Flink系统会默认丢弃迟滞数据切片,且不会被下一个窗口计算,为此,若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则方法还包括:存储迟滞数据切片。
迟滞数据切片携带有两种时间信息,一种是事件时间戳,一种是摄入时间戳,在存储迟滞数据切片之后,通过提取其携带的时间信息,能够得到该迟滞数据切片的摄入时间戳。迟滞数据切片和历史数据切片可以存储在内存中的不同位置,例如,历史数据切片存储在第一缓冲队列,迟滞数据切片存储在第二缓冲队列,两者互不影响。
在其中一些实施例中,在基于第二水位线重新触发目标窗口处理数据切片之前,方法还包括:
获取已关闭窗口的开始时间戳和窗口长度;根据迟滞数据切片的事件时间戳和已关闭窗口的窗口长度,生成候选窗口开始时间戳区间;根据候选窗口开始时间戳区间,从已关闭窗口中提取开始时间戳落入候选窗口开始时间戳区间的窗口为目标窗口。
参考图4,候选窗口开始时间戳区间为:
(迟滞数据切片的事件时间戳-窗口长度,迟滞数据切片的事件时间戳]。
其代表:候选窗口开始时间戳>迟滞数据切片的事件时间戳-窗口长度;并且,候选窗口开始时间戳<=迟滞数据切片的事件时间戳。
根据迟滞数据切片的事件时间戳8s和已关闭窗口的窗口长度5s,生成候选窗口开始时间戳区间W为(3s,8s],由此可知,在已关闭的窗口中,开始时间戳落入该区间范围的窗口都有可能是该迟滞数据切片匹配的目标窗口。参考图1,假设已关闭的窗口分别如下所示:WA(1-5s)、WB(6-10s)、WC(11-15s),对应的窗口开始时间的列表为(1,6,11)。则和该迟滞数据切片匹配的窗口为WB(6-10s),并将该窗口提取为目标窗口。
在一些实施例中,已关闭窗口包括滚动窗口或者滑动窗口。
滚动窗口的实施例已在上文有所介绍。在一些实施例中,在提取滚动窗口之后,根据滚动窗口的标识信息获取相应的历史数据切片。
以下将介绍滑动窗口的实施例,滑动窗口如图5所示,滑动窗口有固定的窗口长度,并且有生成间隔,例如,窗口长度为5s,滑动步长为3s,两个滑动窗口之间存在重叠区域。假设已关闭的滑动窗口分别如下所示:WD(1-5s)、WE(4-8s)、WF(7-11s)、WG(10-14s),对应的窗口开始时间的列表为(1,4,7,11),圆圈中的数字代表数据切片在客观世界中生成的相对顺序,比如序号1的数据切片比序号2的数据切片先生成。以迟滞数据切片的事件时间戳8s为例,其候选窗口开始时间戳区间W为(3s,8s],则和该迟滞数据切片匹配的滑动窗口为WE(4-8s)、WF(7-11s),并将这些窗口提取为目标窗口。在一些实施例中,在提取多个滑动窗口之后,根据各个滑动窗口的标识信息获取相应的历史数据切片。
本实施例还提供了一种基于流式计算框架的多线程数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的基于流式计算框架的多线程数据处理装置的结构框图,如图6所示,该装置包括:第一触发模块61、记录模块62、设置模块63和第二触发模块64。
第一触发模块61,用于基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;
记录模块62,耦合至第一触发模块61,用于若未被处理的数据切片中存在事件时间戳小于目标窗口的结束时间戳的迟滞数据切片,则记录流式计算框架接收迟滞数据切片的系统时间戳;
设置模块63,耦合至记录模块62,用于设置第二水位线,其中,第二水位线的延迟时间不小于迟滞数据切片的系统时间戳与目标窗口的结束时间戳之差;
第二触发模块64,耦合至设置模块63,用于基于第二水位线重新触发目标窗口处理数据切片,得到第二处理结果,并根据第二处理结果校正第一处理结果。
在其中一些实施例中,第一触发模块61包括主线程单元,用于创建主线程;由主线程基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;第二触发模块64包括分线程单元,用于创建分线程;由分线程基于第二水位线触发目标窗口处理数据切片,得到第二处理结果。
在其中一些实施例中,第二触发模块64还包括:释放单元,用于在由分线程基于第二水位线触发目标窗口处理数据切片,得到第二处理结果之后,释放分线程;或者,用于在流式计算框架处理完所有接收到的数据切片之后,释放分线程。
在其中一些实施例中,装置还包括:第一获取单元,用于获取目标窗口的标识信息,其中,目标窗口的标识信息包括目标窗口的开始时间戳;第一存储单元,用于将经目标窗口处理的历史数据切片按照目标窗口的标识信息进行存储。
在其中一些实施例中,装置还包括:监测单元,用于判断历史数据切片的存储时长是否达到预设存储时长,在判断到历史数据切片的存储时长达到预设存储时长的情况下,删除存储的历史数据切片;或者,用于判断是否生成第二处理结果,在判断到生成第二处理结果的情况下,删除存储的历史数据切片。
在其中一些实施例中,装置还包括:第二存储单元,用于存储迟滞数据切片。
在其中一些实施例中,装置还包括:第二获取单元,用于获取已关闭窗口的开始时间戳和窗口长度;生成单元,用于根据迟滞数据切片的事件时间戳和已关闭窗口的窗口长度,生成候选窗口开始时间戳区间;提取单元,用于根据候选窗口开始时间戳区间,从已关闭窗口中提取开始时间戳落入候选窗口开始时间戳区间的窗口为目标窗口。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
基于流式计算框架的多线程数据处理装置的实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在此不再赘述。
另外,结合上述实施例中的基于流式计算框架的多线程数据处理方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于流式计算框架的多线程数据处理方法。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于流式计算框架的多线程数据处理方法,其特征在于,包括:
基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果;
若未被处理的数据切片中存在事件时间戳小于所述目标窗口的结束时间戳的迟滞数据切片,则记录流式计算框架接收所述迟滞数据切片的摄入时间戳;
设置第二水位线,其中,所述第二水位线的延迟时间不小于所述迟滞数据切片的摄入时间戳与所述目标窗口的结束时间戳之差;
基于所述第二水位线重新触发所述目标窗口处理数据切片,得到第二处理结果,并根据所述第二处理结果校正所述第一处理结果。
2.根据权利要求1所述的基于流式计算框架的多线程数据处理方法,其特征在于,
基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果包括:创建主线程;由所述主线程基于预先设置的所述第一水位线触发所述目标窗口处理数据切片,得到所述第一处理结果;
基于所述第二水位线重新触发所述目标窗口处理数据切片,得到第二处理结果包括:创建分线程;由所述分线程基于所述第二水位线触发所述目标窗口处理数据切片,得到所述第二处理结果。
3.根据权利要求2所述的基于流式计算框架的多线程数据处理方法,其特征在于,在基于所述第二水位线重新触发所述目标窗口处理数据切片,得到第二处理结果之后,所述方法还包括:
在由所述分线程基于所述第二水位线触发目标窗口处理数据切片,得到所述第二处理结果之后,释放所述分线程;
或者,在所述流式计算框架处理完所有接收到的数据切片之后,释放所述分线程。
4.根据权利要求1所述的基于流式计算框架的多线程数据处理方法,其特征在于,在基于预先设置的第一水位线触发目标窗口处理数据切片,得到第一处理结果之后,所述方法还包括:
获取所述目标窗口的标识信息,其中,所述目标窗口的标识信息包括所述目标窗口的开始时间戳;
将经所述目标窗口处理的历史数据切片按照所述目标窗口的标识信息进行存储。
5.根据权利要求4所述的基于流式计算框架的多线程数据处理方法,其特征在于,将经所述目标窗口处理的历史数据切片按照所述目标窗口的标识信息进行存储之后,所述方法还包括:
判断所述历史数据切片的存储时长是否达到预设存储时长,在判断到所述历史数据切片的存储时长达到所述预设存储时长的情况下,删除存储的所述历史数据切片;
或者,判断是否生成所述第二处理结果,在判断到生成所述第二处理结果的情况下,删除存储的所述历史数据切片。
6.根据权利要求1所述的基于流式计算框架的多线程数据处理方法,其特征在于,若未被处理的数据切片中存在事件时间戳小于所述目标窗口的结束时间戳的迟滞数据切片,则所述方法还包括:
存储所述迟滞数据切片。
7.根据权利要求1所述的基于流式计算框架的多线程数据处理方法,其特征在于,在基于所述第二水位线重新触发所述目标窗口处理数据切片之前,所述方法还包括:
获取已关闭窗口的开始时间戳和窗口长度;
根据所述迟滞数据切片的事件时间戳和所述已关闭窗口的窗口长度,生成候选窗口开始时间戳区间;
根据所述候选窗口开始时间戳区间,从所述已关闭窗口中提取开始时间戳落入所述候选窗口开始时间戳区间的窗口为所述目标窗口。
8.根据权利要求7所述的基于流式计算框架的多线程数据处理方法,其特征在于,所述已关闭窗口包括滚动窗口或者滑动窗口。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至8中任一项所述的基于流式计算框架的多线程数据处理方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至8中任一项所述的基于流式计算框架的多线程数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618342.1A CN112286582B (zh) | 2020-12-31 | 2020-12-31 | 基于流式计算框架的多线程数据处理方法、装置和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618342.1A CN112286582B (zh) | 2020-12-31 | 2020-12-31 | 基于流式计算框架的多线程数据处理方法、装置和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286582A true CN112286582A (zh) | 2021-01-29 |
CN112286582B CN112286582B (zh) | 2021-03-16 |
Family
ID=74425335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011618342.1A Active CN112286582B (zh) | 2020-12-31 | 2020-12-31 | 基于流式计算框架的多线程数据处理方法、装置和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286582B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905638A (zh) * | 2021-02-02 | 2021-06-04 | 浙江邦盛科技有限公司 | 一种基于喇叭状的时间切片处理方法 |
CN114048147A (zh) * | 2022-01-12 | 2022-02-15 | 广东拓思软件科学园有限公司 | 测试用例生成方法、装置、存储介质和电子设备 |
CN114095032A (zh) * | 2021-11-12 | 2022-02-25 | 中国科学院空间应用工程与技术中心 | 基于Flink和RVR的数据流压缩方法、边缘计算系统及存储介质 |
WO2023077451A1 (zh) * | 2021-11-05 | 2023-05-11 | 中国科学院计算技术研究所 | 一种基于列存数据库的流式数据处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160285711A1 (en) * | 2014-11-03 | 2016-09-29 | Google Inc. | Data Flow Windowing and Triggering |
CN110209685A (zh) * | 2019-06-12 | 2019-09-06 | 北京九章云极科技有限公司 | 一种数据实时处理方法及系统 |
CN111680065A (zh) * | 2020-05-25 | 2020-09-18 | 泰康保险集团股份有限公司 | 流式计算中迟滞数据的处理系统、设备以及方法 |
-
2020
- 2020-12-31 CN CN202011618342.1A patent/CN112286582B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160285711A1 (en) * | 2014-11-03 | 2016-09-29 | Google Inc. | Data Flow Windowing and Triggering |
CN110209685A (zh) * | 2019-06-12 | 2019-09-06 | 北京九章云极科技有限公司 | 一种数据实时处理方法及系统 |
CN111680065A (zh) * | 2020-05-25 | 2020-09-18 | 泰康保险集团股份有限公司 | 流式计算中迟滞数据的处理系统、设备以及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905638A (zh) * | 2021-02-02 | 2021-06-04 | 浙江邦盛科技有限公司 | 一种基于喇叭状的时间切片处理方法 |
CN112905638B (zh) * | 2021-02-02 | 2022-05-17 | 浙江邦盛科技有限公司 | 一种基于喇叭状的时间切片处理方法 |
WO2023077451A1 (zh) * | 2021-11-05 | 2023-05-11 | 中国科学院计算技术研究所 | 一种基于列存数据库的流式数据处理方法及系统 |
CN114095032A (zh) * | 2021-11-12 | 2022-02-25 | 中国科学院空间应用工程与技术中心 | 基于Flink和RVR的数据流压缩方法、边缘计算系统及存储介质 |
CN114048147A (zh) * | 2022-01-12 | 2022-02-15 | 广东拓思软件科学园有限公司 | 测试用例生成方法、装置、存储介质和电子设备 |
CN114048147B (zh) * | 2022-01-12 | 2022-04-12 | 广东拓思软件科学园有限公司 | 测试用例生成方法、装置、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112286582B (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286582B (zh) | 基于流式计算框架的多线程数据处理方法、装置和介质 | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
EP4047934A1 (en) | Message sending method and device, readable medium and electronic device | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CA2849565C (en) | Method, apparatus, and system for scheduling processor core in multiprocessor core system | |
US7882160B2 (en) | Low latency optimization for generational garbage collection | |
CN104915253B (zh) | 一种作业调度的方法及作业处理器 | |
CN111163018B (zh) | 网络设备及其降低传输时延的方法 | |
CN107135088B (zh) | 云计算系统中处理日志的方法和装置 | |
CN105978821B (zh) | 网络拥塞避免的方法及装置 | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN110119307B (zh) | 数据处理请求的处理方法、装置、存储介质及电子装置 | |
CN108667733A (zh) | 一种网络设备及报文处理方法 | |
CN114661433A (zh) | 事件任务的调度方法及装置、存储介质、电子设备 | |
CN112954449B (zh) | 视频流处理方法、系统、电子装置和存储介质 | |
US8607232B2 (en) | Identifying a transient thread and excluding the transient thread from a processor load calculation | |
CN115391011A (zh) | 定时任务的调度方法、装置、设备、介质及程序 | |
Danzig | Optimally selecting the parameters of adaptive backoff algorithms for computer networks and multiprocessors | |
CN114422498A (zh) | 大数据实时处理方法、系统、计算机设备及存储介质 | |
CN110245025B (zh) | 一种基于Actor模型的数据采集方法、装置及存储介质 | |
CN109062706B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN103324522B (zh) | 对从各服务器抓取数据的任务进行调度的方法和设备 | |
CN113127064A (zh) | 一种并发调度和执行时序数据的方法及相关装置 | |
CN112422618A (zh) | 位置感应数据上报方法、装置及系统 | |
CN111367702A (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 |