CN113504912A - 实时任务的处理方法和装置、存储介质及电子装置 - Google Patents
实时任务的处理方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113504912A CN113504912A CN202110833273.4A CN202110833273A CN113504912A CN 113504912 A CN113504912 A CN 113504912A CN 202110833273 A CN202110833273 A CN 202110833273A CN 113504912 A CN113504912 A CN 113504912A
- Authority
- CN
- China
- Prior art keywords
- target
- task
- debugging
- real
- time task
- 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 description 2
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000003780 insertion Methods 0.000 claims description 44
- 230000037431 insertion Effects 0.000 claims description 44
- 238000004458 analytical method Methods 0.000 claims description 21
- 230000001960 triggered effect Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000012360 testing method Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229910021532 Calcite Inorganic materials 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种实时任务的调试方法和装置、存储介质、电子装置,其中,上述方法包括:响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表;获取与所述任务数据源表对应的任务数据源文件,其中,所述任务数据源文件包含与所述任务数据源表对应的目标调试数据,所述目标调试数据用于替换所述任务数据源表对所述目标实时任务进行调试;使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果。通过本申请,解决了相关技术中实时任务的调试方法存在需要预定义文件格式导致的调试操作的复杂度高、任务调试的便捷性差的问题。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种实时任务的调试方法和装置、存储介质及电子装置。
背景技术
目前,用户可以使用实时计算平台进行实时任务的开发,上述实时计算平台可以是基于Flink(Forward link,正向连接,一款基于数据流模型的实时计算引擎)SQL(Structured Query Language,结构化查询语言,一种特殊的编程语言)所构建的。随着数据开发功能的逐渐成熟,在数据应用的需求层面,对于数据的实时性的要求逐渐提高,实时任务的开发量也随之增多。
相关技术,在对实时任务进行调试时,可以预定义数据源文件格式和业务逻辑文件格式,同时根据抽象业务逻辑中的设定条件从服务器中过滤出有效数据源文件,执行模拟计算后输出模拟结果文件或错误反馈日志。
然而,由于上述预定义数据源文件格式和业务逻辑文件格式操作需要在开发实时任务后,按照对应的格式对这两个文件格式进行编写,增添了用户对于格式的理解和开发的流程,进而增加了调试的复杂度。在实时计算的任务量增多时,上述实时任务的调试方式也会导致用户开发调试实时任务的便捷性变差。
由此可见,相关技术中实时任务的调试方法,存在需要预定义文件格式导致的调试操作的复杂度高、任务调试的便捷性差的问题。
发明内容
本申请实施例提供了一种实时任务的调试方法和装置、存储介质及电子装置,以至少解决相关技术中实时任务的调试方法存在需要预定义文件格式导致的调试操作的复杂度高、任务调试的便捷性差的问题。
根据本申请实施例的一个方面,提供了一种实时任务的调试方法,包括:响应于针对目标实时任务进行调度的调试指令,对所述目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表;获取与所述任务数据源表对应的任务数据源文件,其中,所述任务数据源文件包含与所述任务数据源表对应的目标调试数据,所述目标调试数据用于替换所述任务数据源表对所述目标实时任务进行调试;使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果。
在一个示例性实施例中,所述对所述目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表包括:对所述目标实时任务进行解析,得到与所述目标实时任务中的第一插入语句对应的第一抽象语法树,其中,所述第一插入语句用于将数据源表中的数据插入到目标表中;基于所述第一抽象语法树对所述第一插入语句进行解析,得到所述目标实时任务所使用的所述任务数据源表。
在一个示例性实施例中,所述调试指令是通过客户端触发的;所述获取与所述任务数据源表对应的任务数据源文件包括:向所述客户端发送文件上传指令,其中,所述文件上传指令用于指示上传包含与所述任务数据源表对应的调试数据的数据源文件;接收所述客户端响应所述文件上传指令所返回的所述任务数据源文件。
在一个示例性实施例中,在所述使用所述目标调试数据对所述目标实时任务进行调试之前,所述方法还包括:对所述目标实时任务进行解析,得到所述目标实时任务所使用的第一目标表;将所述目标实时任务中的所述第一目标表替换为存储系统中的第二目标表,其中,所述第二目标表用于存储所述目标调试结果。
在一个示例性实施例中,所述对所述目标实时任务进行解析,得到所述目标实时任务所使用的第一目标表包括:对所述目标实时任务进行解析,得到与所述目标实时任务中的第二插入语句对应的第二抽象语法树,其中,所述第二插入语句用于向目标表中插入数据;基于所述第二抽象语法树对所述第二插入语句进行解析,得到所述目标实时任务所使用的所述第一目标表。
在一个示例性实施例中,所述将所述目标实时任务中的所述第一目标表替换为存储系统中的第二目标表包括:确定所述目标实时任务中与所述第一目标表对应的目标创建语句,其中,所述目标创建语句用于创建所述第一目标表;将所述目标创建语句中的连接参数更改为目标连接参数,以在所述存储系统中创建所述第二目标表,其中,所述目标连接参数用于指示以目标文件格式在所述存储系统的目标存储路径中创建目标表。
在一个示例性实施例中,在所述使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果之后,所述方法还包括:根据所述目标调试结果生成结果展示信息,其中,所述结果展示信息用于展示所述目标调试结果;将所述结果展示信息发送到所述客户端,以使所述客户端对所述结果展示信息进行显示。
根据本申请实施例的另一方面,还提供了一种实时任务的调试装置,包括:第一解析单元,用于响应于针对目标实时任务进行调度的调试指令,对所述目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表;获取单元,用于获取与所述任务数据源表对应的任务数据源文件,其中,所述任务数据源文件包含与所述任务数据源表对应的目标调试数据,所述目标调试数据用于替换所述任务数据源表对所述目标实时任务进行调试;调试单元,用于使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果。
在一个示例性实施例中,所述解析单元包括:第一解析模块,用于对所述目标实时任务进行解析,得到与所述目标实时任务中的第一插入语句对应的第一抽象语法树,其中,所述第一插入语句用于将数据源表中的数据插入到目标表中;第二解析模块,用于基于所述第一抽象语法树对所述第一插入语句进行解析,得到所述目标实时任务所使用的所述任务数据源表。
在一个示例性实施例中,所述调试指令是通过客户端触发的;所述获取单元包括:发送模块,用于向所述客户端发送文件上传指令,其中,所述文件上传指令用于指示上传包含与所述任务数据源表对应的调试数据的数据源文件;接收模块,用于接收所述客户端响应所述文件上传指令所返回的所述任务数据源文件。
在一个示例性实施例中,所述装置还包括:第二解析单元,用于在所述使用所述目标调试数据对所述目标实时任务进行调试之前,对所述目标实时任务进行解析,得到所述目标实时任务所使用的第一目标表;替换单元,用于将所述目标实时任务中的所述第一目标表替换为存储系统中的第二目标表,其中,所述第二目标表用于存储所述目标调试结果。
在一个示例性实施例中,所述第二解析单元包括:第三解析模块,用于对所述目标实时任务进行解析,得到与所述目标实时任务中的第二插入语句对应的第二抽象语法树,其中,所述第二插入语句用于向目标表中插入数据;第四解析模块,用于基于所述第二抽象语法树对所述第二插入语句进行解析,得到所述目标实时任务所使用的所述第一目标表。
在一个示例性实施例中,所述替换单元包括:确定模块,用于确定所述目标实时任务中与所述第一目标表对应的目标创建语句,其中,所述目标创建语句用于创建所述第一目标表;转换模块,用于将所述目标创建语句中的连接参数更改为目标连接参数,以在所述存储系统中创建所述第二目标表,其中,所述目标连接参数用于指示以目标文件格式在所述存储系统的目标存储路径中创建目标表。
在一个示例性实施例中,所述装置还包括:生成单元,用于在所述使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果之后,根据所述目标调试结果生成结果展示信息,其中,所述结果展示信息用于展示所述目标调试结果;发送单元,用于将所述结果展示信息发送到所述客户端,以使所述客户端对所述结果展示信息进行显示。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述实时任务的调试方法。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的实时任务的调试方法。
在本申请实施例中,采用对实时任务进行解析、并使用数据源文件中的调试数据替换解析到的数据源表来执行实时任务的方式,响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表;获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试;使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果,由于使用数据源文件中的调试数据替换解析到的数据源表来执行实时任务,无需用户预先定义数据源文件格式即可完成实时任务的调试,同时,也无需用户修改实时任务的源代码,可以实现在不修改实时任务的任务代码的情况下直接使用模拟数据进行实时任务调试的目的,达到了降低调试操作的复杂度、提高任务调试的便捷性的技术效果,进而解决了相关技术中实时任务的调试方法存在需要预定义文件格式导致的调试操作的复杂度高、任务调试的便捷性差的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的实时任务的调试方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的实时任务的调试方法的流程示意图;
图3是根据本申请实施例的一种实时任务运行调试的调试结果页面展示的示意图;
图4是根据本申请实施例的另一种可选的实时任务的调试方法的流程示意图;
图5是根据本申请实施例的又一种可选的实时任务的调试方法的流程示意图;
图6是根据本申请实施例的一种可选的实时任务的调试装置的结构框图;
图7是根据本申请实施例的一种可选的电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种实时任务的调试方法。可选地,在本实施例中,上述实时任务的调试方法可以应用于如图1所示的由终端102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务。
上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端102可以并不限定于为PC、手机、平板电脑等。
本申请实施例的实时任务的调试方法可以由服务器104来执行,也可以由终端102来执行,还可以是由服务器104和终端102共同执行。其中,终端102执行本申请实施例的实时任务的调试方法也可以是由安装在其上的客户端来执行。
以由服务器104来执行本实施例中的实时任务的调试方法为例,图2是根据本申请实施例的一种可选的实时任务的调试方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
步骤S202,响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表。
本实施例中的实时任务的调试方法可以应用于通过计算平台对实时任务进行调试的场景。上述计算平台可以是基于目标程序语言框架所构建的计算平台,该目标程序语言框架可以是具备任务调试功能的语言框架,例如,Flink SQL,还可以是其他具有类似任务调试功能的语言框架,本实施例中以Flink SQL为例进行说明。Flink SQL是在Flink实时计算语言框架的基础上为简化计算模型,降低用户进行实时任务的调试的复杂度而设计的一套符合标准SQL语义的开发语言。
基于实际的任务需求,用户可以通过其终端设备或者其他设备编写目标实时任务的程序代码,该目标实时任务可以是使用实时数据所执行的任务,例如,在交通场景,使用实时的过车数据流统计每个统计周期(例如,5分钟)内的过车量。在目标实时任务的程序代码编写完成之后,用户可以触发对该目标实时任务进行调试,生成针对目标实时任务进行调度的调试指令。上述调试指令可以是由终端设备或者终端设备上的客户端所触发的,也可以是由目标计算平台中的设备触发的,还可以是由其他设备触发的,本实施例中对此不做限定。
目标计算平台响应于调试指令,启动对目标实时任务的调试。目标实时任务的程序代码可以是携带在调试指令中的,也可以是通过其他消息发送到目标计算平台的。在此情况下,目标计算平台可以基于调试指令中携带的实时任务标识或者用户标识等,确定出与该调试指令对应的目标实时任务的程序代码。
例如,用户可以基于实际业务、以及原生的Flink SQL语言逻辑编写开发对应的SQL代码,即,实时的SQL任务的代码,这里,不同数据库针对自己的特性,可以对标准SQL进行扩展或裁剪,形成的差异化SQL实现,可以称为SQL方言。SQL代码中可以包含多个CreateTable语句、以及一个或者多个Insert into的SQL语句,用于创建表和插入替换。用户在上线这个SQL任务之前,可以通过测试后台(目标计算平台的后台服务器的一种示例)提供的调试功能,触发对于该SQL任务的调试。
响应上述调试指令,测试后台可以对目标实时任务的程序代码进行解析,确定该目标实时任务所使用的任务数据源表(即,source表)。任务数据源表为执行目标实时任务所使用的实时数据所在的数据表。该任务数据源表的数量可以为一张或者多张,不同的实时任务,其使用的数据源表的数量可以是不同的,本实施例中对于任务数据源表的数量、大小等不做限定。
在本实施例中,目标实时任务的程序代码与上线后的实时任务的程序代码是相同的,即,用户在对实时任务不做修改的情况下触发调试。通过对目标实时任务进行解析所确定的任务数据源表为上线后的实时任务所使用的数据源表。
例如,测试后台通过calcite(解析,对create语句进行解析)解析算法对实时任务的SQL代码进行解析,得到对应的抽象语法树。抽象语法树中记录了不同类型的SQL节点,利用SQL节点可以对不同类型的DDL(Data Definition Language,数据定义语言)和DML(DataManipulation Language,数据操纵语言)进行区分,从而确定出该SQL任务所使用的source表。
步骤S204,获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试。
任务数据源表是上线后的实时任务所使用的数据源表,即,所使用的实时数据所在的数据表。由于在调试阶段,该任务数据源表还未存在。或者,即使存在,该任务数据源表中也可能并没有包含实时任务所需的调试数据。为了执行实时任务调试,在本实施例中,测试后台可以获取与任务数据源表对应的任务数据源文件,以使用获取的任务数据源文件中的调试数据来执行目标实时任务的调试。这里,在调试阶段,目标实时任务所使用的调试数据为获取的任务数据源文件中的数据。
获取任务数据源文件的方式可以有多种,可以包括但不限于以下至少之一:向客户端发送上传指令、并接收用户上传的任务数据源文件;基于配置信息,从指定路径下读取任务数据源文件,但不限于此,其他可以获取任务数据源表的方式,均可用于本实施例中。
如果有多个任务数据源表,与不同任务数据源表对应的任务数据源文件可以是依次获取的,即,每解析出一个任务数据源表,获取其对应的任务数据源文件,再解析下一个,直到解析完成;也可以是批量获取的,即,解析出所有的任务数据源表之后,一起获取对应的任务数据源文件。
步骤S206,使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果。
测试后台可以使用获取的任务数据源文件中的目标调试数据对目标实时任务进行调试,得到该目标实时任务的调试结果,即,目标调试结果。服务器还可以对该目标调试结果进行保存,例如,保存到目标表中。
该目标表可以是上线后的实时任务的目标表(即,sink表),也可以是其他指定的目标表,例如,通过修改目标实时任务中的目标表的信息,将目标实时任务中的目标表替换其他存储系统中的数据表。
例如,在调试结束后,可以将调试结果以文件形式存储在存储系统中的指定路径。用户通过手动查找结果文件,查看调试结果信息。若调试运行成功,该结果文件中记录的可以是调试结果的具体数据;若调试运行失败,该结果文件中记录的可以是用于指示调试失败的信息,还可以是调试失败原因的位置信息、描述信息等。
通过上述步骤,响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表;获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试;使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果,解决了相关技术中实时任务的调试方法存在需要预定义文件格式导致的调试操作的复杂度高、任务调试的便捷性差的问题,降低了调试操作的复杂度,提高了任务调试的便捷性。
在一个示例性实施例中,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表包括:
S11,对目标实时任务进行解析,得到与目标实时任务中的第一插入语句对应的第一抽象语法树,其中,第一插入语句用于将数据源表中的数据插入到目标表中;
S12,基于第一抽象语法树对第一插入语句进行解析,得到目标实时任务所使用的任务数据源表。
测试后台可以对目标实时任务进行解析,将其转化成对应的抽象语法树(Abstract Syntax Tree,简称为AST)。抽象语法树也可以称为逻辑语法树,其实一种表式源代码语法的树形结构,树上的每个节点都表示源代码中的一种结构。
目标实时任务中可以包含第一插入语句,该第一插入语句用于将数据源表中的数据插入到目标表中,该目标实时任务所使用的任务数据源表可以通过该第一插入语句确定。测试后台可以获取到该第一插入语句对应的第一抽象语法树,并利用第一抽象语法树对第一插入语句进行解析,得到目标实时任务所使用的任务数据源表。
例如,对于Flink SQL,平台后端可以解析用户SQL,转化成对应的逻辑语法树,并通过逻辑语法树的SQLKind区分DDL语句以及DML语句,同时通过解析DML语句也就是insertinto语句的SQL的逻辑语法树,可以筛选出当前的DML语句的source table,还可以筛选出当前的DML语句的sink table。然后结合所有的DML语句,就可以得到一个source集合,还可以得到一个sink集合。
通过本实施例,通过将实时任务的任务代码中的插入语句解析为对应的抽象语法树,并通过解析插入语句对应的抽象语法树,得到实时任务所使用的数据源表,可以提高数据源表解析的效率。
在一个示例性实施例中,调试指令是通过客户端触发的;获取与任务数据源表对应的任务数据源文件包括:
S21,向客户端发送文件上传指令,其中,文件上传指令用于指示上传包含与任务数据源表对应的调试数据的数据源文件;
S22,接收客户端响应文件上传指令所返回的任务数据源文件。
在本实施例中,调试指令是通过客户端触发的。用户可以在与该目标计算平台对应的客户端上编写上述的目标实时任务的代码程序。在编写完成之后,可以通过执行如点击客户端上的调试按钮等触发操作,触发对该目标实时任务进行调试。基于该触发操作,客户端可以向目标计算平台发送上述的调试指令。
为了获取与任务数据源表对应的任务数据源文件,测试后台可以向触发调试指令的上述客户端发送文件上传指令,该上传指令用于指示上传包含与任务数据源表对应的调试数据的数据源文件。如果任务数据源表有多个,可以针对每个任务源数据源表发送一次上传指令,也可以针对所有的任务数据源表发送一次上传指令,本实施例中对此不做限定。
在接收到上传指令之后,客户端可以显示上传界面,以供用户选择对应的数据源文件。在用户选择对应的任务数据源文件,并通过例如点击上传按钮等触发操作触发上传用户选择的任务数据源文件之后,客户端可以将用户选择的任务数据源文件发送给测试后台。测试后台可以接收客户端返回的上述任务数据源文件。
例如,对于Flink SQL,在用户触发对实时任务的调试之后,测试后台解析出实时任务所使用的source表,此时触发调试的动作会产生一个返回,提示用户有几个source表需要上传调试数据文件,可以是CSV(Comma Separate Values,逗号分隔值文件格式)、Parquet(Hadoop生态圈中一种新型列式存储格式)、AVRO(数据序列化系统)、ORC(Optimized Row Columnar,优化列式存储)等格式。然后用户上传对应的调试数据的数据源文件,比如CSV格式文件,即可直接开始调试过程,整个过程无需用户进行其他操作,也无需用户选择所上传的调试数据文件的格式,在不修改实时任务的任务代码的情况下直接使用模拟数据进行实时任务调试。
通过本实施例,通过向客户端发送上传指令并由客户端上传数据源表对应的数据源文件,可以在不修改实时任务的任务代码的情况下直接使用数据源文件中的模拟数据(即,调试数据)进行实时任务调试,降低了调试操作的复杂度、提高了任务调试的便捷性。
在一个示例性实施例中,在使用目标调试数据对目标实时任务进行调试之前,上述方法还包括:
S31,对目标实时任务进行解析,得到目标实时任务所使用的第一目标表;
S32,将目标实时任务中的第一目标表替换为存储系统中的第二目标表,其中,第二目标表用于存储目标调试结果。
对于目标实时任务的调试结果,测试平台可以将其存储到上线后的目标实时任务所使用的第一目标表中。在这种情况下,测试平台需要对于上线后的目标实时任务所使用的数据库进行连接,调试网络构建的成本较高。同时,由于是与上线后的实时任务所使用的数据库进行连接,在连接出现异常时,容易导致实时任务调试失败。
在本实施例中,可以使用测试平台关联的存储系统中的目标表来替换上述的第一目标表,以提高调试网络搭建的便捷性,同时提高实时任务调试的成功率。测试平台可以对目标实时任务进行解析,得到该目标实时任务所使用的第一目标表,并将目标实时任务中的第一目标表替换为存储系统中的第二目标表,以将目标实时任务的调试结果存储到第二目标表中。
通过本实施例,通过将实时任务所使用的目标表替换为存储系统中的数据表,可以提高调试网络搭建的便捷性,同时也可以提高实时任务调试的成功率。
在一个示例性实施例中,对目标实时任务进行解析,得到目标实时任务所使用的第一目标表包括:
S41,对目标实时任务进行解析,得到与目标实时任务中的第二插入语句对应的第二抽象语法树,其中,第二插入语句用于向目标表中插入数据;
S42,基于第二抽象语法树对第二插入语句进行解析,得到目标实时任务所使用的第一目标表。
为了确定目标实时任务所使用的目标表,测试后台可以对目标实时任务进行解析,将其转化成对应的抽象语法树。目标实时任务中可以包含第二插入语句,该第二插入语句用于向目标表中插入数据,其可以包含上述的第一插入语句,还可以包含其他的涉及数据插入的语句。该目标实时任务所使用的目标表可以通过该第二插入语句确定。测试后台可以获取到该第二插入语句对应的第二抽象语法树,并利用第二抽象语法树对第二插入语句进行解析,得到目标实时任务所使用的目标表,即,第一目标表。
例如,对于Flink SQL,平台后端可以解析用户SQL,转化成对应的逻辑语法树,并通过逻辑语法树的SQLKind区分DDL语句以及DML语句,同时通过解析DML语句也就是insertinto语句的SQL的逻辑语法树,可以筛选出当前的DML语句的sink table。然后结合所有的DML语句,就可以得到一个sink集合。
通过本实施例,通过将实时任务的任务代码中的插入语句解析为对应的抽象语法树,并通过解析插入语句对应的抽象语法树,得到实时任务所使用的目标表,可以提高目标表解析的效率。
在一个示例性实施例中,将目标实时任务中的第一目标表替换为存储系统中的第二目标表包括:
S51,确定目标实时任务中与第一目标表对应的目标创建语句,其中,目标创建语句用于创建第一目标表;
S52,将目标创建语句中的连接参数更改为目标连接参数,以在存储系统中创建第二目标表,其中,目标连接参数用于指示以目标文件格式在存储系统的目标存储路径中创建目标表。
将目标实时任务中的第一目标表替换为存储系统中的第二目标表的方式可以有多种,例如,通过配置并保存目标实时任务中的目标表与存储系统中的目标表的对应关系,在进行目标实时任务调试时,基于配置的上述对应关系,将写入到第一目标表中的数据写入到第二目标表中。
可选地,在本实施例中,可以通过修改目标表的创建语句中的连接参数,将第一目标表替换为第二目标表。在确定出目标实时任务所使用的第一目标表之后,测试后台可以根据第一目标表的表名等信息,确定出目标实时任务中与第一目标表对应的目标创建语句,该目标创建语句用于创建第一目标表。
对于目标创建语句,测试后台可以将其中的连接参数更改为目标连接参数,目标连接参数用于指示在存储系统的目标存储路径中创建目标表,从而可以在存储系统中创建第二目标表。
第二目标表的格式可以与第一目标表的格式相同。可选地,第二目标表的格式也可以是一种特定的格式,即,目标文件格式。该目标文件格式可以是用户基于使用需求(例如,基于其安装的软件应用)所设定的文件格式。该目标文件格式也可以是测试平台预先配置的文件格式。例如,在调试结果以页面的形式展示给用户的情况下,目标表的格式对于用户查看调试结果来说是没有影响的,因此,测试平台可以将所有的目标表均设定为统一的格式。
上述目标文件格式可以按照需要进行配置,可以包括但不限于以下至少之一:CSV,Parquet,AVRO,ORC。本实施例中对于目标文件格式不做限定。
例如,对于FlinkSQL,在解析出所有的source表和sink表之后,测试后台会将原先的DDL的语句替换成CSV数据源的DDL的语句,同理,对sink表也可以替换为CSV格式sink表。替换的原理是通过将原有的DDL sql中的with参数(作用同上述连接参数),更改为对应的使用filesystem(作用同上述存储系统)的connector(连接组件)的参数。
示例性地,替换后的一个创建语句为:Create Table csv_sink(a int)With('connector.type'='filesystem','connector.path'='/out','format.type'='csv'),表示在“filesystem”的“/out”路径下创建CSV格式的目标表。这个替换过程就是将用户原先的指定连接组件换成调试时的组件,避免对线上环境的数据产生影响,即,不论用户在客户端上传的数据源文件是何种格式,调试运行后的结果文件采用测试后台调试运行时设定的文件格式进行显示,避免了客户端环境对于结果展示的影响。
可选地,在替换后,测试后台通过Flink的TableEnv(外部命令程序文件表)转化生成对应的JobGraph(工作表)后,通过YarnApi(Yet Another Resource Negotiator,另一种资源协调者接口)提交到Yarn上进行调度,进而对实时任务进行调试。
通过本实施例,通过修改实时任务中目标表的创建语句中的连接参数,将实时任务的目标表替换为存储系统中特定文件格式的目标表,可以提高实时任务调试的便捷性。
在一个示例性实施例中,在使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果之后,上述方法还包括:
S61,根据目标调试结果生成结果展示信息,其中,结果展示信息用于展示目标调试结果;
S62,将结果展示信息发送到客户端,以使客户端对结果展示信息进行显示。
在任务运行调试结束后,测试后台可以根据目标调试结果生成结果展示信息,并将结果展示信息发送给客户端。客户端接收到结果展示信息之后,可以通过其显示界面显示该结果展示信息。
如果调试运行成功,客户端可以通过图表等方式展示出目标调试结果(此时,结果展示信息可以为图表信息)。如果调试运行失败,可以通过显示界面展示出调试失败的提示信息,还可以展示调试失败的位置信息以及失败原因的描述信息(此时,结果展示信息可以为试失败的提示信息、调试失败的位置信息以及失败原因的描述信息等)。
例如,若调试运行成功,测试后台可以通过指定的对应路径,找到对应的结果文件,通过拉取结果文件后展示在客户端页面上方便用户直观查看。若调试运行失败,可以将失败指示信息返回给客户端,并在客户端的展示界面上显示调试失败的位置信息以及失败原因的描述信息。
例如,插入语句为:INSERT INTO kafka_sink(name,age)SELECT name,age FROMkafka_source,该插入语句是将kafka的source表中的age和name信息插入到kafka的sink表中,该插入语句运行完成之后所得到的调试结果可以通过页表的形式展示在客户端上,如图3所示。
通过本实施例,将调试结果直接在客户端上进行展现,无需用户手动查找对应的结果文件,增强了调试运行的结果展示的直观性,提高了用户操作的便捷性。
下面结合可选示例对本申请实施例中的实时任务的调试方法进行解释说明。该实时任务的调试方法可以是基于FlinkSQL所进行实时任务调试,数据源表即为source表,目标表为sink表,第一插入语句和第二插入语句均为DML语句,例如,insert into语句。
本可选示例中提供的一种提高实时任务调试便捷性的方案,无需用户修改实时任务的任务代码即可直接使用模拟数据进行实时任务调试。如图4所示,本可选示例中的实时任务的调试方法的流程可以包括以下步骤:
步骤S402,开发SQL实时任务。
用户根据实际业务、以及原生的Flink SQL语言逻辑编写开发对应的SQL代码。
步骤S404,触发调试,上传对应的数据源文件,使用上传的数据源文件中的调试数据进行任务调试。
用户在上线这个SQL任务之前,可以通过平台提供的调试功能,触发调试,例如,可以在客户端上点击调试按钮,触发实时任务的调试。测试后台可以使用数据源文件中的调试数据替换实时任务所使用的source表进行实时任务的调试。
测试后台对实时任务进行调试的流程可以如图5所示,该实时任务的调试流程可以包括以下步骤:
步骤S502,解析SQL,分解为DDL和DML。
平台后端可以解析用户SQL,将其转化成对应的逻辑语法树,并通过逻辑语法树的SQLKind区分DDL语句以及DML语句。
步骤S504,通过DML解析出对应的source和sink表。
测试后台通过解析DML语句也就是insert into语句的SQL的逻辑语法树,可以筛选出当前的DML语句的source table,还可以筛选出当前的DML语句的sink table。然后结合所有的DML语句,就可以得到一个source集合,还可以得到一个sink集合。
步骤S506,替换source的DDL语句,转换成对应数据源文件DDL。
在解析出所有的source表和sink表之后,测试后台会将原先的DDL的语句替换成CSV数据源的DDL的语句,即,将source的DDL语句,转换成对应数据源文件DDL。
步骤S508,替换sink的DDL语句,转化成对应数据源文件DDL。
同理,在解析出所有的source表和sink表之后,测试后台会将原先的DDL的语句替换成CSV数据源的DDL的语句,即,将sink的DDL语句,转化成对应的数据源文件DDL。
步骤S510,通过Table Api提交替换完的SQL。
在替换后,测试后台通过Flink的TableEnv转化生成对应的JobGraph后,通过Table Api提交替换完的SQL,还可以通过YarnApi提交到Yarn上进行调度,进而对实时任务进行调试。
步骤S406,调试结束,展示结果数据。
等任务运行数据后,测试后台可以通过指定的对应路径,找到对应的结果文件,通过拉取结果文件后展示在页面上直观查看。
通过本可选示例,无需用户预先定义数据源文件格式即可完成实时任务的调试,同时,也无需用户修改实时任务的源代码,可以实现在不修改实时任务的任务代码的情况下直接使用模拟数据进行实时任务调试的目的,降低了调试操作的复杂度、提高了任务调试的便捷性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述实时任务的调试方法的实时任务的调试装置。图6是根据本申请实施例的一种可选的实时任务的调试装置的结构框图,如图6所示,该装置可以包括:
第一解析单元602,用于响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表;
获取单元604,与第一解析单元602相连,用于获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试;
调试单元606,与获取单元604相连,用于使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果。
需要说明的是,该实施例中的第一解析单元602可以用于执行上述步骤S202,该实施例中的获取单元604可以用于执行上述步骤S204,该实施例中的调试单元606可以用于执行上述步骤S206。
通过上述模块,响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表;获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试;使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果,解决了相关技术中实时任务的调试方法存在需要预定义文件格式导致的调试操作的复杂度高、任务调试的便捷性差的问题,降低了调试操作的复杂度,提高了任务调试的便捷性。
在一个示例性实施例中,解析单元包括:
第一解析模块,用于对目标实时任务进行解析,得到与目标实时任务中的第一插入语句对应的第一抽象语法树,其中,第一插入语句用于将数据源表中的数据插入到目标表中;
第二解析模块,用于基于第一抽象语法树对第一插入语句进行解析,得到目标实时任务所使用的任务数据源表。
在一个示例性实施例中,调试指令是通过客户端触发的;获取单元包括:
发送模块,用于向客户端发送文件上传指令,其中,文件上传指令用于指示上传包含与任务数据源表对应的调试数据的数据源文件;
接收模块,用于接收客户端响应文件上传指令所返回的任务数据源文件。
在一个示例性实施例中,上述装置还包括:
第二解析单元,用于在使用目标调试数据对目标实时任务进行调试之前,对目标实时任务进行解析,得到目标实时任务所使用的第一目标表;
替换单元,用于将目标实时任务中的第一目标表替换为存储系统中的第二目标表,其中,第二目标表用于存储目标调试结果。
在一个示例性实施例中,第二解析单元包括:
第三解析模块,用于对目标实时任务进行解析,得到与目标实时任务中的第二插入语句对应的第二抽象语法树,其中,第二插入语句用于向目标表中插入数据;
第四解析模块,用于基于第二抽象语法树对第二插入语句进行解析,得到目标实时任务所使用的第一目标表。
在一个示例性实施例中,替换单元包括:
确定模块,用于确定目标实时任务中与第一目标表对应的目标创建语句,其中,目标创建语句用于创建第一目标表;
转换模块,用于将目标创建语句中的连接参数更改为目标连接参数,以在存储系统中创建第二目标表,其中,目标连接参数用于指示以目标文件格式在存储系统的目标存储路径中创建目标表。
在一个示例性实施例中,上述装置还包括:
生成单元,用于在使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果之后,根据目标调试结果生成结果展示信息,其中,结果展示信息用于展示目标调试结果;
发送单元,用于将结果展示信息发送到客户端,以使客户端对结果展示信息进行显示。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中上述任一项实时任务的调试方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表;
S2,获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试;
S3,使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请实施例的又一个方面,还提供了一种用于实施上述实时任务的调试方法的电子装置,该电子装置可以是服务器、终端、或者其组合。
图7是根据本申请实施例的一种可选的电子装置的结构框图,如图7所示,包括处理器702、通信接口704、存储器706和通信总线708,其中,处理器702、通信接口704和存储器706通过通信总线708完成相互间的通信,其中,
存储器706,用于存储计算机程序;
处理器706,用于执行存储器706上所存放的计算机程序时,实现如下步骤:
S1,响应于针对目标实时任务进行调度的调试指令,对目标实时任务进行解析,得到目标实时任务所使用的任务数据源表;
S2,获取与任务数据源表对应的任务数据源文件,其中,任务数据源文件包含与任务数据源表对应的目标调试数据,目标调试数据用于替换任务数据源表对目标实时任务进行调试;
S3,使用目标调试数据对目标实时任务进行调试,得到目标实时任务的目标调试结果。
可选地,在本实施例中,通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子装置与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器706中可以但不限于包括上述实时任务的调试装置中的第一解析单元602、获取单元604以及调试单元606。此外,还可以包括但不限于上述实时任务的调试装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图7所示的结构仅为示意,实施上述实时任务的调试方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种实时任务的调试方法,其特征在于,包括:
响应于针对目标实时任务进行调度的调试指令,对所述目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表;
获取与所述任务数据源表对应的任务数据源文件,其中,所述任务数据源文件包含与所述任务数据源表对应的目标调试数据,所述目标调试数据用于替换所述任务数据源表对所述目标实时任务进行调试;
使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表包括:
对所述目标实时任务进行解析,得到与所述目标实时任务中的第一插入语句对应的第一抽象语法树,其中,所述第一插入语句用于将数据源表中的数据插入到目标表中;
基于所述第一抽象语法树对所述第一插入语句进行解析,得到所述目标实时任务所使用的所述任务数据源表。
3.根据权利要求1所述的方法,其特征在于,所述调试指令是通过客户端触发的;所述获取与所述任务数据源表对应的任务数据源文件包括:
向所述客户端发送文件上传指令,其中,所述文件上传指令用于指示上传包含与所述任务数据源表对应的调试数据的数据源文件;
接收所述客户端响应所述文件上传指令所返回的所述任务数据源文件。
4.根据权利要求1所述的方法,其特征在于,在所述使用所述目标调试数据对所述目标实时任务进行调试之前,所述方法还包括:
对所述目标实时任务进行解析,得到所述目标实时任务所使用的第一目标表;
将所述目标实时任务中的所述第一目标表替换为存储系统中的第二目标表,其中,所述第二目标表用于存储所述目标调试结果。
5.根据权利要求4所述的方法,其特征在于,所述对所述目标实时任务进行解析,得到所述目标实时任务所使用的第一目标表包括:
对所述目标实时任务进行解析,得到与所述目标实时任务中的第二插入语句对应的第二抽象语法树,其中,所述第二插入语句用于向目标表中插入数据;
基于所述第二抽象语法树对所述第二插入语句进行解析,得到所述目标实时任务所使用的所述第一目标表。
6.根据权利要求4所述的方法,其特征在于,所述将所述目标实时任务中的所述第一目标表替换为存储系统中的第二目标表包括:
确定所述目标实时任务中与所述第一目标表对应的目标创建语句,其中,所述目标创建语句用于创建所述第一目标表;
将所述目标创建语句中的连接参数更改为目标连接参数,以在所述存储系统中创建所述第二目标表,其中,所述目标连接参数用于指示以目标文件格式在所述存储系统的目标存储路径中创建目标表。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果之后,所述方法还包括:
根据所述目标调试结果生成结果展示信息,其中,所述结果展示信息用于展示所述目标调试结果;
将所述结果展示信息发送到所述客户端,以使所述客户端对所述结果展示信息进行显示。
8.一种实时任务的处理装置,其特征在于,包括:
第一解析单元,用于响应于针对目标实时任务进行调度的调试指令,对所述目标实时任务进行解析,得到所述目标实时任务所使用的任务数据源表;
获取单元,用于获取与所述任务数据源表对应的任务数据源文件,其中,所述任务数据源文件包含与所述任务数据源表对应的目标调试数据,所述目标调试数据用于替换所述任务数据源表对所述目标实时任务进行调试;
调试单元,用于使用所述目标调试数据对所述目标实时任务进行调试,得到所述目标实时任务的目标调试结果。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至7中任一项所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833273.4A CN113504912B (zh) | 2021-07-22 | 2021-07-22 | 实时任务的处理方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833273.4A CN113504912B (zh) | 2021-07-22 | 2021-07-22 | 实时任务的处理方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113504912A true CN113504912A (zh) | 2021-10-15 |
CN113504912B CN113504912B (zh) | 2024-06-18 |
Family
ID=78013542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110833273.4A Active CN113504912B (zh) | 2021-07-22 | 2021-07-22 | 实时任务的处理方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113504912B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096513A (zh) * | 2019-04-10 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 一种数据查询、资金核对方法及装置 |
US20200019494A1 (en) * | 2017-02-28 | 2020-01-16 | Sparriw Co., Ltd | Method and apparatus for performing test by using test case |
CN110704479A (zh) * | 2019-09-12 | 2020-01-17 | 新华三大数据技术有限公司 | 任务处理方法、装置、电子设备及存储介质 |
CN110765010A (zh) * | 2019-10-10 | 2020-02-07 | 苏宁云计算有限公司 | 基于Flink的可视化开发在线调试方法及装置 |
CN111026779A (zh) * | 2019-12-19 | 2020-04-17 | 厦门安胜网络科技有限公司 | 一种基于Flink SQL的数据处理方法、装置、存储介质 |
CN112579610A (zh) * | 2020-12-23 | 2021-03-30 | 安徽航天信息有限公司 | 多数据源结构分析方法、系统、终端设备及存储介质 |
CN112835924A (zh) * | 2021-02-04 | 2021-05-25 | 北京高途云集教育科技有限公司 | 实时计算任务处理方法、装置、设备及存储介质 |
CN112925619A (zh) * | 2021-02-24 | 2021-06-08 | 深圳依时货拉拉科技有限公司 | 大数据实时计算方法及平台 |
CN112965711A (zh) * | 2021-03-04 | 2021-06-15 | 北京金山云网络技术有限公司 | 作业测试方法和装置、电子设备和存储介质 |
-
2021
- 2021-07-22 CN CN202110833273.4A patent/CN113504912B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200019494A1 (en) * | 2017-02-28 | 2020-01-16 | Sparriw Co., Ltd | Method and apparatus for performing test by using test case |
CN110096513A (zh) * | 2019-04-10 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 一种数据查询、资金核对方法及装置 |
CN110704479A (zh) * | 2019-09-12 | 2020-01-17 | 新华三大数据技术有限公司 | 任务处理方法、装置、电子设备及存储介质 |
CN110765010A (zh) * | 2019-10-10 | 2020-02-07 | 苏宁云计算有限公司 | 基于Flink的可视化开发在线调试方法及装置 |
CN111026779A (zh) * | 2019-12-19 | 2020-04-17 | 厦门安胜网络科技有限公司 | 一种基于Flink SQL的数据处理方法、装置、存储介质 |
CN112579610A (zh) * | 2020-12-23 | 2021-03-30 | 安徽航天信息有限公司 | 多数据源结构分析方法、系统、终端设备及存储介质 |
CN112835924A (zh) * | 2021-02-04 | 2021-05-25 | 北京高途云集教育科技有限公司 | 实时计算任务处理方法、装置、设备及存储介质 |
CN112925619A (zh) * | 2021-02-24 | 2021-06-08 | 深圳依时货拉拉科技有限公司 | 大数据实时计算方法及平台 |
CN112965711A (zh) * | 2021-03-04 | 2021-06-15 | 北京金山云网络技术有限公司 | 作业测试方法和装置、电子设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
ARDIMENTO, PASQUALE: "Reusing Bugged Source Code to Support Novice Programmers in Debugging Tasks", 《ACM TRANSACTIONS ON COMPUTING EDUCTION》, vol. 20, 8 June 2020 (2020-06-08) * |
王彦棡;王珏;曹荣强;: "人工智能计算与数据服务平台的研究与应用", 数据与计算发展前沿, no. 06, 15 December 2019 (2019-12-15) * |
王辉: "基于UVM的跟踪调试系统的验证研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 6, 15 June 2018 (2018-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN113504912B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319547B (zh) | 测试用例生成方法、装置和系统 | |
WO2020233369A1 (zh) | 基于模拟端口改进软件集成系统的方法及相关设备 | |
CN110188135B (zh) | 文件生成方法及设备 | |
US20140075242A1 (en) | Testing rest api applications | |
CN110737594B (zh) | 自动生成测试用例的数据库标准符合性测试方法及装置 | |
CN107632827B (zh) | 应用的安装包的生成方法及装置 | |
CN111241182A (zh) | 数据处理方法和装置、存储介质和电子装置 | |
CN111079047A (zh) | 一种面向web的页面构建系统 | |
CN110765010B (zh) | 基于Flink的可视化开发在线调试方法及装置 | |
CN106713011B (zh) | 一种获取测试数据的方法与系统 | |
US20210124752A1 (en) | System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface | |
CN107797805B (zh) | 一种代码封装方法、装置及计算机可读存储介质 | |
CN112558940A (zh) | 基于表格的网站页面开发方法、装置、设备及存储介质 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN113590593A (zh) | 数据表信息的生成方法和装置、存储介质及电子装置 | |
CN112965711A (zh) | 作业测试方法和装置、电子设备和存储介质 | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN111143228B (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN113504912B (zh) | 实时任务的处理方法和装置、存储介质及电子装置 | |
US10055516B1 (en) | Testing open mobile alliance server payload on an open mobile alliance client simulator | |
US10474443B2 (en) | Code lineage tool | |
CN114327416A (zh) | 应用于开发分支的接口同步方法、装置及电子设备 | |
CN112965767A (zh) | 作业的处理方法和装置、电子设备和存储介质 | |
CN113590100A (zh) | 前端接口处理方法、系统、电子设备及存储介质 | |
CN112860636A (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 |