数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36187346 阅读:24 留言:0更新日期:2022-12-31 20:54
本发明专利技术实施例涉及一种数据处理方法、装置、电子设备及存储介质,涉及计算机领域,该方法基于Flink架构的Sink算子按照预设置的分组规则将接收到的数据存储到对应的数据缓冲队列中;根据数据缓冲队列的出队顺序从所述数据缓冲队列中依次获取数据,发送给线程池中的多线程进行数据输出;即本发明专利技术实施例首先基于分组规则将不同类型数据分别存储到对应的数据缓冲队列中,然后数据缓冲队列中的数据发送给多线程进行输出,既通过分组规则实现了不同类型数据的分组处理、同类型数据的顺序输出,又通过多线程增加了数据吞吐量,提高了服务器资源的利用率。源的利用率。源的利用率。

【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

技术介绍

[0002]Flink架构的原生Sink算子采用单线程方式进行数据落地,但由于单线程的限制,消息Sink时是一条条的处理,不能发挥任务服务器的全部性能,服务器资源的使用率较低,数据吞吐量不够。
[0003]现有技术中,通常选择增加Sink算子的并行度(即增加处理器)来提升数据吞吐量,但这种方式增加服务器成本,造成资源浪费,且无法实现同类型数据的顺序输出。

技术实现思路

