实时数据处理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:24251251 阅读:56 留言:0更新日期:2020-05-22 23:25
本申请涉及大数据处理领域,尤其是一种实时数据处理方法、装置、计算机设备和存储介质。所述方法包括:获取待处理实时数据,并根据待处理实时数据的依赖方式生成有向无环图;将有向无环图进行拆分得到初始任务,并获取拆分后的每一初始任务的任务量;将初始任务分配到不同的执行机中进行处理;判断每一所述初始任务的任务量之间的差值是否大于预设阀值;当存在差值大于预设阀值的初始任务时,则将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务;将所述过度任务分别分配到对应的执行机的不同的线程中进行执行;将各个执行机执行得到的交易对象存储至分布式存储系统中。采用本方法能够提高处理效率和资源利用率。

Real time data processing methods, devices, computer equipment and storage media

【技术实现步骤摘要】
实时数据处理方法、装置、计算机设备和存储介质
本申请涉及大数据处理
,特别是涉及一种实时数据处理方法、装置、计算机设备和存储介质。
技术介绍
实时流处理已成为当下各大公司的基本需求,日志处理,日常的PV(页面浏览量),UV(页面点击量)统计,受欢迎的topN商品,活跃区域topN等等。实时掌握最近几分钟、几小时的指标情况,应对不同的情况,能让公司在第一时间进行相应的调整,比如个性化推荐,加大某个商品的权重,减少某些产品的权重。SparkStreaming由于其强大的离线批处理能力和实时的batch数据处理能力,受到广大公司的欢迎。当数据处理的报文数据量较大时,比如一条报文数据达到500K甚至1M,sparkstreaming处理这些报文时,任务较重,经常会堵住,形成批量数据的积压,最后造成内存的溢出,任务终止。报文的业务类型有很多种,同一个topic中存在多种的业务类型,流式处理程序处理这些报文无法批量进行处理,处理的过程中容易造成数据倾斜,部分task任务处理时间较长,造成整体批次处理时间长,导致资源的浪费。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够提高数据处理效率以及资源利用率的实时数据处理方法、装置、计算机设备和存储介质。一种实时数据处理方法,所述方法包括:获取待处理实时数据,并根据所述待处理实时数据的依赖方式生成有向无环图;将所述有向无环图进行拆分得到初始任务,并获取拆分后的每一所述初始任务的任务量;将所述初始任务分配到不同的执行机中进行处理;判断每一所述初始任务的任务量之间的差值是否大于预设阀值;当存在差值大于预设阀值的初始任务时,则将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务;将所述过度任务分别分配到对应的执行机的不同的线程中进行执行;将各个执行机执行得到的交易对象存储至分布式存储系统中。在其中一个实施例中,所述将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务,包括:获取差值大于预设阀值的初始任务所分配的执行机,并获取所述执行机的当前所能设定的线程数;确定差值大于预设阀值的初始任务中,任务量较大的初始任务;根据所述线程数将所述任务量较大的初始任务进行拆分得到多个过度任务。在其中一个实施例中,所述将所述初始任务分配到不同的执行机中进行处理,包括:将所述初始任务分配到不同的执行机中;获取执行机的当前运行环境以获取到与所述初始任务对应的执行方法;获取所述初始任务中的当前数据;调用所述执行方法中的中间任务执行方法对所述当前数据进行处理得到中间任务;调用执行方法中的目标任务执行方法对所述中间任务进行处理得到交易对象;根据迭代方法获取所述初始任务中的下一数据作为当前数据,并继续调用所述执行方法中的中间任务执行方法对所述当前数据进行处理得到中间任务,直至所述初始任务中的数据处理完成。在其中一个实施例中,所述获取待处理实时数据,包括:查询所述待处理实时数据是否已经缓存;若所述待处理实时数据已经缓存,则从缓存中读取所述待处理实时数据;若所述待处理实时数据未缓存,则获取预设数据集中的待处理实时数据。在其中一个实施例中,所述方法还包括:初始化预设存储系统的对象,以定义所述预设存储系统的数据存储类;通过直连的方式消费所述预设存储系统的数据存储类,以建立与所述数据存储类中的预设存储分区对应的预设数据集;解析所述预设存储系统中每个预设分区中存储的结构化数据为交易类型对象,并将所述交易类型对象存储到对应的预设数据集中。在其中一个实施例中,所述通过直连的方式消费所述预设存储系统的数据存储类之前,还包括:判断是否定义了对应的分布式存储系统;如果未定义对应的分布式存储系统,则定义分布式存储系统以及交易类型对象,所述交易类型对象与结构化数据相对应。在其中一个实施例中,所述解析所述预设存储系统中每个预设分区中存储的结构化数据为交易类型对象,包括:获取所设置的预设时间内的最大读取数量;在预设时间内从所述预设存储系统中每个预设分区读取小于等于所述最大读取数量的结构化数据;解析所述预设存储系统中每个预设分区中存储的结构化数据为交易类型对象。一种实时数据处理装置,所述装置包括:图生成模块,用于获取待处理实时数据,并根据所述待处理实时数据的依赖方式生成有向无环图;第一拆分模块,用于将所述有向无环图进行拆分得到初始任务,并获取拆分后的每一所述初始任务的任务量;第一分配模块,用于将所述初始任务分配到不同的执行机中进行处理;第一判断模块,用于判断每一所述初始任务的任务量之间的差值是否大于预设阀值;第二拆分模块,用于当存在差值大于预设阀值的初始任务时,则将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务;第二分配模块,用于将所述过度任务分别分配到对应的执行机的不同的线程中进行执行;存储模块,用于将各个执行机执行得到的交易对象存储至分布式存储系统中。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。上述实时数据处理方法、装置、计算机设备和存储介质,在生成初始任务后,将初始任务分配到不同的执行机中进行执行,且为了避免某一执行机所处理的初始任务的任务量较大,导致数据倾斜,可以预先比较各个初始任务的任务量,将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务,从而在对应的执行机中开辟多个线程来处理该过度任务,这样可以减少任务量较大的初始任务的执行时间,从而可以提高执行效率,且可以避免任务量较少的初始任务一直等待任务量较大的初始任务处理完成,减少了资源的浪费,提高了资源利用率。附图说明图1为一个实施例中实时数据处理方法的应用场景图;图2为一个实施例中实时数据处理方法的流程示意图;图3为一个实施例中的服务器将kafka中的数据存储到rdd对象中的步骤的流程图;图4为一个实施例中实时数据处理装置的结构框图;图5为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的实时数据处理方法,可以应用于如图1所示的应用环境中。其中,其中预设存储系统102可以获取到数据源数据库104中的数据,并进行存储;服务器102可以通过直连方式消费预设存储系统106中的数据,然后将所获本文档来自技高网...

