一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

实时数据任务的发布方法、装置、电子设备及存储介质与流程

2021-11-05 22:23:00 来源:中国专利 TAG:


1.本技术涉及流计算技术领域,尤其涉及一种实时数据任务的发布方法、装置、电子设备及存储介质。


背景技术:

2.实时数据处理是大数据行业十分重要的领域,克服了传统批处理的高延时,高吞吐的特点,实现了数据实时获取,实时计算,实时展示的能力。
3.现有的实时数据处理大多是结合产品需求,由资深的开发人员利用spark streaming、flink等流计算框架开发出的功能单一、应用场景特定、应用模式特定的实时流计算应用。flink基于其checkpoint、savepoint功能的实现,使其在流处理上具备高效、低延时、实时无边界计算的特性,因而,flink在流数据上的处理能力比spark streaming在批处理上做流要更为高效、合理。但是,发明人发现,checkpoint、savepoint功能的实现增加了利用flink进行数据处理的开发成本,让实时数据任务发布变得更加繁琐,而且实现实时作业从提交、启动、savepoint、checkpoint等一系列工作,大大地加长了实时数据任务发布的周期。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种实时数据任务的发布方法、装置、电子设备及存储介质,可以简化数据发布的流程,释放开发者的编译时间,提高作业调参的效率。
5.本技术实施例的第一方面提供了一种实时数据任务的发布方法,包括:
6.获取输入的任务发布请求,所述任务发布请求中包含业务逻辑语句;
7.按照所述任务发布请求中的业务逻辑语句,对预设的任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务;
8.通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行。
9.结合第一方面,在第一方面的第一种可能实现方式中,所述通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行之前,还包括:
10.采用所述预设的任务发布模板中预配置的任务发布模式将所述实时数据任务发布到资源管理集群上运行,其中,所述预设的任务发布模板中预配置的任务发布模式按数据处理量配置为初始化发布模式、增量发布模式和正常发布模式。
11.结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行,包括:
12.判断所述实时数据任务是否为全量数据处理任务或第一次执行的数据处理任务,若是,则采用所述初始化发布模式发布所述实时数据任务;和/或
13.判断所述实时数据任务是否为按照kafka消息队列执行的数据处理任务,若是,则采用所述正常发布模式发布所述实时数据处理任务。
14.结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所
述采用所述初始化发布模式发布所述实时数据任务之后,还包括:
15.判断所述实时数据任务是否初始化结束;
16.若所述实时数据任务初始化结束,将在所述初始化发布模式中记录的所述实时数据任务的任务标识码和执行程序标识码自动配置到所述增量发布模式中,以自动启动所述增量发布模式发布所述实时数据任务的后续增量数据任务。
17.结合第一方面,在第一方面的第四种可能实现方式中,所述通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行之后,还包括:
18.接收用户发送的任务运行调整指令,所述任务运行调整指令中包含有待调整的运行配置参数;
19.基于所述任务运行调整指令调用所述实时数据任务的资源配置文件,将所述待调整的运行配置参数更新到所述资源配置文件中。
20.结合第一方面,在第一方面的第五种可能实现方式中,所述通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行之后,还包括:
21.监听所述实时数据任务的当前运行状态,判断所述实时数据任务是否需要重启运行;
22.若所述实时数据任务需要重启运行,则根据所述实时数据任务的当前运行状态在所述实时数据任务中添加待启动的状态保存节点,以在所述状态保存节点处重启运行所述实时数据任务。
23.结合第一方面或第一方面的任意一种可能实现方式,在第一方面的第六种可能实现方式中,所述按照所述任务发布请求中的业务逻辑语句,对预设的任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务之前,还包括:
24.采用所述预设的任务发布模板中预配置的数据格式化建表单元对上游数据资源进行格式化建表,以使所述任务发布模板从所述格式化建表中读取用于生成实时数据任务的上游数据资源。
25.本技术实施例的第二方面提供了一种实时数据任务的发布装置,所述实时数据任务的发布装置包括:
26.获取模块,用于获取输入的任务发布请求,所述任务发布请求中包含业务逻辑语句;
27.生成模块,用于按照所述任务发布请求中的业务逻辑语句,对预设的任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务;
28.发布模块,用于通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行。
29.本技术实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在电子设备上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的实时数据任务的发布方法的各步骤。
30.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的实时数据任务的发布方法的各步骤。
31.本技术实施例提供的一种实时数据任务的发布方法、装置、电子设备及存储介质,
具有以下有益效果:
32.本技术所述方法通过获取输入的任务发布请求,按照任务发布请求中的业务逻辑语句,对预设的任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务,最后通过预设的命令行接口,将实时数据任务发布到资源管理集群上运行。以此,通过任务发布模板发布作业,实现通过前端界面点击的方式发布作业,简化任务发布的流程,且通过采用查询变量赋值的方式生成实时数据任务,解决传统flink sql需要重复打jar包动作的问题,释放开发者的编译时间,使得任务发布变得简洁、高效。
附图说明
33.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
34.图1为本技术实施例提供的一种实时数据任务的发布方法的实现流程图;
35.图2为本技术实施例提供的实时数据任务的发布方法中采用增量发布模式发布实时数据任务的一种方法流程示意图;
36.图3为本技术实施例提供的实时数据任务的发布方法中调整实时数据任务运行的一种方法流程示意图;
37.图4为本技术实施例提供的实时数据任务的发布方法中任务拉起处理的一种方法流程示意图;
38.图5为本技术实施例提供的一种实时数据任务的发布装置的基本结构框图;
39.图6为本技术实施例提供的一种电子设备的基本结构框图。
具体实施方式
40.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
41.请参阅图1,图1为本技术实施例提供的一种实时数据任务的发布方法的实现流程图。详述如下:
42.步骤s11:获取输入的任务发布请求,所述任务发布请求中包含业务逻辑语句。
43.本实施例中,为了数据开发用户将更多时间投入到业务逻辑需求的sql开发上,减少开发实时数据任务时所产生的重复工作,提高开发效率,预先设计有一套基于工作流调度器(如azkaban)提交实时数据作业的任务发布模板。该任务发布模板被配置为集成了基于工作流调度器提交实时数据作业的流程,并对外设置有一个用于生成实时数据作业的sql开发接口,通过该sql开发接口获取输入的任务发布请求。在本实施例中,该任务发布请求中包含用户编辑的一些业务逻辑语句(如sql语句)。在实际应用中,可以提供一人机交互界面(如azkaban web界面),以便用户基于该人机交互界面进行上述业务逻辑语句的编辑并触发该任务发布请求。
44.步骤s12:按照所述任务发布请求中的业务逻辑语句,对预设的任务发布模板中的
查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务。
45.本实施例中,数据开发用户可以通过在该任务发布模板中对定义的查询变量进行赋值的方式来生成满足其开发的业务逻辑需求的实时数据任务。示例性的,用户在编辑业务逻辑语句时,会在该业务逻辑语句中配置有对应的表征查询变量的参数值,比如sql语句中的query值。本实施例可以通过对业务逻辑语句进行字段识别或特征提取等方式获得该表征查询变量的参数值,该获得的参数值即确定为任务发布模板中查询变量的参数值。进而按照确定的查询变量的参数值对任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务。在任务发布模板中,关联配置有一个存储代码实现jar包的数据库,而在该数据库中,每一个存储的代码实现jar包都有一个查询变量的参数值与之映射关联,其中,查询变量的参数值是基于业务逻辑设置的,即一种业务逻辑对应一个查询变量的参数值。基于此,通过给任务发布模板中的查询变量进行赋值,即可基于该赋值从数据库中获得业务逻辑对应的代码实现jar包,从而生成实时数据任务。
46.步骤s13:通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行。
47.由于实时数据任务由sql逻辑构成的任务发布模板生成,在生成实时数据任务后,可以通过预设的命令行接口(linux cli),直接将所述实时数据任务发布到资源管理集群上运行。其中,命令行接口linux cli是一种通过在终端窗口中键入文本命令来实现与计算机交互的接口。
48.以上可以看出,本实施例提供的实时数据任务的发布方法通过获取输入的任务发布请求,得到任务发布请求中包含的业务逻辑语句,然后按照业务逻辑语句,对预设的任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务,最后,通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行。基于该方案,用户通过任务发布模板发布作业,实现通过前端界面(如azkaban web界面)点击的方式发布作业,简化任务发布的流程,且通过采用查询变量赋值的方式生成实时数据任务,解决传统flink sql需要重复打jar包动作的问题,释放开发者的编译时间,使得任务发布变得简洁、高效。
49.本技术的一些实施例中,针对不同的数据处理量,可以在预设的任务发布模板中设置不同的发布模式。示例性的,本实施例在该预设的任务发布模板中设置有三种发布模式,分别为初始化发布模式、增量发布模式和正常发布模式。其中,初始化发布模式与增量发布模式为相互依赖关系,增量发布模式在初始化发布模式结束之后自动启动。在本实施例中,初始化发布模式适用于数据处理量较大的情况,例如全量数据处理。正常发布模式适用于数据处理量相对较小的情况,例如,按照kafka消息队列执行的数据处理。在将实时数据任务发布到资源管理集群上运行时,可以根据实时数据任务的数据处理量来选择不同的任务发布。
50.在本实施例中,基于该三种发布模式,可以集成任务发布模板对实时数据任务的savepoint操作和checkpoint操作,让实时数据任务能够进行savepoint与checkpoint的启停操作。示例性的,根据数据处理量的大小可以确定是否能够直接开启checkpoint操作。由此,基于该三种发布模式,若可以直接开启checkpoint操作,则说明实时数据任务的数据处理量相对较小,此时可以采用正常模式发布该实时数据任务。若无法直接开启checkpoint
操作,则说明数据处理量相对较大,此时可以执行savepoint操作,然后采用初始化模式发布该实时数据任务,待初始化处理结束后自动启动增量模式发布新增数据的实时数据处理任务,并停止执行savepoint操作,转换至开启checkpoint操作。在本实施例中,savepoint操作和checkpoint操作均用于实现实时数据任务执行数据处理过程中的状态保存,其中,savepoint操作为手动触发保存,checkpoint操作为定时触发保存。通过该savepoint操作和checkpoint操作,无需重复开发大量脚本,大大简化了作业的维护成本,使得作业的运维工作变得简洁且高效。
51.示例性的,本技术的一些实施例中,可以通过判断实时数据任务是否为全量数据处理任务或者是否为第一次执行的数据处理任务来确定该实时数据任务是否属于数据处理量较大的情况,可以通过判断实时数据处理任务是否按照kafka消息队列执行的数据处理任务来确定该实时数据任务是否属于数据处理量较小的情况,以此实现按照数据处理量对实时数据任务进行归类。在本实施例中,若一个实时数据任务为全量数据计算处理或者为第一次执行的数据处理,则说明该实时数据任务的数据处理量相对较大,此时,可以采用预设的任务发布模板中的初始化发布模式发布该实时数据任务,并且在经初始化发布模式处理完该实时数据任务之后,自动切换至增量发布模式,以在增量发布模式下发布该实时数据任务的增量数据。若一个实时数据任务在按照kafka消息队列执行的数据处理任务,则说明该实时数据任务的数据处理量相对较小,此时,可以采用预设的任务发布模板中的正常发布模式发布该实时数据任务。
52.本技术的一些实施例中,请参阅图2,图2为本技术实施例提供的实时数据任务的发布方法中采用增量发布模式发布实时数据任务的一种方法流程示意图。详细如下:
53.步骤s21:判断所述实时数据任务是否初始化结束;
54.步骤s22:若所述实时数据任务初始化结束,将在所述初始化发布模式中显示的任务标识码和执行程序标识码自动配置到所述增量发布模式中,以自动启动所述增量发布模式发布所述实时数据任务的后续增量数据任务。
55.本实施例中,由于初始化发布模式与增量发布模式为相互依赖关系,增量发布模式在初始化发布模式结束之后自动启动。在本实施例中,可以通过监测全量数据处理或者为第一次执行的数据处理的完成情况,若实时数据任务已将全量数据或第一次执行的数据计算完一遍,则判断该实时数据任务初始化结束。当实时数据任务初始化结束后,自动触发该预设的任务发布模板从初始化发布模式切换至增量发布模式,具体地,将初始化发布模式中记录的该实时数据任务的任务标识码(jobid)和执行程序标识码(appid)自动配置到增量发布模式中,以完成两个发布模式之间的自动切换,无需在增量发布模式手动填写该实时数据任务的任务标识码(jobid)和执行程序标识码(appid)。自动启动所述增量发布模式发布所述实时数据任务的后续增量数据任务。
56.本技术的一些实施例中,请参阅图3,图3为本技术实施例提供的实时数据任务的发布方法中调整实时数据任务运行的一种方法流程示意图。详细如下:
57.步骤s31:接收用户发送的任务运行调整指令,所述任务运行调整指令中包含有待调整的运行配置参数;
58.步骤s32:基于所述任务运行调整指令调用所述实时数据任务的资源配置文件,将所述待调整的运行配置参数更新到所述资源配置文件中。
59.本实施例中,在实时数据处理任务运行过程中,可以通过接收用户发送的任务运行调整指令来调整该实时数据处理任务运行所需的memory、cpu、并行度、cores等运行配置参数。具体地,用户通过将待调整的运行配置参数附于该运行调整指令中,当接收到任务运行调整指令后,可从该调整指令中解析得到待调整的运行配置参数。然后,基于该调整指令触发调用实时数据任务的资源配置文件,进而将待调整的运行配置参数更新到资源配置文件中,以此实现调整实时数据任务运行。在本实施例中,当需要调整实时数据任务运行时,通过在正常发布模式下对该实时数据任务进行savepoint操作,在savepoint操作后,按照调整指令调整conf下的资源配置文件,调整完资源配置文件后,在该savepoint操作的节点再次发布该实时数据处理任务即可。该实时数据处理任务运行过程的调整只需编辑文本类型的资源配置文件,无需进行代码编译,可以实现快速敏捷升级作业。
60.本技术的一些实施例中,请参阅图4,图4为本技术实施例提供的实时数据任务的发布方法中任务拉起处理的一种方法流程示意图。详细如下:
61.步骤s41:监听所述实时数据任务的当前运行状态,判断所述实时数据任务是否需要重启运行;
62.步骤s42:若所述实时数据任务需要重启运行,则根据所述实时数据任务的当前运行状态在所述实时数据任务中添加待启动的状态保存节点,以在所述状态保存节点处重启运行所述实时数据任务。
63.本实施例中,在实时数据任务在集群上运行的过程中,实时监听该实时数据任务的当前运行状态,判断该实时数据任务的运行是否出现中断故障或参数更新等情况,如果出现这些情况,则判断该实时数据任务需要重新运行。此时,可以根据实时数据任务的当前运行状态,在实时数据任务中添加待启动的状态保存节点,其中,包括添加待启动的checkpoint操作节点的编号(number)和实时数据处理任务的id(jobid),以保存历史处理记录,实现在重启运行后无需重新处理此前处理过的数据。在状态保存节点处重启运行该实时数据任务,无需人工进入服务器后台执行相关脚本,有效简化了作业的维护成本,使得运维工作变得简洁且高效。
64.本技术的一些实施例中,在预设的作业发布模板中还预先配置有一数据格式化建表单元,该数据格式化建表单元提供了一个将上游数据资源(例如mysql/pg数据库表)自动转化成该预设的任务发布模板可识别建表语句的功能,基于数据格式化建表单元,可以将用于生成实时数据任务的上游数据资源进行格式化建表,简化该任务发布模板的建表动作,得到的格式化建表中的数据资源可直接被任务发布模板识别和读取。同时,基于该数据格式化建表单元对上游数据资源进行建表动作,对上游数据库的密码也起到保密,降低数据库密码泄露风险。
65.可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
66.本技术的一些实施例中,请参阅图5,图5为本技术实施例提供的一种实时数据任务的发布装置的基本结构框图。本实施例中该装置包括的各单元用于执行上述方法实施例中的各步骤。具体请参阅上述方法实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图5所示,实时数据任务的发布装置包括:获取模块51、生成模块52以及发
布模块53。其中:所述获取模块51用于获取输入的任务发布请求,所述任务发布请求中包含业务逻辑语句。所述生成模块52用于按照所述任务发布请求中的业务逻辑语句,对预设的任务发布模板中的查询变量进行赋值处理,以基于赋值后的任务发布模板生成实时数据任务。所述发布模块53用于通过预设的命令行接口,将所述实时数据任务发布到资源管理集群上运行。
67.应当理解的是,上述实时数据任务的发布装置,与上述的实时数据任务的发布方法一一对应,此处不再赘述。
68.本技术的一些实施例中,请参阅图6,图6为本技术实施例提供的一种电子设备的基本结构框图。如图6所示,该实施例的电子设备6包括:处理器61、存储器62以及存储在所述存储器62中并可在所述处理器61上运行的计算机程序63,例如实时数据任务的发布方法的程序。处理器61执行所述计算机程序63时实现上述各个实时数据任务的发布方法各实施例中的步骤。或者,所述处理器61执行所述计算机程序63时实现上述实时数据任务的发布装置对应的实施例中各模块的功能。具体请参阅实施例中的相关描述,此处不赘述。
69.示例性的,所述计算机程序63可以被分割成一个或多个模块(单元),所述一个或者多个模块被存储在所述存储器62中,并由所述处理器61执行,以完成本技术。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序63在所述电子设备6中的执行过程。例如,所述计算机程序63可以被分割成获取模块、生成模块以及发布模块,各模块具体功能如上所述。
70.所述转台设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图6仅仅是电子设备6的示例,并不构成对电子设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
71.所称处理器61可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
72.所述存储器62可以是所述电子设备6的内部存储单元,例如电子设备6的硬盘或内存。所述存储器62也可以是所述电子设备6的外部存储设备,例如所述电子设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器62还可以既包括所述电子设备6的内部存储单元也包括外部存储设备。所述存储器62用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
73.需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
74.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步
骤。在本实施例中,所述计算机可读存储介质可以是非易失性,也可以是易失性。
75.本技术实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
76.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
77.所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
78.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
79.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献