[0004]本专利技术提供了一种数据处理方法、装置、电子设备及存储介质,以解决现有技术中增加Sink算子的并行度所造成的资源浪费、且无法实现同类型数据顺序输出的技术问题。
[0005]第一方面,本专利技术提供了一种数据处理方法,包括:基于Flink架构的Sink算子按照预设置的分组规则将接收到的数据存储到对应的数据缓冲队列中;根据数据缓冲队列的出队顺序从所述数据缓冲队列中依次获取数据,发送给线程池中的多线程进行数据输出。
[0006]作为本专利技术可选的实施例,所述数据携带优先级信息,所述将接收到的数据存储到对应的数据缓冲队列中之后,还包括:根据数据携带的优先级信息,对所述数据缓冲队列中的所有数据进行出队顺序的重新排序。
[0007]作为本专利技术可选的实施例,所述将接收到的数据存储到对应的数据缓冲队列中之前,还包括:接收用户的配置指令,根据所述配置指令设置所述Flink架构的Sink算子的配置信息,所述配置信息包括以下至少一种:数据缓冲队列的容量上限值、线程池的线程数量、数据输出失败后的重试策略以及一致性检查点策略;其中,所述数据缓存队列的容量上限值根据虚拟机堆内存容量确定,所述线程池的线程数量不大于线程数量上限值,所述线程数量上限值根据处理器容量确定。
[0008]作为本专利技术可选的实施例,所述将接收到的数据存储到对应的数据缓冲队列中之后,还包括:确定所述数据缓冲队列当前已存储的数据容量是否达到所述数据缓冲队列的容量上限值;若是,则阻塞数据存储到对应的数据缓冲队列中;若否,则执行所述将数据存储到对应的数据缓冲队列中的步骤。
[0009]作为本专利技术可选的实施例,所述将接收到的数据存储到对应的数据缓冲队列中之后,还包括:确定所述数据缓冲队列当前已存储的数据容量是否达到所述数据缓冲队列的容量上限值;若是,则阻塞数据存储到对应的数据缓冲队列中;若否,则执行所述将接收到的数据存储到对应的数据缓冲队列中的步骤。
[0010]作为本专利技术可选的实施例,所述方法还包括:在数据输出失败的情况下,根据所述数据输出失败后的重试策略进行处理。
[0011]作为本专利技术可选的实施例,所述方法还包括:在进行一致性检查前,根据所述一致性检查点策略确定是否输出所述数据缓冲队列中的所有数据。
[0012]作为本专利技术可选的实施例,所述方法还包括:在所述分组规则不存在的情况下,将接收到的数据存储到数据缓冲队列中。
[0013]第二方面,本专利技术提供一种数据处理装置,所述装置基于Flink架构的Sink算子,所述装置包括:存储模块,用于按照预设置的分组规则将接收到的数据存储到对应的数据缓冲队列中;处理模块,用于根据数据缓冲队列的出队顺序从所述数据缓冲队列中依次获取数据,发送给线程池中的多线程进行数据输出。
[0014]第三方面,本专利技术提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的数据处理方法的步骤。
[0015]第四方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的数据处理方法的步骤。
[0016]本专利技术实施例提供的数据处理方法、装置、电子设备及存储介质,通过基于Flink架构的Sink算子按照预设置的分组规则将接收到的数据存储到对应的数据缓冲队列中;根据数据缓冲队列的出队顺序从所述数据缓冲队列中依次获取数据,发送给线程池中的多线程进行数据输出;即本专利技术实施例首先基于分组规则将不同类型数据分别存储到对应的数据缓冲队列中,然后数据缓冲队列中的数据发送给多线程进行输出,既通过分组规则实现了不同类型数据的分组处理、同类型数据的顺序输出,又通过多线程增加了数据吞吐量,提高了服务器资源的利用率。
附图说明
[0017]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0018]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本专利技术实施例提供的一种数据处理方法的流程示意图;
[0020]图2为本专利技术实施例提供的一种数据处理方法的流程框图;
[0021]图3为本专利技术实施例提供的另一种数据处理方法的流程框图;
[0022]图4为本专利技术实施例提供的另一种数据处理方法的流程示意图;
[0023]图5为本专利技术实施例提供的一种数据处理装置的结构示意图;
[0024]图6为本专利技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0025]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人
员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]首先对本专利技术所涉及的名词进行解释:
[0027]Flink:是一个对有界和无界数据流进行状态计算的分布式处理引擎和框架。通俗地讲,Flink就是一个流计算框架,主要用来处理流式数据。
[0028]Sink:是Flink三大逻辑结构之一,功能就是负责把Flink处理后的数据输出到外部设备中,也可称之为数据落地。
[0029]传统Flink架构中的原生Sink算子使用单线程方式进行数据落地,由于单线程的限制,消息Sink时是一条条的处理,造成数据吞吐量不高,也不能发挥任务服务器的全部性能,服务器资源如中央处理器(Central Processing Unit,简称CPU)的使用率较低,资源闲置浪费。
[0030]现有技术中,为了提高Sink吞吐量往往采用增加Sink算子并行度,即增加相应数量CPU,但这种方式即增加了服务器成本,又造成资源浪费,且无法实现同类型数据的顺序输出。
[0031]针对上述技术问题,本专利技术的技术构思在于:用户可根据需求预先设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:基于Flink架构的Sink算子按照预设置的分组规则将接收到的数据存储到对应的数据缓冲队列中;根据数据缓冲队列的出队顺序从所述数据缓冲队列中依次获取数据,发送给线程池中的多线程进行数据输出。2.根据权利要求1所述的方法,其特征在于,所述数据携带优先级信息,所述将接收到的数据存储到对应的数据缓冲队列中之后,还包括:根据数据携带的优先级信息,对所述数据缓冲队列中的所有数据进行出队顺序的重新排序。3.根据权利要求1或2所述的方法,其特征在于,所述将接收到的数据存储到对应的数据缓冲队列中之前,还包括:接收用户的配置指令,根据所述配置指令设置所述Flink架构的Sink算子的配置信息,所述配置信息包括以下至少一种:数据缓冲队列的容量上限值、线程池的线程数量、数据输出失败后的重试策略以及一致性检查点策略;其中,所述数据缓冲队列的容量上限值根据虚拟机堆内存容量确定,所述线程池的线程数量不大于线程数量上限值,所述线程数量上限值根据处理器容量确定。4.根据权利要求3所述的方法,其特征在于,所述将接收到的数据存储到对应的数据缓冲队列中之后,还包括:确定所述数据缓冲队列当前已存储的数据容量是否达到所述数据缓冲队列的容量上限值;若是,则阻塞数据存储到对应的数据缓冲队列中;若否,则执行所述将接收到的数据存储到对应的数据缓冲队列...

【专利技术属性】
技术研发人员:胡建平
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1