【技术保护点】
1.一种实时数据处理方法,其特征在于,所述方法包括:/n获取待处理实时数据,并根据所述待处理实时数据的依赖方式生成有向无环图;/n将所述有向无环图进行拆分得到初始任务,并获取拆分后的每一所述初始任务的任务量;/n将所述初始任务分配到不同的执行机中进行处理;/n判断每一所述初始任务的任务量之间的差值是否大于预设阀值;/n当存在差值大于预设阀值的初始任务时,则将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务;/n将所述过度任务分别分配到对应的执行机的不同的线程中进行执行;/n将各个执行机执行得到的交易对象存储至分布式存储系统中。/n

【技术特征摘要】
1.一种实时数据处理方法,其特征在于,所述方法包括:
获取待处理实时数据,并根据所述待处理实时数据的依赖方式生成有向无环图;
将所述有向无环图进行拆分得到初始任务,并获取拆分后的每一所述初始任务的任务量;
将所述初始任务分配到不同的执行机中进行处理;
判断每一所述初始任务的任务量之间的差值是否大于预设阀值;
当存在差值大于预设阀值的初始任务时,则将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务;
将所述过度任务分别分配到对应的执行机的不同的线程中进行执行;
将各个执行机执行得到的交易对象存储至分布式存储系统中。


2.根据权利要求1所述的方法,其特征在于,所述将差值大于预设阀值的初始任务中,任务量较大的初始任务进行拆分得到多个过度任务,包括:
获取差值大于预设阀值的初始任务所分配的执行机,并获取所述执行机的当前所能设定的线程数;
确定差值大于预设阀值的初始任务中,任务量较大的初始任务;
根据所述线程数将所述任务量较大的初始任务进行拆分得到多个过度任务。


3.根据权利要求1所述的方法,其特征在于,所述将所述初始任务分配到不同的执行机中进行处理,包括:
将所述初始任务分配到不同的执行机中;
获取执行机的当前运行环境以获取到与所述初始任务对应的执行方法;
获取所述初始任务中的当前数据;
调用所述执行方法中的中间任务执行方法对所述当前数据进行处理得到中间任务;
调用执行方法中的目标任务执行方法对所述中间任务进行处理得到交易对象;
根据迭代方法获取所述初始任务中的下一数据作为当前数据,并继续调用所述执行方法中的中间任务执行方法对所述当前数据进行处理得到中间任务,直至所述初始任务中的数据处理完成。


4.根据权利要求1所述的方法,其特征在于,所述获取待处理实时数据,包括:
查询所述待处理实时数据是否已经缓存;
若所述待处理实时数据已经缓存,则从缓存中读取所述待处理实时数据;
若所述待处理实时数据未缓存,则获取预设数据集中的待处理实时数据。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
初始化预设存储系统的对象,以定...

【专利技术属性】
技术研发人员:陈金路
申请(专利权)人:平安医疗健康管理股份有限公司
类型:发明
国别省市:上海;31

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

1