CN113703874A - 一种数据流处理方法、装置、设备及可读存储介质 - Google Patents
一种数据流处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113703874A CN113703874A CN202111040434.0A CN202111040434A CN113703874A CN 113703874 A CN113703874 A CN 113703874A CN 202111040434 A CN202111040434 A CN 202111040434A CN 113703874 A CN113703874 A CN 113703874A
- Authority
- CN
- China
- Prior art keywords
- stream
- target
- data
- data stream
- configuration
- 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
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种数据流处理方法、装置、设备及可读存储介质,该方法包括:对数据流和配置流进行异步加载;判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;如果否,则将目标数据流的数据对象存入生命周期缓存映射表,并在确定目标配置流加载完毕后,利用目标配置流对目标数据流进行配置;如果是,则利用目标配置流对目标数据流进行配置。在本申请中,借助缓存技术来解决flink的双流异步加载下数据流先于配置流达到处理***的数据乱序问题,可以实现数据流开始处理时配置流已加载完毕的正确顺序效果。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种数据流处理方法、装置、设备及可读存储介质。
背景技术
Flink(一种开源流处理框架)加载数据流和广播的配置流时,两者是异步加载机制,这样便导致在flink的内部数据处理***中数据流的数据和配置流的数据加载顺序存在时间上的乱序问题。因为数据流在加载后需要即时读取到配置流的配置数据来完成对数据流数据的富化转换,该需求约束下需要正常的数据加载顺序是配置流加载先于数据流加载。
但是,在flink的双流异步加载机制下不能完全保证该顺序,且很大概率会出现flink app(基于开源流处理框架的应用)在刚启动时数据流先于配置流达到处理***而引起数据乱序。该问题将会导致app在刚启动的一小段时间内,数据流不能被配置富化,而引起数据处于异常状态。
综上所述,如何有效地解决数据流与配置流时间乱序等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种数据流处理方法、装置、设备及可读存储介质,借助缓存技术来解决flink的双流异步加载下数据流先于配置流达到处理***的数据乱序问题,可以实现数据流开始处理时配置流已加载完毕的正确顺序效果。
为解决上述技术问题,本申请提供如下技术方案:
一种数据流处理方法,包括:
对数据流和配置流进行异步加载;
判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;
如果否,则将所述目标数据流的数据对象存入生命周期缓存映射表,并在确定所述目标配置流加载完毕后,利用所述目标配置流对所述目标数据流进行配置;
如果是,则利用所述目标配置流对所述目标数据流进行配置。
优选地,所述判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕,包括:
从只读上下文中获取只读广播状态对象是否为空;
如果是,则判断所述只读广播状态对象的配置集是否加载了所需配置维数的数据;
若已加载,则确定所述目标配置流已加载完毕。
优选地,将所述目标数据流的数据对象存入生命周期缓存映射表,包括:
判断所述生命周期缓存映射表是否已达到缓存阈值;
如果否,则将所述数据对象放入所述生命周期缓存映射表,并为所述数据对象设置生命周期。
优选地,还包括:
遍历所述生命周期缓存映射表,找出超过所述生命周期的目标数据对象;
清理所述目标数据对象。
优选地,遍历所述生命周期缓存映射表,找出超过所述生命周期的目标数据对象,包括:
遍历所述生命周期缓存映射表,获取各个数据对象的缓存时间;
将所述缓存时间与当前***时间的差值大于对应的生命周期的数据对象确定为所述目标数据对象。
优选地,还包括:
在应用退出过程中,释放所述生命周期缓存映射表所占资源。
优选地,还包括:
利用所述生命周期缓存映射表判断是否存在待处理的数据流;
如果否,则确定数据流已全部关联配置。
一种数据流处理装置,包括:
数据加载模块,用于对数据流和配置流进行异步加载;
判断模块,用于判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;
缓存配置模块,用于如果所述目标配置流未加载完毕,则将所述目标数据流的数据对象存入生命周期缓存映射表,并在确定所述目标配置流加载完毕后,利用所述目标配置流对所述目标数据流进行配置;
数据配置模块,用于如果所述目标配置流已加载完毕,则利用所述目标配置流对所述目标数据流进行配置。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述数据流处理方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据流处理方法的步骤。
应用本申请实施例所提供的方法,对数据流和配置流进行异步加载;判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;如果否,则将目标数据流的数据对象存入生命周期缓存映射表,并在确定目标配置流加载完毕后,利用目标配置流对目标数据流进行配置;如果是,则利用目标配置流对目标数据流进行配置。
在本申请中,对数据流和配置流进行异步加载,并且在加载好目标数据流的情况下,首先判断与目标数据流具有关联关系的目标配置流是否加载完毕,如果目标配置流已加载完毕,则可直接基于目标配置流对目标数据流进行配置;如果未目标配置流未加载完毕,则暂缓对目标数据流进行配置处理,而是将目标数据流的数据对象存入到生命周期缓存映射表中,即先将目标数据流缓存起来,在确定目标配置流加载完毕后,再利用目标配置流对目标数据流进行配置。也就是说,借助缓存技术来解决flink的双流异步加载下数据流先于配置流达到处理***的数据乱序问题,可以实现数据流开始处理时配置流已加载完毕的正确顺序效果。
相应地,本申请实施例还提供了与上述数据流处理方法相对应的数据流处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种数据流处理方法的实施流程图;
图2为本申请实施例中一种数据流处理方法的具体实施示意图;
图3为本申请实施例中一种数据流处理装置的结构示意图;
图4为本申请实施例中一种电子设备的结构示意图;
图5为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种数据流处理方法的流程图,该方法可以具体用于基于Flink的数据处理***,该方法包括以下步骤:
S101、对数据流和配置流进行异步加载。
具体的,可以直接采用异步加载机制,对数据流和配置流进行加载。即,数据流可能先于配置流而加载,也可能晚于配置流而加载。对于异步加载机制的具体实现方式,可以具体参见异步加载机制的具体定义和实现,在此不再一一赘述。
S102、判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕。
其中,对于数据流与配置流的关联方法,可以使用connect方法进行关联,而后对关联流施用process算子,process算子传入扩展实现了BroadcastProcessFunction(广播处理函数)的对象。
在本实施例中,任意一个被加载完毕的数据流都可以为目标数据流。
可以基于配置流与数据流的关联关系,明确目标数据流对应的目标配置流,并且判断该目标配置流是否已加载完毕。
具体的,步骤S102判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕,可以包括:
步骤一、从只读上下文中获取只读广播状态对象是否为空;
步骤二、如果是,则判断只读广播状态对象的配置集是否加载了所需配置维数的数据;
步骤三、若已加载,则确定目标配置流已加载完毕。
为便于描述,下面将上述三个步骤结合起来进行说明。
可以从只读上下文中获取到只读广播状态对象是否为空,如果为空,则进一步判断该只读广播状态对象的配置集是否已完成了所需配置维数的数据加载,如果已加载,则可确定该目标配置流已加载完毕。当然,若只读广播状态对象不为空,则确定目标配置流未加载完毕;或者,只读广播对象的配置集还未完成了所需配置维数的数据加载,也可确定目标配置流未加载完毕。
在确定与目标数据流具有关联关系的目标配置流是否已加载完毕之后,便可根据具体的加载情况,执行对应的后续操作。具体的,如果目标配置流已加载完毕,则执行步骤S104的操作;如果目标配置流未加载完毕,则执行步骤S103的操作。
S103、将目标数据流的数据对象存入生命周期缓存映射表,并在确定目标配置流加载完毕后,利用目标配置流对目标数据流进行配置。
当明确的目标数据流的目标配置流未加载完毕的情况下,此时便出现了数据流先于配置流而加载完毕,此时若对数据流进行配置处理,会出现数据混乱。因此,在本实施例中,在明确目标数据流的目标配置流未加载完毕的情况下,暂不对目标数据流进行配置处理,而是将目标数据流的数据对象存入生命周期缓存映射表。如此,在明确目标配置流加载完毕之后,便可以利用目标配置流对目标数据流进行配置。
其中,将目标数据流的数据对象存入生命周期缓存映射表,具体包括:
步骤一、判断生命周期缓存映射表是否已达到缓存阈值;
步骤二、如果否,则将数据对象放入生命周期缓存映射表,并为数据对象设置生命周期。
为便于描述,下面将上述两个步骤结合起来进行说明。
在本实施例中,为了避免生命周期缓存映射表缓存过多数据流、超期无用的数据流,还可以为生命周期缓存映射表设置一个缓存阈值。其中,缓存阈值即最大存储数据的条数,如一百万条,可根据实际情况进行设置和调整。如此,便可保障生命周期缓存映射表中的数据对象维持在缓存阈值范围内。具体的,在需要将目标数据流的数据对象存入生命周期缓存映射表之前,首先判断生命周期缓存映射表是否已达到缓存阈值,如果是,则可对该生命周期缓存映射表进行清理之后在将数据对象放入生命周期缓存映射表中;当然,若生命周期缓存映射表还为达到缓存阈值,则可直接将数据对象放入生命周期缓存映射表。
需要注意的是,为了便于对生命周期缓存映射表进行管理,在将数据对象放入到生命周期缓存映射表之后,还可为数据对象设置生命周期,或称之为生存时间,即TTL(TimeTo Live),初始化后的对象的生命周期时间,对象自初始化时最多持续存在该TTL时间后便被清理。
其中,数据对象的生命周期可以完全相同,如均为5分钟或6分钟等时长;也可以为不同的数据对象设置不同的生命周期,如数据对象A的生命周期为4分钟,数据对象B的生命周期为6分钟。
相应地,生命周期缓存映射表中的数据对象的具体清理过程,包括:
步骤一、遍历生命周期缓存映射表,找出超过生命周期的目标数据对象;
步骤二、清理目标数据对象。
为便于描述,下面将上述两个步骤结合起来进行说明。
在本实施例中,可以对生命周期缓存映射表中的各个数据对象进行遍历,从而确定各个数据对象存入时间与生存时间的对应关系,即若存入时间距离当前时间超出了该生命周期,则表对应的数据对象已超出其生命周期,可以对其进行清理。在本实施例中,为了便于区别,超出生命周期需要被清理的数据对象称之为目标数据对象。
其中,步骤一遍历生命周期缓存映射表,找出超过生命周期的目标数据对象,可具体包括:
步骤1、遍历生命周期缓存映射表,获取各个数据对象的缓存时间;
步骤2、将缓存时间与当前***时间的差值大于对应的生命周期的数据对象确定为目标数据对象。
也就是说,首先通过遍历,确定各个数据对象的缓存时间,然后计算出缓存时间与当前***时间的差值。若该差值大于对应的生长周期,则将相应的数据对象确定为目标数据对象。
确定出目标数据对象之后,便可清理该目标数据对象。即,将该目标数据对象剔除出生命周期缓存映射表,并删除对应的数据流。
举例说明:存在数据对象A,其对应的生命周期为5分钟,若其属于5分钟前存入生命周期缓存映射表中的数据对象,则需对其进行清理;若其属于5分钟之内存入生命周期缓存映射表中的数据对象,则不需对其进行清理,继续暂存于缓存等待关联配置。
S104、利用目标配置流对目标数据流进行配置。
在明确的目标数据流的目标配置流已加载完毕的情况下,则直接利用目标配置流对目标数据流进行配置。配置过程可具体参考常规的采样具有关联关系的配置流对数据流的配置处理实现方法,在此不再一一赘述。
在本实施例中,可以利用生命周期缓存映射表判断是否存在待处理的数据流;如果否,则确定数据流已全部关联配置。由于先于配置流而加载完毕的数据流才会进入生长周期缓存映射表中进行缓存,而晚于配置流而加载完毕的数据流可直接进行配置处理,对于生命周期缓存映射表中的数据对象在对应配置流加载完毕后也会被处理,因而通过查看生命周期缓存映射表中是否存在待处理的数据流,即可确定数据流是否已全部关联配置。
优选地,考虑到生命周期缓存映射表也会占用资源,因而在应用退出过程中,释放生命周期缓存映射表所占资源。如此,便可避免生长周期缓存映射表占用资源。
应用本申请实施例所提供的方法,对数据流和配置流进行异步加载;判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;如果否,则将目标数据流的数据对象存入生命周期缓存映射表,并在确定目标配置流加载完毕后,利用目标配置流对目标数据流进行配置;如果是,则利用目标配置流对目标数据流进行配置。
在本申请中,对数据流和配置流进行异步加载,并且在加载好目标数据流的情况下,首先判断与目标数据流具有关联关系的目标配置流是否加载完毕,如果目标配置流已加载完毕,则可直接基于目标配置流对目标数据流进行配置;如果未目标配置流未加载完毕,则暂缓对目标数据流进行配置处理,而是将目标数据流的数据对象存入到生命周期缓存映射表中,即先将目标数据流缓存起来,在确定目标配置流加载完毕后,再利用目标配置流对目标数据流进行配置。也就是说,借助缓存技术来解决flink的双流异步加载下数据流先于配置流达到处理***的数据乱序问题,可以实现数据流开始处理时配置流已加载完毕的正确顺序效果。
为了便于本领域技术人员更好地理解本申请实施例所提供的数据流处理方法,下面结合具体的应用场景为例,对数据流处理方法的具体实施进行消息说明。
在相关方案中,可以使用带有TTL功能的state来临时保存加载的数据流,判断配置流加载完毕后才对施用了TTL的state中保存的数据流开始关联配置流数据进行数据处理。由于,Flink自1.6版本后开始提供带有TTL功能的state,因而,flink在1.6版本后才支持带有TTL功能的state,之前的版本中并不支持,存在版本覆盖面窄的问题。另外,这些方案只针对keyed state才能施用TTL功能,而对non-keyed state不能施用,施用范围小。
在本申请实施例所提供的数据流处理方法,意在解决flink在异步加载数据流和广播的配置流该双流时存在的数据流先于配置流达到处理***的此种数据乱序问题,以保证处理***能够在对数据流数据处理时正确关联到加载完毕的配置流配置数据,进而达到配置流先于数据流加载的顺序规正效果。具体的,请参考图2,图2为本申请实施例中一种数据流处理方法的具体实施示意图。
首先,设置flink数据流关联配置流:Flink的数据流使用connect方法关联配置流,而后对关联流施用process算子,process算子传入扩展实现了BroadcastProcessFunction的对象。
扩展实现BroadcastProcessFunction时,需要覆写其open、close、processElement、processBroadcastElement四个方法。其中,open方法用于对使用到的对象进行初始化;close方法用于对使用到的对象进行销毁,processElement方法用于处理数据流,processBroadcastElement(处理广播元素回调)方法用于处理广播配置流。
特别地,需在BroadcastProcessFunction中扩展定义对象,具体为扩展定义TTLCacheMap(生命周期缓存映射表),以便后续缓存数据流对应的数据对象。
其中,使用ThreadLocal来封装TTLCacheMap以保证TTLCacheMap对象能够多线程安全访问,具体的,主要保障顺序和准确性。TTLCacheMap构造器中传入数值1000000以现在缓存的数据大小阈值为1百万。
完成上述配置配置之后,数据处理***此时会对配置流和数据流的同时异步加载。在数据流的processElement回调方法中首先判断配置流是否加载完毕。具体的,可以从ReadOnlyContext(只读上下文)中获取到的ReadOnlyBroadcastState对象(只读广播状态对象)是否不为null(空)和其配置集中是否加载到了所需配置维度的数据,当ReadOnlyBroadcastState对象(只读广播状态对象)不为null(空)且其配置集中加载到了所需配置维度的数据,确定配置流加载完毕。在此过程中异步加载配置流的processBroadcastElement(处理广播元素)回调方法中将对加载的配置数据按照定义的MapStateDescriptor结构(映射状态描述符)进行ReadOnlyBroadcastState的组装(只读广播状态对象)。
在确定对应配置流未加载完毕的情况下,则将数据对象TTLCacheObject直接放入TTLCacheMap,放入时会根据用户配置的TTL时间(如5分钟)将其设置到数据对象TTLCacheObject中。判断逻辑执行完后,会遍历TTLCacheMap查看是否有超过TTL的元素(即已缓存的数据流对应的数据对象),有则进行清理。其中,传入的1百万大小阈值(size)的清理工作,可由Map自身机制保证。
在确定对应配置流加载完毕的情况下,则开始判断TTLCacheMap中是否有待处理的数据,有待处理的数据则关联ReadOnlyBroadcastState中的配置流数据进行数据处理,同时对处理完的数据进行删除。
也就是说,当数据流加载了,若配置流也完成了加载,直接基于配置流对数据流进行配置处理;当数据流加载了,若配置流未完成加载,则缓存数据流并设置生命周期,以便在配置流加载好后进行配置,或在抵达生命周期后清理未配置的数据流。
判断TTLCacheMap中没有剩余待处理的数据时,则数据将直接关联配置参入后续的数据处理环节。
在退出APP时,基于close方法中添加的对TTLCacheMap的销毁逻辑来释放TTLCacheMap占用资源。至此,整个流程处理结束。
由此可见,本申请实施例所提供的数据流处理方法,能够解决flink在数据流和广播的配置流双流异步加载机制下数据流先于配置流达到处理***的数据乱序该普遍性问题,能够在app刚启动短时内对数据流数据得不到关联的配置不能正确完成数据处理的数据进行缓存,等待配置达到后继续参入数据处理,进而保障了数据清洗的准确性。且不依赖flink版本和state类型、通用的带有TTL功能的缓存技术方案。
相应于上面的方法实施例,本申请实施例还提供了一种数据流处理装置,下文描述的数据流处理装置与上文描述的数据流处理方法可相互对应参照。
参见图3所示,该装置包括以下模块:
数据加载模块101,用于对数据流和配置流进行异步加载;
判断模块102,用于判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;
缓存配置模块103,用于如果目标配置流未加载完毕,则将目标数据流的数据对象存入生命周期缓存映射表,并在确定目标配置流加载完毕后,利用目标配置流对目标数据流进行配置;
数据配置模块104,用于如果目标配置流已加载完毕,则利用目标配置流对目标数据流进行配置。
应用本申请实施例所提供的装置,对数据流和配置流进行异步加载;判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;如果否,则将目标数据流的数据对象存入生命周期缓存映射表,并在确定目标配置流加载完毕后,利用目标配置流对目标数据流进行配置;如果是,则利用目标配置流对目标数据流进行配置。
在本申请中,对数据流和配置流进行异步加载,并且在加载好目标数据流的情况下,首先判断与目标数据流具有关联关系的目标配置流是否加载完毕,如果目标配置流已加载完毕,则可直接基于目标配置流对目标数据流进行配置;如果未目标配置流未加载完毕,则暂缓对目标数据流进行配置处理,而是将目标数据流的数据对象存入到生命周期缓存映射表中,即先将目标数据流缓存起来,在确定目标配置流加载完毕后,再利用目标配置流对目标数据流进行配置。也就是说,借助缓存技术来解决flink的双流异步加载下数据流先于配置流达到处理***的数据乱序问题,可以实现数据流开始处理时配置流已加载完毕的正确顺序效果。
在本申请的一种具体实施方式中,判断模块102,具体用于从只读上下文中获取只读广播状态对象是否为空;如果是,则判断只读广播状态对象的配置集是否加载了所需配置维数的数据;若已加载,则确定目标配置流已加载完毕。
在本申请的一种具体实施方式中,缓存配置模块103,具体用于判断生命周期缓存映射表是否已达到缓存阈值;如果否,则将数据对象放入生命周期缓存映射表,并为数据对象设置生命周期。
在本申请的一种具体实施方式中,还包括:
清理模块,用于遍历生命周期缓存映射表,找出超过生命周期的目标数据对象;清理目标数据对象。
在本申请的一种具体实施方式中,清理模块,具体用于遍历生命周期缓存映射表,获取各个数据对象的缓存时间;将缓存时间与当前***时间的差值大于对应的生命周期的数据对象确定为目标数据对象。
在本申请的一种具体实施方式中,还包括:
资源释放模块,用于在应用退出过程中,释放生命周期缓存映射表所占资源。
在本申请的一种具体实施方式中,还包括:
配置检测模块,用于利用生命周期缓存映射表判断是否存在待处理的数据流;如果否,则确定数据流已全部关联配置。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种数据流处理方法可相互对应参照。
参见图4所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的数据流处理方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341。
上文所描述的数据流处理方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据流处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据流处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
Claims (10)
1.一种数据流处理方法,其特征在于,包括:
对数据流和配置流进行异步加载;
判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;
如果否,则将所述目标数据流的数据对象存入生命周期缓存映射表,并在确定所述目标配置流加载完毕后,利用所述目标配置流对所述目标数据流进行配置;
如果是,则利用所述目标配置流对所述目标数据流进行配置。
2.根据权利要求1所述的数据流处理方法,其特征在于,所述判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕,包括:
从只读上下文中获取只读广播状态对象是否为空;
如果是,则判断所述只读广播状态对象的配置集是否加载了所需配置维数的数据;
若已加载,则确定所述目标配置流已加载完毕。
3.根据权利要求1所述的数据流处理方法,其特征在于,将所述目标数据流的数据对象存入生命周期缓存映射表,包括:
判断所述生命周期缓存映射表是否已达到缓存阈值;
如果否,则将所述数据对象放入所述生命周期缓存映射表,并为所述数据对象设置生命周期。
4.根据权利要求3所述的数据流处理方法,其特征在于,还包括:
遍历所述生命周期缓存映射表,找出超过所述生命周期的目标数据对象;
清理所述目标数据对象。
5.根据权利要求4所述的数据流处理方法,其特征在于,遍历所述生命周期缓存映射表,找出超过所述生命周期的目标数据对象,包括:
遍历所述生命周期缓存映射表,获取各个数据对象的缓存时间;
将所述缓存时间与当前***时间的差值大于对应的生命周期的数据对象确定为所述目标数据对象。
6.根据权利要求1所述的数据流处理方法,其特征在于,还包括:
在应用退出过程中,释放所述生命周期缓存映射表所占资源。
7.根据权利要求1所述的数据流处理方法,其特征在于,还包括:
利用所述生命周期缓存映射表判断是否存在待处理的数据流;
如果否,则确定数据流已全部关联配置。
8.一种数据流处理装置,其特征在于,包括:
数据加载模块,用于对数据流和配置流进行异步加载;
判断模块,用于判断与已加载完毕的目标数据流具有关联关系的目标配置流是否加载完毕;
缓存配置模块,用于如果所述目标配置流未加载完毕,则将所述目标数据流的数据对象存入生命周期缓存映射表,并在确定所述目标配置流加载完毕后,利用所述目标配置流对所述目标数据流进行配置;
数据配置模块,用于如果所述目标配置流已加载完毕,则利用所述目标配置流对所述目标数据流进行配置。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据流处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据流处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111040434.0A CN113703874B (zh) | 2021-09-06 | 2021-09-06 | 一种数据流处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111040434.0A CN113703874B (zh) | 2021-09-06 | 2021-09-06 | 一种数据流处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113703874A true CN113703874A (zh) | 2021-11-26 |
CN113703874B CN113703874B (zh) | 2023-09-05 |
Family
ID=78660686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111040434.0A Active CN113703874B (zh) | 2021-09-06 | 2021-09-06 | 一种数据流处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703874B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1643854A (zh) * | 2002-04-30 | 2005-07-20 | 国际商业机器公司 | 主从分布式通信***中本地同步的方法和设备 |
CN101446890A (zh) * | 2007-11-29 | 2009-06-03 | 株式会社瑞萨科技 | 流处理装置、流处理方法和数据处理*** |
CN109240613A (zh) * | 2018-08-29 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
US10324845B1 (en) * | 2017-07-28 | 2019-06-18 | EMC IP Holding Company LLC | Automatic placement of cache operations for complex in-memory dataflows |
CN112422669A (zh) * | 2020-11-10 | 2021-02-26 | 济中节能技术(苏州)有限公司 | 一种多关联设备数据实时提取方法及相关装置 |
CN113010373A (zh) * | 2021-01-25 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 数据监控方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-06 CN CN202111040434.0A patent/CN113703874B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1643854A (zh) * | 2002-04-30 | 2005-07-20 | 国际商业机器公司 | 主从分布式通信***中本地同步的方法和设备 |
CN101446890A (zh) * | 2007-11-29 | 2009-06-03 | 株式会社瑞萨科技 | 流处理装置、流处理方法和数据处理*** |
US20090144527A1 (en) * | 2007-11-29 | 2009-06-04 | Hiroaki Nakata | Stream processing apparatus, method for stream processing and data processing system |
US10324845B1 (en) * | 2017-07-28 | 2019-06-18 | EMC IP Holding Company LLC | Automatic placement of cache operations for complex in-memory dataflows |
CN109240613A (zh) * | 2018-08-29 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN112422669A (zh) * | 2020-11-10 | 2021-02-26 | 济中节能技术(苏州)有限公司 | 一种多关联设备数据实时提取方法及相关装置 |
CN113010373A (zh) * | 2021-01-25 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 数据监控方法、装置、电子设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
FABIAN HUESKE: "State TTL for Apache Flink:How to Limit the Lifetime of state", pages 1 - 5, Retrieved from the Internet <URL:《www.ververica.com/blog/state-ttl-for-apache-flink-how-to-limit-the-lifetime-of-state》> * |
千里风雪: "flink怎么保证广播流比数据流先到", pages 1 - 2, Retrieved from the Internet <URL:《www.blog.csdn.net/u012447842/article/details/113173716》> * |
晨菲娱乐社: "Spark Streaming & Flink 广播实现作业配置动态更新", pages 1 - 5, Retrieved from the Internet <URL:《www.163.com/dy/article/GDR7SQGM0537378K.html》> * |
王延升: "粗粒度动态可重构处理器中的高能效关键配置技术研究", 《中国优秀硕士论文 信息科技》 * |
王玉真: "基于Flink的实时计算平台的设计与实现", 《中国优秀硕士论文 信息科技》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113703874B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399132B (zh) | 一种调度测试方法、装置及存储介质 | |
US9430254B2 (en) | Register mapping techniques | |
US7908521B2 (en) | Process reflection | |
CN109086193B (zh) | 监控方法、装置及*** | |
US8782643B2 (en) | Device and method for controlling communication between BIOS and BMC | |
US8806446B2 (en) | Methods and apparatus for debugging programs in shared memory | |
CN109325016B (zh) | 数据迁移方法、装置、介质及电子设备 | |
CN106708608B (zh) | 一种分布式锁服务方法、获取方法及相应装置 | |
US9141551B2 (en) | Specific prefetch algorithm for a chip having a parent core and a scout core | |
US20140101668A1 (en) | Adaptive Auto-Pipelining for Stream Processing Applications | |
US20130036426A1 (en) | Information processing device and task switching method | |
US20240045787A1 (en) | Code inspection method under weak memory ordering architecture and corresponding device | |
US9032199B1 (en) | Systems, devices, and methods for capturing information, creating loadable images, and providing for restarts in a computer system | |
CN113703874A (zh) | 一种数据流处理方法、装置、设备及可读存储介质 | |
US11036624B2 (en) | Self healing software utilizing regression test fingerprints | |
US8359456B2 (en) | Generating random addresses for verification of distributed computerized devices | |
JP2004185345A (ja) | デバッグ方法およびシステム | |
CN112486421B (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN112799933B (zh) | 一种自动化测试方法和装置 | |
US8966496B2 (en) | Lock free use of non-preemptive system resource | |
CN113110955B (zh) | 一种***盘修复方法、存储介质及设备 | |
CN113126968B (zh) | 任务执行方法、装置、电子设备和存储介质 | |
CN110929102B (zh) | 一种数据处理方法、装置及电子设备 | |
US11301249B2 (en) | Handling exceptions in a program | |
US20220156074A1 (en) | Electronic device and multiplexing method of spatial |
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 |