CN117055967A - 数据处理方法、数据系统、电子设备及存储介质 - Google Patents
数据处理方法、数据系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117055967A CN117055967A CN202210489262.3A CN202210489262A CN117055967A CN 117055967 A CN117055967 A CN 117055967A CN 202210489262 A CN202210489262 A CN 202210489262A CN 117055967 A CN117055967 A CN 117055967A
- Authority
- CN
- China
- Prior art keywords
- job
- data
- data processing
- call
- parameters
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 65
- 230000008569 process Effects 0.000 claims abstract description 220
- 238000012545 processing Methods 0.000 claims abstract description 154
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000006870 function Effects 0.000 claims description 91
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 10
- 239000012634 fragment Substances 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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/44536—Selecting among different versions
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种数据处理方法、数据系统、电子设备及存储介质。该方法用于数据系统,数据系统包括数据处理单元、数据库单元和具有作业的工程。至少一个作业包括第一作业,第一作业为处于运行状态后可被调用的作业。该方法包括:响应于针对第一作业的第一运行请求,构建与第一作业匹配的第一运行环境并在第一运行环境中启动第一程序进程,并且生成第一程序进程对应的调用端口;响应于针对调用端口的调用请求,获取调用请求对应的数据,并利用第一程序进程对调用请求对应的数据执行第一作业对应的数据处理操作,并且返回第一作业对应的数据处理操作的结果。调用请求的发出方包括数据系统中不同于第一作业的作业、数据库单元、数据系统的外部中至少一者。
Description
技术领域
本公开的实施例涉及一种数据处理方法、数据系统、电子设备及存储介质。
背景技术
数据库是存放数据的仓库,其存储空间很大,可以存放百万条、千万条、甚至上亿条数据。数据库通常按照数据结构来组织、存储和管理数据,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。随着信息技术的发展,数据量呈现指数级增长,因此数据库的应用越来越广泛,在大数据、人工智能等领域发挥着重要作用。
发明内容
本公开至少一个实施例提供一种数据处理方法,用于数据系统,其中,所述数据系统包括数据处理单元、数据库单元和具有至少一个作业的工程,所述至少一个作业包括第一作业,所述第一作业为处于运行状态后可被调用的作业,所述数据处理单元被配置为运行所述至少一个作业,所述数据库单元被配置为执行数据库操作;所述数据处理方法包括:响应于针对所述第一作业的第一运行请求,构建与所述第一作业匹配的第一运行环境并在所述第一运行环境中启动第一程序进程,并且生成所述第一程序进程对应的调用端口;响应于针对所述调用端口的调用请求,获取所述调用请求对应的数据,并利用所述第一程序进程对所述调用请求对应的数据执行所述第一作业对应的数据处理操作,并且返回所述第一作业对应的数据处理操作的结果;其中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业、所述数据库单元、所述数据系统的外部中至少一者。
例如,在本公开一些实施例提供的数据处理方法中,所述调用请求的发出方包括所述数据库单元;所述调用请求对应的数据存储于所述数据系统的数据库中,或者,所述调用请求对应的数据在第三方存储系统中的存储地址存储于所述数据库中;所述调用端口被注册为所述数据库单元中的用户自定义函数,所述用户自定义函数在运行时调用所述调用端口。
例如,在本公开一些实施例提供的数据处理方法中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业;所述调用端口被注册为所述数据库单元中的用户自定义函数,所述用户自定义函数在被调用时调用所述调用端口;所述调用请求是通过响应于发出所述调用请求的作业对应的程序进程运行到调用代码片段、向所述数据库单元发起调用所述用户自定义函数的指令而发出的,所述调用代码片段为向所述数据库单元发起调用所述用户自定义函数的指令的代码片段。
例如,在本公开一些实施例提供的数据处理方法中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业;所述调用请求是发出所述调用请求的作业对应的程序进程发出的、针对所述调用端口的远程过程调用请求。
例如,在本公开一些实施例提供的数据处理方法中,所述至少一个作业中的每个作业对应于相应的作业声明文件,所述作业声明文件包括作业类型和作业运行参数,构建与所述第一作业匹配的第一运行环境并在所述第一运行环境中启动所述第一程序进程,并且生成所述第一程序进程对应的调用端口,包括:在所述第一运行请求所包含的运行过程参数和所述第一运行请求所指定的与所述第一作业对应的作业声明文件中的作业运行参数中选择用于构建所述第一运行环境的参数信息;基于所选择的参数信息构建所述第一运行环境并在所述第一运行环境中启动所述第一程序进程,并且生成所述第一程序进程对应的调用端口。
例如,在本公开一些实施例提供的数据处理方法中,所述作业运行参数包括所述作业的代码文件信息、工作环境信息、数据信息、运行参数、模型信息、代码片段信息中至少之一,所述运行过程参数具有空状态和非空状态,所述运行过程参数在所述非空状态下包括所述第一运行请求对应的代码文件信息、工作环境信息、数据信息、运行参数、模型信息、代码片段信息中至少之一;在所述第一运行请求所包含的运行过程参数和所述第一运行请求所指定的与所述第一作业对应的作业声明文件中的作业运行参数中选择用于构建所述第一运行环境的参数信息,包括:响应于同一类别的参数既存在于所述运行过程参数中又存在于所述作业声明文件的所述作业运行参数中,选择所述运行过程参数中对应的参数作为需要使用的参数信息;响应于同一类别的参数存在于所述作业声明文件的所述作业运行参数中而不存在于所述运行过程参数中,选择所述作业声明文件的所述作业运行参数中对应的参数作为需要使用的参数信息。
例如,本公开一些实施例提供的数据处理方法还包括:响应于针对所述调用端口的所述调用请求,构建至少一个第二运行环境并在每个第二运行环境中启动第二程序进程,并利用所述第二程序进程对所述调用请求对应的数据执行所述第一作业对应的数据处理操作。
例如,在本公开一些实施例提供的数据处理方法中,构建所述至少一个第二运行环境并在每个第二运行环境中启动所述第二程序进程,包括:根据所述调用请求的数量和/或所述第一程序进程的计算资源占用量确定预设进程数量;根据所述预设进程数量构建所述第二运行环境并在每个第二运行环境中启动所述第二程序进程,其中,所述第二运行环境的数量等于所述预设进程数量,所述第二程序进程的数量等于所述预设进程数量。
例如,本公开一些实施例提供的数据处理方法还包括:根据所述第一程序进程和所述第二程序进程的负载状态将针对所述调用端口的未来调用请求分配给所述至少一个第二程序进程中的至少之一,以由分配的第二程序进程执行所述未来调用请求对应的数据处理操作。
例如,在本公开一些实施例提供的数据处理方法中,所述第一作业包括第一类型作业、第二类型作业和第三类型作业中至少之一,所述第一类型作业用于进行模型推理,所述第一类型作业对应的作业声明文件中的作业运行参数包含所述模型信息;所述第二类型作业用于进行函数计算,所述第二类型作业对应的作业声明文件中的作业运行参数包含所述代码片段信息;所述第三类型作业用于进行应用处理,所述第三类型作业对应的作业声明文件中的作业运行参数包含所述代码文件信息和所述工作环境信息。
例如,在本公开一些实施例提供的数据处理方法中,所述至少一个作业还包括不可被调用的第二作业,所述数据处理方法还包括:响应于针对所述第二作业的第二运行请求,构建与所述第二作业匹配的第三运行环境并在所述第三运行环境中启动第三程序进程,并且利用所述第三程序进程对所述第二运行请求对应的数据执行所述第二作业对应的数据处理操作。
例如,在本公开一些实施例提供的数据处理方法中,所述第一作业和/或所述第二作业对应的数据处理操作中所需的数据中至少部分数据存储于所述数据系统的数据库中;或者,所述第一作业和/或所述第二作业对应的数据处理操作中所需的数据中至少部分数据在第三方存储系统中的存储地址存储于所述数据系统的数据库中;所述第一作业和/或所述第二作业对应的数据处理操作包括以下至少之一:响应于对应的程序进程运行到用于调用所述数据库单元进行数据查询的代码片段,调用所述数据库单元进行数据查询,并从所述数据库单元获取查询结果,其中,所述数据查询包括精确查询和/或近似查询;响应于对应的程序进程运行到用于调用所述数据库单元进行用户自定义函数调用的代码片段,调用所述数据库单元进行所述用户自定义函数的调用;响应于对应的程序进程运行到用于调用所述数据库单元进行数据库表格更新的代码片段,调用所述数据库单元将待更新数据更新至所述数据库表格。
例如,本公开一些实施例提供的数据处理方法还包括:在所述数据系统中创建所述工程;将所述工程与对应的代码仓库地址相关联,其中,所述工程包括的作业对应的作业声明文件、代码文件、环境镜像中至少之一存储在所述代码仓库地址所指示的存储空间,所述至少一个作业中的每个作业对应于相应的作业声明文件,所述作业声明文件包括作业类型和作业运行参数;根据所述代码仓库地址获取所述工程包括的作业对应的作业声明文件、代码文件、环境镜像中至少之一。
例如,本公开一些实施例提供的数据处理方法还包括:展示所述工程的版本列表,以供用户选择所需版本的工程中一个或多个作业所对应的作业声明文件并提交运行,从而生成与所选择的作业声明文件对应的作业的运行请求。
本公开至少一个实施例还提供一种数据系统,包括数据处理单元、数据库单元和具有至少一个作业的工程,其中,所述至少一个作业包括第一作业,所述第一作业为处于运行状态后可被调用的作业,所述数据处理单元被配置为运行所述至少一个作业,所述数据库单元被配置为执行数据库操作;所述数据处理单元还被配置为:响应于针对所述第一作业的第一运行请求,构建与所述第一作业匹配的第一运行环境并在所述第一运行环境中启动第一程序进程,并且生成所述第一程序进程对应的调用端口;响应于针对所述调用端口的调用请求,获取所述调用请求对应的数据,并利用所述第一程序进程对所述调用请求对应的数据执行所述第一作业对应的数据处理操作,并且返回所述第一作业对应的数据处理操作的结果;其中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业、所述数据库单元、所述数据系统的外部中至少一者。
本公开至少一个实施例还提供一种电子设备,包括本公开任一实施例提供的数据系统。
本公开至少一个实施例还提供一种电子设备,包括:处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现本公开任一实施例提供的数据处理方法。
本公开至少一个实施例还提供一种存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的数据处理方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开一些实施例提供的一种数据系统的架构示意图;
图2为本公开一些实施例提供的一种数据处理方法的流程示意图;
图3为图2中步骤S110的示意性流程图;
图4为图3中步骤S111的示意性流程图;
图5为本公开一些实施例提供的另一种数据处理方法的流程示意图;
图6为本公开一些实施例提供的另一种数据处理方法的流程示意图;
图7为本公开一些实施例提供的一种数据系统的示意框图;
图8为本公开一些实施例提供的一种电子设备的示意框图;
图9为本公开一些实施例提供的另一种电子设备的示意框图;
图10为本公开一些实施例提供的另一种电子设备的示意框图;
图11为本公开一些实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
随着人工智能(Artificial Intelligence,AI)技术的发展,AI技术在越来越多的业务场景中应用。AI技术通常需要使用大量数据,也可能生成大量数据,这对数据的存储和管理提出了较高要求。因此,可以将数据库与AI技术相结合,利用数据库存储和管理AI技术所使用的数据。
然而,数据库单元和数据处理单元各自的功能较为独立,彼此之间缺乏有效的交互途径。因此,如何使开发人员开发的模型(例如AI模型)、函数等在各种数据及各种数据处理任务中便捷地进行测试和使用,成为亟待解决的问题。
本公开至少一个实施例提供一种数据处理方法、数据系统、电子设备及存储介质。该数据处理方法可以在数据系统中运行处于运行状态后可被调用的第一作业并生成调用端口,从而供其他作业、数据系统的数据库单元或外部调用,如此,可让开发人员开发的模型、函数或其他数据处理功能在任何数据上、任何数据处理任务中进行测试和使用而无需变更代码,从而提高了使用便捷性,提高了处理效率。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
本公开至少一个实施例提供一种数据处理方法,用于数据系统。该数据系统包括数据处理单元、数据库单元和具有至少一个作业的工程,至少一个作业包括第一作业,第一作业为处于运行状态后可被调用的作业,数据处理单元被配置为运行至少一个作业,数据库单元被配置为执行数据库操作。该数据处理方法包括:响应于针对第一作业的第一运行请求,构建与第一作业匹配的第一运行环境并在第一运行环境中启动第一程序进程,并且生成第一程序进程对应的调用端口;响应于针对调用端口的调用请求,获取调用请求对应的数据,并利用第一程序进程对调用请求对应的数据执行第一作业对应的数据处理操作,并且返回第一作业对应的数据处理操作的结果。调用请求的发出方包括数据系统中不同于第一作业的作业、数据库单元、数据系统的外部中至少一者。
图1为本公开一些实施例提供的一种数据系统的架构示意图。如图1所示,数据系统包括数据库单元和数据处理单元,由此可以将数据库功能和AI技术相结合。数据库单元用于执行数据库操作,例如可以采用结构化查询语言(Structured Query Language,SQL)来存取数据以及查询、更新和管理数据库。数据处理单元用于执行AI工程中的作业,从而实现AI任务,例如模型推理、函数计算、应用处理等。
图2为本公开一些实施例提供的一种数据处理方法的流程示意图。在一些实施例中,该数据处理方法用于数据系统,该数据系统包括数据处理单元和具有至少一个作业的工程。工程中的至少一个作业包括第一作业,第一作业为处于运行状态后可被调用的作业。数据处理单元被配置为运行至少一个作业。例如,该数据系统还可以包括数据库单元,数据库单元被配置为执行数据库操作,数据库单元能够进行分布式批量数据存储、管理、查询,支持非结构化数据的近似查询等。
可以理解的是,数据处理单元和数据库单元更多是逻辑上的划分,可以运行在同一台机器上,例如运行在同一台机器的不同容器中。
如图2所示,在一些实施例中,该数据处理方法包括如下操作。
步骤S110:响应于针对第一作业的第一运行请求,构建与第一作业匹配的第一运行环境并在第一运行环境中启动第一程序进程,并且生成第一程序进程对应的调用端口;
步骤S120:响应于针对调用端口的调用请求,获取调用请求对应的数据,并利用第一程序进程对调用请求对应的数据执行第一作业对应的数据处理操作,并且返回第一作业对应的数据处理操作的结果。
例如,上述步骤S110和S120可以由数据系统中的数据处理单元执行,数据处理单元能够进行分布式计算、弹性计算等,数据处理单元可以是实现AI任务的单元或其他适用的具有处理功能的单元。
例如,在步骤S110中,第一作业可以是工程中的任意一个作业,第一作业可以用于实现AI任务,例如模型推理、函数计算、应用处理等。当然,本公开的实施例不限于此,第一作业还可以实现其他任务如大数据处理任务等,不限于上述列举的具体任务,也不限于AI任务,这可以根据实际需求而定。第一运行请求例如用于触发运行第一作业,该第一运行请求由数据处理单元发出,例如根据用户的指令而发出。
当接收到针对第一作业的第一运行请求时,可以构建与之匹配的第一运行环境,并在第一运行环境中启动第一程序进程。例如,第一作业包括第一类型作业、第二类型作业和第三类型作业中至少之一,也即是,第一作业可以为上述三种类型的任意一种或多种。
例如,第一类型作业用于进行模型推理(例如AI模型推理),第一类型作业例如是模型服务作业(serve job)。例如,可以将训练好的模型定义/声明为模型服务作业,模型服务作业可以在被调用时利用训练好的模型对调用请求对应的数据进行模型推理并返回推理结果。可以理解的是,本文中所称的“一个作业”被调用或“一个端口”被调用,指作业或端口对应的服务被调用。
例如,第二类型作业用于进行函数计算,第二类型作业例如是函数作业(functionjob)。例如,函数作业在被调用时将调用请求对应的数据作为函数的输入并返回函数的输出。例如,函数作业可以实现一种或多种预设的函数功能,在被调用时将对应的数据作为函数输入,依据函数功能进行相应的数据处理并返回函数的输出结果。
例如,第三类型作业用于进行应用处理,第三类型作业例如是应用作业(application job)。应用作业在被调用时对调用请求对应的数据进行该作业对应的数据处理并返回数据处理结果。第三类型作业的调用端口可以是网页形式。
例如,作业的类型是在作业对应的作业声明文件中定义的。除了作业的类型,作业声明文件中还包括作业运行参数,作业运行参数用于确定运行作业使用的代码文件、环境镜像,并根据代码文件、环境镜像构建作业运行环境并在其中运行程序进程。例如,作业运行参数包括两类,也即,可修改的作业运行参数和不能修改的作业运行参数。例如,可修改的作业运行参数也称为作业配置项,作业声明文件中设置有作业配置项的默认值,作业配置项可在提交作业运行请求时修改。
例如,作业声明文件中具有可修改的作业运行参数的默认值,可以在运行请求的运行过程参数中重新设定相应的值。可修改的作业运行参数例如包括系统参数(例如CPU、内存)和程序参数(例如需要传给程序的参数)。不可修改的作业运行参数例如包括容器镜像的名称等。
如果提交作业运行请求时对某些作业配置项的值进行了修改,则根据该作业配置项在作业运行请求中指定的值和其他未被修改的作业配置项在作业声明文件中的默认值以及作业声明文件中不能修改的作业运行参数构建作业运行环境;如果提交作业运行请求时未对作业配置项的值进行修改,则根据作业声明文件中记录的作业配置项的默认值以及作业声明文件中不能修改的作业运行参数构建作业运行环境。作业配置项可以包括作为参数传给程序的程序相关参数和用于构建系统使用的系统相关参数。不同类型的作业的作业运行参数可以不同,其包含的作业配置项也可以不同。
例如,当第一作业为第一类型作业时,作业运行参数包括模型标识和/或模型地址,还可以包括模型框架,因此可以根据模型标识、模型地址和/或模型框架确定运行作业所需要的代码文件、运行环境,从而构建与之匹配的第一运行环境并启动相应程序进程。模型框架指示了模型的框架信息,例如模型可以采用Tensor Flow框架或其他类型的框架,模型标识、模型存储地址指示了模型对应的模型代码文件的存储地址。例如,可以从模型的存储地址中提取模型对应的模型文件,根据模型框架确定第一运行环境,从而构建运行模型文件的第一运行环境并启动相应程序进程。
例如,当第一作业为第二类型作业时,作业运行参数包括代码片段的存储位置,还可以包括代码编写语言,可以根据代码编写语言等确定运行作业所需要的代码文件、运行环境从而构建与之匹配的第一运行环境并启动相应程序进程。例如,作业声明文件包括实现函数作业的函数功能的代码片段信息(例如代码片段的存储位置),作业声明文件还可以记录有编写该代码片段信息所使用的代码编写语言,例如,代码编写语言可以包括C++、Java、Python等,可理解的是,作业声明文件中可以不记录代码编写语言,代码编写语言可以通过对代码片段信息进行解析得到或者根据记录的语言信息得到。例如,不同的代码编写语言对应有不同的函数添加代码文件,函数添加代码文件包含针对不同代码编写语言的一些通用的库文件、配置等。在确定了对应的函数添加代码文件后,将函数添加代码文件和代码片段信息拼接为需要运行的代码文件。
如此,用户只需要关心模型文件和函数部分代码片段,而不用编写完整代码,大大简化了用户操作。
例如,当第一作业为第三类型作业时,作业运行参数包括代码文件信息、环境镜像信息,可以根据作业运行参数确定所需要的运行环境从而构建与之匹配的第一运行环境。例如,代码文件信息包括代码文件的代码版本号或代码文件的存储地址,环境镜像信息包括环境镜像的环境镜像版本号或环境镜像的存储地址。可以根据代码文件信息,从代码仓库中或本地存储(提前从代码仓库下载了相应文件到本地存储)中提取相应版本的代码文件,或者提取代码文件的存储地址中存储的代码文件;根据工作环境信息,从代码仓库中提取相应版本的环境镜像,或者提取环境镜像的存储地址中存储的环境镜像,该环境镜像包括构建运行环境所需的信息。第三类型作业与第一、第二类型作业的主要区别在于第三类型作业中需要用户完整撰写代码,不能只提供部分代码片段;用户需要显式的指定环境镜像,而不是只指定模型框架、函数语言等。
例如,在构建第一运行环境并启动第一程序进程时,生成与第一程序进程对应的调用端口。该调用端口可以通过端口地址的方式呈现给被调用方,通过端口地址来实现调用。例如,该调用端口可以是超文本传输协议(Hyper Text Transfer Protocol,HTTP)的域名或端口,可以为应用程序编程接口(Application Programming Interface,API)或网页的形式。第一类型和第二类型作业的调用端口可以是API形式,第三类型的作业的调用端口可以为网页形式。
例如,在步骤S120中,调用请求用于触发调用上述调用端口。调用请求由数据系统中不同于第一作业的其他作业、数据库单元、数据系统的外部中至少一者发出,因此,调用请求的发出方包括数据系统中不同于第一作业的作业、数据库单元、数据系统的外部中至少一者。也即是,上述调用端口可以被数据库单元调用,也可以被数据系统中的其他作业调用,还可以被数据系统外部的其他单元或模块调用,本公开的实施例对此不作限制。当上述调用端口被数据库单元或数据系统中的其他作业调用时,属于内部调用;当上述调用端口被数据系统外部的其他单元或模块调用时,属于外部调用。在本公开的实施例中,调用端口可以被内部调用和/或外部调用,本公开的实施例对此不作限制。
例如,在调用请求的发出方为数据库单元的情形下,也即,在调用端口被数据库单元调用的情形下,调用请求对应的数据存储于数据系统的数据库中,或者,调用请求对应的数据在第三方存储系统中的存储地址存储于数据系统的数据库中。并且,为了实现调用,上述调用端口被注册为数据库单元中的用户自定义函数(User Defined Function,UDF),该用户自定义函数在运行时调用上述调用端口。例如,数据系统的数据库可使用SQL(结构化查询语言)的数据库,例如为关系型数据库。第三方存储系统可以是不同于该数据系统的其他存储系统,例如可以是用于存储非结构化数据的对象存储系统或文件系统等。通过存储地址可以访问存储在第三方存储系统中的数据。通过上述方式,在调用请求的发出方为数据库单元时,可以使得数据处理单元与数据库单元深度融合,从而扩展数据库单元的数据处理能力。
例如,在一些示例中,在调用请求的发出方为数据系统中不同于第一作业的其他作业的情形下,也即,在调用端口被不同于第一作业的其他作业调用的情形下,调用端口被注册为数据库单元中的用户自定义函数(UDF),用户自定义函数在被调用时调用该调用端口。调用请求是通过响应于发出该调用请求的作业对应的程序进程运行到调用代码片段、向数据库单元发起调用用户自定义函数的指令而发出的,调用代码片段为向数据库单元发起调用用户自定义函数的指令的代码片段。例如,在一些示例中,程序进程运行到调用代码片段时,会向数据库单元发起请求,以使数据库执行含用户自定义函数的SQL语句,数据库执行时对SQL语句进行解析,SQL语句中运行用户自定义函数的指令被解析成对模型服务作业(serve job)的调用。由此,可以通过调用数据库单元、进一步调用用户自定义函数,以实现调用该调用端口。通过上述方式,当调用请求的发出方为另一个作业时,可调用作业运行生成服务,可以无需额外的改动和配置就能直接调用,便于协同开发、分析、生产。
例如,在一些示例中,在调用请求的发出方为数据系统中不同于第一作业的其他作业的情形下,也即,在调用端口被不同于第一作业的其他作业调用的情形下,调用请求可以是发出该调用请求的作业对应的程序进程发出的、针对该调用端口的远程过程调用请求。由此,可以在其他作业中直接调用第一作业对应调用端口,从而实现直接调用。
当接收到调用请求时,获取调用请求对应的数据或数据存储地址,并利用第一程序进程对调用请求对应的数据执行第一作业对应的数据处理操作,并且返回第一作业对应的数据处理操作的结果。例如,该调用请求对应的数据是调用请求中包含的数据,可以通过调用端口传入,或者,调用请求传入数据的存储地址、从存储地址获取调用请求对应的数据;本公开的实施例对此不作限制。例如,当第一作业用于进行模型推理时,其对应的数据处理操作是模型推理操作;当第一作业用于进行函数计算时,其对应的数据处理操作是函数计算操作;当第一作业用于进行应用处理时,其对应的数据处理操作是应用处理操作。关于数据处理操作的具体方式,可以根据第一作业的类型和目的而定,本公开的实施例对此不作限定。
由此,通过上述方式,可以使第一程序进程处于监听状态,并向调用方提供调用端口。一旦调用端口被调用,则利用第一程序进程执行对应的数据处理操作,从而实现服务类型作业的功能。
图3示出了图2中步骤S110的示意性流程图。如图3所示,在一些示例中,步骤S110可以进一步包括如下操作。
步骤S111:在第一运行请求所包含的运行过程参数和第一运行请求所指定的与第一作业对应的作业声明文件中的作业运行参数中选择用于构建第一运行环境的参数信息;
步骤S112:基于所选择的参数信息构建第一运行环境并在第一运行环境中启动第一程序进程,并且生成第一程序进程对应的调用端口。
例如,工程中的每个作业对应于相应的作业声明文件,也即,每个作业都对应至少一个作业声明文件,作业通过作业声明文件来进行声明。作业声明文件是在编辑对应的作业时生成。例如,作业声明文件包括作业类型和作业运行参数。作业类型表示对应的作业属于哪一类型,例如,属于可调用的作业或者不可调用的作业,或者,属于前述的第一类型作业、第二类型作业、第三类型作业中的哪一类。作业运行参数包括该作业的代码文件信息、工作环境信息、数据信息、运行参数、模型信息、代码片段信息中至少之一。
例如,作业声明文件中还可以记录工程所包括的一个或多个作业之间的依赖关系,例如某一作业的输出作为另一作业的输入等。
例如,除了用于确定代码、环境的作业运行参数外,作业运行参数还可以包括计算资源相关的作业运行参数,例如运行作业时启动进程数的上限和下限,单个进程所使用的图形处理器(Graphic Processing Unit,GPU)的数量和/或中央处理器(CentralProcessing Unit,CPU)的数量等。例如,用于确定代码、环境的作业运行参数以及计算资源相关的作业运行参数可以全部为可修改的作业运行参数,也可以全部为不能修改的作业运行参数,还可以一部分为可修改的作业运行参数且另一部分为不能修改的作业运行参数,本公开的实施例对此不作限制。
需要说明的是,根据实际需要,作业声明文件可以包括任意组合的信息,或者还可以包括更多或其他的信息,本领域技术人员可以根据实际需要,在作业声明文件中声明相应的信息,本公开的实施例对此不作限制。
作业声明文件可以采用YAML语言格式编写,也即是,作业声明文件可以是YAML文件。YAML是一种可读性高、用来表达数据序列化的格式,可以简单表达清单、散列表、标量等数据形态。当然,本公开的实施例不限于此,作业声明文件也可以是采用其他语言和格式编写的文件。
例如,第一类型作业用于进行模型推理,第一类型作业对应的作业声明文件中的作业运行参数包含模型信息(如模型标识、模型地址、模型框架等)。第二类型作业用于进行函数计算,第二类型作业对应的作业声明文件中的作业运行参数包含代码片段信息(如代码片段存储地址、代码片段语言等)。第三类型作业用于进行应用处理,第三类型作业对应的作业声明文件中的作业运行参数包含代码文件信息和工作环境信息。当然,各个类型的作业对应的作业声明文件中的作业运行参数还可以包含其他参数和信息,不限于上文列举的参数和信息,本公开的实施例对此不作限制。
例如,在步骤S111中,在第一运行请求所包含的运行过程参数和第一运行请求所指定的与第一作业对应的作业声明文件中的作业运行参数中选择用于构建第一运行环境的参数信息。这里,作业运行参数包括可修改的作业运行参数和不能修改的作业运行参数,运行过程参数是指第一运行请求中携带的与可修改的作业运行参数对应的参数及其修改值。因此,所选择的参数信息中可能包含不能修改的作业运行参数,也可能包含可修改的作业运行参数的预设值(未进行修改的初始值),也可能包含可修改的作业运行参数的修改值(从运行过程参数中获取)。第一运行请求会指定相应的作业声明文件,从而使系统获知运行所对应的作业。
运行过程参数是第一运行请求所携带的参数,运行过程参数具有空状态和非空状态。运行过程参数在空状态下不包含任何有效的参数信息。运行过程参数在非空状态下包括第一运行请求对应的代码文件信息、工作环境信息、数据信息、运行参数、模型信息、代码片段信息中至少之一。
例如,当运行过程参数为非空状态时,同一类型的参数或信息可能既存在于运行过程参数中,又存在于作业声明文件的作业运行参数中;或者,同一类型的参数或信息只存在于运行过程参数中,而不存在于作业声明文件的作业运行参数中;或者,同一类型的参数或信息不存在于运行过程参数中,而只存在于作业声明文件的作业运行参数中。例如,运行过程参数中包含的参数和信息与作业运行参数中包含的参数和信息可以相同或不同。
如图4所示,上述步骤S111可以进一步包括如下操作。
步骤S1111:响应于同一类别的参数既存在于运行过程参数中又存在于作业声明文件的作业运行参数中,选择运行过程参数中对应的参数作为需要使用的参数信息;
步骤S1112:响应于同一类别的参数存在于作业声明文件的作业运行参数中而不存在于运行过程参数中,选择作业声明文件的作业运行参数中对应的参数作为需要使用的参数信息。
例如,作业声明文件的作业运行参数可以是程序开发人员提前设置的,第一运行请求所包含的运行过程参数可以是在针对第一作业提交运行时再次设置的。例如,第一运行请求所包含的运行过程参数的使用优先级高于作业声明文件的作业运行参数的使用优先级。
例如,在一些示例中,运行过程参数包括代码文件信息,作业声明文件的作业运行参数中包括代码文件信息,代码文件信息可以修改(在其他示例中也可以是不能修改的),运行过程参数中的代码文件信息是修改值(最新的值),作业运行参数的代码文件信息是未修改的初始值,因此,代码文件信息既存在于运行过程参数中,又存在于作业声明文件的作业运行参数中,这属于上文步骤S1111描述的“同一类别的参数既存在于运行过程参数中又存在于作业声明文件的作业运行参数中”的一个示例。在该情形中,选择运行过程参数中对应的参数作为需要使用的参数信息,也即是,选择运行过程参数中的代码文件信息的值(修改值,也是最新的值)作为需要使用的代码文件信息的值。
例如,在一些示例中,运行过程参数不包含模型信息,而作业声明文件的作业运行参数中包含模型信息,模型信息不能修改(在其他示例中也可以是可修改的),作业运行参数的模型信息是预先设置的,因此,模型信息不存在于运行过程参数中,而仅存在于作业声明文件的作业运行参数中,这属于上文步骤S1112描述的“同一类别的参数存在于作业声明文件的作业运行参数中而不存在于运行过程参数中”的一个示例。在该情形中,选择作业声明文件的作业运行参数中对应的参数作为需要使用的参数信息,也即是,选择作业运行参数中模型信息的值(预先设置的值)作为需要使用的模型信息的值。
因此,在步骤S1111中,当同一类别的参数既存在于运行过程参数中又存在于作业声明文件的作业运行参数中时,选择使用运行过程参数中对应的参数。在步骤S1112中,当同一类别的参数存在于作业声明文件的作业运行参数中而不存在于运行过程参数中时,选择使用作业声明文件的作业运行参数中对应的参数。例如,在一些示例中,假设某一个第一作业对应的代码文件信息既存在于运行过程参数中,又存在于作业运行参数中,则优先选择运行过程参数中包含的代码文件信息的值来使用。例如,在另一些示例中,假设某一个第一作业对应的代码文件信息不存在于运行过程参数中,而仅存在于作业运行参数中,则选择作业运行参数中包含的代码文件信息的值来使用。通过这种方式,可以重新配置作业配置项,不受作业声明文件的限制,从而提高了作业运行的灵活性。
可以理解的是,作业运行参数、与运行过程参数中的参数值可以不给出具体版本编号,只给出能够唯一确定版本的其他信息,例如指定为最新版本。
可以理解的是,当作业被运行后,本次运行的作业运行参数、运行过程参数等信息均会保存为本次运行对应的运行信息,便于重现本次运行。当作业运行参数、与运行过程参数中的参数值未指定明确的版本,而指定为例如最新版本时,会将运行时的最新版本记录在运行信息中。例如,运行时为2022年2月1日,当时的最新版本为第5版,之后又更新了两版,运行信息会记录运行时使用的为第5版。
例如,返回至图3,在步骤S112中,在选择好参数信息之后,基于所选择的参数信息构建第一运行环境,并在第一运行环境中启动第一程序进程,并且生成第一程序进程对应的调用端口。由此,使得第一程序进程处于监听状态,调用方可以通过调用该调用端口来使第一程序进程执行相应的数据处理操作(例如完成人工智能任务)。
图5为本公开一些实施例提供的另一种数据处理方法的流程示意图。如图5所示,在一些实施例中,该数据处理方法还包括如下操作。
步骤S130:响应于针对调用端口的调用请求,构建至少一个第二运行环境并在每个第二运行环境中启动第二程序进程,并利用第二程序进程对调用请求对应的数据执行第一作业对应的数据处理操作;
步骤S140:根据第一程序进程和第二程序进程的负载状态将针对调用端口的未来调用请求分配给至少一个第二程序进程中的至少之一,以由分配的第二程序进程执行未来调用请求对应的数据处理操作。
例如,在步骤S130中,当接收到调用请求时(也即调用端口被调用时),构建至少一个第二运行环境并在每个第二运行环境中启动第二程序进程,并利用第二程序进程对调用请求对应的数据执行第一作业对应的数据处理操作。也即是,除了利用第一运行环境中的第一程序进程执行第一作业对应的数据处理操作之外,还启动第二运行环境中的第二程序进程执行对应的数据处理操作,由此可以弹性调节程序进程的数量,提高处理效率和灵活性。
例如,步骤S130可以进一步包括如下操作:根据调用请求的数量(也即调用端口被调用的次数)和/或已启动的第一/第二程序进程的计算资源占用量确定预设进程数量;根据预设进程数量构建第二运行环境并在每个第二运行环境中启动第二程序进程。
例如,预设进程数量(例如用replica表示)为需要构建的第二运行环境的数量,由于每个第二运行环境中启动一个第二程序进程,因此第二程序进程的数量也等于预设进程数量。
例如,可以根据调用请求的数量(调用端口被调用的次数)来确定预设进程数量。若被调用的次数较多,则说明需要更多的程序进程来处理,因此可以将预设进程数量设置为较大数值;相反,若被调用的次数较少,可以将预设进程数量设置为较小数值。
例如,还可以根据第一/第二程序进程的计算资源占用量(例如CPU,GPU,内存占用量)确定预设进程数量。若第一程序进程的计算资源占用量较大,则说明第一作业对应的数据处理所需的算力较大,需要更多的程序进程来处理,因此可以将预设进程数量设置为较大数值;相反,若第一程序进程的计算资源占用量较小,可以将预设进程数量设置为较小数值。
可以理解的是,在作业运行参数中指定了预设进程数量的上限、下限的情况下,可在上限、下限范围内选择较大或较小数值。
例如,预设进程数量可动态调整,例如,每5分钟统计一次调用请求数量和/或已启动的第一/第二程序进程的计算资源占用量,如果调用请求多和/或计算资源占用量大,则增加预设进程数量,启动更多的第二程序进程;否则,减少预设进程数量,关闭已启动的、空闲的第二程序进程。
在本公开的实施例中,可以根据调用端口被调用的次数和/或第一程序进程的计算资源占用量或者其他适用的判断标准来确定预设进程的数量,本公开的实施例对此不作限制。通过上述方式,可以结合实际运行状态灵活确定第二程序进程的数量,实现弹性调节,从而既提高处理效率,又避免算力的浪费。
在确定了预设进程数量之后,则根据预设进程数量构建第二运行环境并在每个第二运行环境中启动第二程序进程。例如,第二运行环境与第一运行环境为相同运行环境,可以运行相同的程序进程,从而处理相同任务。
例如,在步骤S140中,在启动了数个第一/第二程序进程后,在接收到更多的调用请求(未来调用请求)时,由负载均衡器(例如调用端口对应有一负载均衡器)根据第一程序进程和第二程序进程的负载状态将针对调用端口的未来调用请求分配给第一程序进程和/或至少一个第二程序进程中的至少之一,以由分配的程序进程针对更多的调用请求所对应的数据执行第一作业对应的数据处理操作。由此,第一程序进程和第二程序进程共同执行第一作业对应的数据处理操作,从而可以在针对第一作业的调用请求多、第一作业需要较大算力的情形下提高并行处理效率和处理能力。
在本公开的实施例中,除了第一运行环境之外,在接收到调用请求时还构建更多的运行环境(也即至少一个第二运行环境)并启动相应的第二程序进程,接收到的调用请求越多,启动的第二程序进程越多,并且在调用请求处理过程中,将待处理的调用请求分配给空闲的程序进程进行处理,从而实现弹性处理机制,实现负载均衡。对于在第二程序进程启动后接收的调用请求,预先启动第二程序进程可以在需要使用进程时减少启动程序进程所花费的时间,提高运行效率。
例如,该数据系统的工程中的作业还包括不可被调用的第二作业,第二作业运行完成后结束,不能被调用。第二作业可以是工程中的任意一个作业,第二作业可以用于实现AI任务,例如模型训练任务、模型推理任务等,一个典型的作业为模型训练作业。当然,本公开的实施例不限于此,第二作业还可以实现其他任务,不限于上述列举的具体任务,也不限于AI任务,这可以根据实际需求而定。
例如,在一些实施例中,数据处理方法还可以包括步骤S150。
步骤S150:响应于针对第二作业的第二运行请求,构建与第二作业匹配的第三运行环境并在第三运行环境中启动第三程序进程,并且利用第三程序进程对第二运行请求对应的数据执行第二作业对应的数据处理操作。
第二运行请求例如用于触发运行第二作业,该第二运行请求由数据处理单元发出,例如根据用户的指令而发出。例如,第二运行请求对应的数据存储于数据系统的数据库中;或者,第二运行请求对应数据在第三方存储系统中的存储地址存储于数据系统的数据库中。
当接收到针对第二作业的第二运行请求时,可以根据第二作业对应的作业运行参数构建与之匹配的第三运行环境,并在第三运行环境中启动第三程序进程。第二作业对应的作业声明文件中包含的作业运行参数可以包括代码文件信息、环境镜像信息、数据信息等。对于模型训练作业这种类型的第二作业,作业运行参数还可以包括检查点、迭代次数等配置参数(程序相关参数)。其中,数据信息用于指定作业所要处理的数据,第二作业对应的数据通常来源于数据库,数据信息可包括数据位置和数据版本标识,例如表格table第1列在2022年1月1日时的数据。与第一作业类似,第二作业的作业声明文件的作业运行参数中也可包含可在提交作业运行请求时进行修改的作业运行参数,第二作业的作业声明文件的作业运行参数中也可包含不能修改的作业运行参数,可修改/不能修改的作业运行参数可包括程序相关参数和系统相关参数。
在构建第三运行环境之后,在第三运行环境中启动第三程序进程,并且利用第三程序进程对第二运行请求对应的数据(例如可以通过指定数据对应的作业运行参数的参数值来指定使用的数据)执行第二作业对应的数据处理操作,从而实现第二作业对应的功能。
例如,数据系统还包括数据库单元,数据库单元被配置为执行数据库操作。
第一作业和/或第二作业对应的数据处理操作中所需的数据中至少部分数据存储于数据系统的数据库中,在运行第一作业和/或第二作业时,从数据库中获取作业所需的至少部分数据;或者,第一作业和/或第二作业对应的数据处理操作中所需的数据中至少部分数据在第三方存储系统中的存储地址存储于数据系统的数据库中,在运行第一作业和/或第二作业时,从数据库中获取对应的存储地址并基于存储地址从第三方存储系统中获取作业所需的至少部分数据。
例如,在一些示例中,第一作业是将调用请求中包含的图像(进行特征提取后得到待比对特征向量)与数据库中存储的底库图像的特征向量进行比对,第一作业所需的部分数据是调用请求中包含的、通过调用端口传入的,部分数据是存储在数据库中的。
例如,在一些示例中,数据处理操作需要使用数据库中的数据或者数据库单元提供的功能。这里的数据处理操作指第一作业和/或第二作业对应的数据处理操作。以代码文件为python编写为例,当解析出python程序中出现SQL指令时,python调用DataBase SDK(预先安装在python运行环境中,也称为DB SDK),DB SDK(或称为DB client)向数据库发出SQL指令,从而执行相应的数据库操作。SDK可以是指软件开发工具包。第一作业和/或第二作业对应的数据处理操作可以包括以下的一种或多种。
例如,在一些示例中,数据处理操作可以具体为:响应于对应的程序进程运行到用于调用数据库单元进行数据查询的代码片段,调用数据库单元进行数据查询,并从数据库单元获取查询结果。也即是,与某一作业对应的程序进程在运行过程中,当运行到某一代码片段时(该代码片段表示需要调用数据库单元进行数据查询),会基于该代码片段的指令调用数据库单元进行数据查询,并从数据库单元获取查询结果。例如,上述数据查询包括标签精确查询和/或非结构化数据表示(例如包括向量)的近似查询。数据库可以为关系型数据库,存储结构化数据,结构化数据例如包括多个字段,其中一个字段为非结构化数据的向量表示(另一个字段可以为非结构化数据在第三方存储中的地址,从而可根据该地址从第三方存储中获取非结构化数据并进行处理)。精确查询可以从数据库中筛选出相应字段值与标签相同的数据。近似查询也称为模糊查询,可以从相应字段值(字段为向量)将与待查询向量满足相似度条件(例如大于相似度阈值,或相似度最大的前N个)的数据筛选出来。
例如,在另一些示例中,数据处理操作可以具体为:响应于对应的程序进程运行到用于调用数据库单元进行用户自定义函数调用的代码片段,调用数据库单元进行用户自定义函数的调用。也即是,与某一作业对应的程序进程在运行过程中,当运行到某一代码片段时(该代码片段表示需要调用数据库单元进行用户自定义函数的调用),会基于该代码片段的指令调用数据库单元进行用户自定义函数的调用,由此实现用户自定义函数的功能。
例如,在又一些示例中,数据处理操作可以具体为:响应于对应的程序进程运行到用于调用数据库单元进行数据库表格更新的代码片段,调用数据库单元将待更新数据更新至数据库表格。也即是,与某一作业对应的程序进程在运行过程中,当运行到某一代码片段时(该代码片段表示需要调用数据库单元进行数据库表格更新),会基于该代码片段的指令调用数据库单元将待更新数据更新至指定的数据库表格。
可以理解的是,上述查询操作、UDF调用操作及更新操作可以出现在不同SQL语句或同一SQL语句中,例如从表格table中查询出颜色标签为红色的数据,对其对应的非结构化数据(image列)调用UDF(对应于数据处理单元某一模型服务作业)进行特征提取,将特征提取所得结果写入table另一列vector,这一系列数据处理操作可包含在同一SQL中,例如为:UPDATE table SET vector=extract_embedding(image)WHERE label=’red’。
可以理解的是,上述需要使用数据库中的数据或者数据库单元提供的功能的数据处理操作通常出现在第二类型作业、第三类型作业和第二作业。
图6为本公开一些实施例提供的另一种数据处理方法的流程示意图。在一些实施例中,如图6所示,该数据处理方法还可以进一步包括如下操作。
步骤S160:在数据系统中创建工程;
步骤S170:将工程与对应的代码仓库地址相关联,其中,工程包括的作业对应的作业声明文件、代码文件、环境镜像中至少之一存储在代码仓库地址所指示的存储空间,至少一个作业中的每个作业对应于相应的作业声明文件,作业声明文件包括作业类型和作业运行参数;
步骤S180:根据代码仓库地址获取工程包括的作业对应的作业声明文件、代码文件、环境镜像中至少之一;
步骤S190:展示工程的版本列表,以供用户选择所需版本的工程中一个或多个作业所对应的作业声明文件并提交运行,从而生成与所选择的作业声明文件对应的作业的运行请求。
例如,在步骤S160中,用户可以在数据系统中创建工程(project),例如在数据系统提供的页面中新建工程。例如,数据系统可以通过客户端、浏览器页面等提供展示给用户的界面,以供用户输入信息、选择创建功能等。例如,一个工程可以包括一个或多个作业,这些作业可以是前述的第一作业和/或第二作业。
例如,在步骤S170中,将工程与对应的代码仓库地址相关联。代码仓库可以是Git(分布式版本控制系统)、SVN(Subversion)或其他类型具有版本控制、代码存储功能的版本控制系统。例如,工程中作业对应的作业声明文件、代码文件、环境镜像中至少之一存储在代码仓库地址所指示的存储空间,可以通过代码仓库地址获取。例如,环境镜像中存储有构建对应的运行环境所需的信息,例如,环境镜像中记录有运行过程所需的插件、库文件、环境变量等构建信息,以根据这些构建信息构建运行环境。例如,环境镜像可以是包含这些构建信息的文件形式。
例如,可以将代码、作业声明文件在代码仓库中管理,将环境镜像在环境镜像存储中管理。
例如,在步骤S180中,根据代码仓库地址获取作业对应的作业声明文件、代码文件、环境镜像中至少之一。例如,根据代码仓库地址可以访问相应的存储空间,从而从该存储空间读取所需要的作业声明文件、代码文件或环境镜像。例如,在一些示例中,可以每隔一定周期进行获取,从而展示给用户以供用户选择;在另一些示例中,可以在用户提交作业运行请求后获取;在又一些示例中,可以将周期性获取和根据用户提交作业运行请求而获取的方式进行组合,本公开的实施例对此不作限制。
例如,在步骤S190中,可以通过用户交互界面展示工程版本列表,以便于用户浏览各个版本的工程对应的作业声明文件并选择所需要的作业声明文件,用户在选择之后可以提交运行,从而数据系统会生成与所选择的作业声明文件对应的作业的运行请求。例如,当用户选择的作业是第一作业时,生成的运行请求是前述的第一运行请求;当用户选择的作业是第二作业时,生成的运行请求是前述的第二运行请求。相关说明可参考前文内容,此处不再赘述。例如,用户交互界面可以是支持YAML指令的客户端的界面或者浏览器页面等,本公开的实施例对此不作限制。
通过上述步骤S160-S190,可以使用户选择作业并提交运行,以生成对应的运行请求,从而触发构建运行环境、启动程序进程、生成调用端口、进行数据处理操作等后续操作,进而实现可被调用的作业和/或不可被调用的作业的运行。
下面结合示例对上述步骤S160-S190进行简要说明。
首先,用户在本地编辑工程(project)对应的YAML文件和代码,存在git上,得到git地址(git url)。该YAML文件即为作业声明文件。
在git上会对工程对应的YAML文件、代码进行管理,不同版本的YAML文件、代码对应不同的提交版本(commit)。如果YAML文件、代码被编辑,则会生成新的commit。不同的commit可形成节点树,表示不同版本间的衍生、合并关系。
例如,一个工程对应一个或多个AI任务。AI任务可以是包含数据预处理、模型训练、模型推理的完整AI任务,模型训练所使用的数据例如为非结构化数据,在这个AI任务中,数据预处理、模型训练、模型推理是不同的作业(job);当然,AI任务也可以是只包含模型训练或模型推理的作业。工程可以采用YAML形式进行声明,一个工程可对应一个或多个YAML文件。一个工程中可包括由多个作业组成的工作流(workflow),YAML文件中声明各个作业的环境镜像地址、所用数据地址等,YAML文件中还可声明各个作业之间的依赖关系,例如某一作业job1的输出作为另一作业job2的输入。
YAML文件中定义的作业分为几类,其中包含处于运行状态后可被调用的作业和不可被调用的作业。可被调用的作业例如为前述的第一作业,运行后成为一个服务,该作业在被提交运行后会生成一个http域名/端口供调用,当该域名/端口被调用时通过程序进程进行相应的数据处理操作。不可被调用的作业例如为前述的第二作业,该作业不能被调用,对于一个不可被调用的作业,该作业在被提交后开始运行,在运行完成时结束。
例如,在一些示例中,一个git包(git repo)包含了代码和YAML文件,YAML文件中指定了环境镜像地址、数据、以及各个作业的执行顺序。在一些示例中,假设声明了一个工程包含多个作业,分别为resize(训练用样本图像的预处理)、train_model(用样本图像进行模型训练)、tune_model(进行模型细调)、extraction_service(用训练好的特征提取模型进行模型服务)。Resize和extraction_service属于处于运行状态后可被调用的作业,在SQL中注册成了用户自定义函数。train_model中的model是模型名称,属于训练作业(trainjob),是不可被调用的作业。tune_model属于不可被调用的作业。
然后,用户在浏览器网页中的工程页面(project TAB)下创建工程,并关联git中的地址(url)。git中与全部工程相关的YAML文件、代码会定时(例如5min一次)同步至网络服务器(web server),以供网络服务器将YAML文件、代码信息展示给用户查看。例如,可以将该工程的所有commit展示给用户,以供用户选择运行(run)哪个commit。
接着,用户运行工程或工程中的一个或多个作业。
运行命令可以通过浏览器网页中的页面发出,也可以在用于提交YAML指令的客户端发出。例如,在运行命令通过浏览器网页中的页面发出的情形,当一个工程被创建后,即可在作业运行中展示,在该页面中,从各commit的工程对应的作业声明文件中解析出对应的作业并对应有“运行”按钮,当用户点击“运行”按钮时发出相应的运行命令。例如,可以在发出运行命令时对YAML文件中的作业运行参数进行修改(也即是,使前述的第一运行请求包含运行过程参数)。如果不修改,则使用YAML文件中作业运行参数中默认值构建运行环境。
用户提交运行一个作业的命令后,数据处理单元(例如AI处理单元)会将该运行指令对应的作业所对应的YAML文件和代码从git上同步至网络服务器,并将环境镜像同步至网络服务器,存储在例如对象存储设备(object store),基于YAML文件和代码、环境镜像构建运行环境并启动程序进程。在作业的运行过程中产生的结果也会存储在对象存储设备中。
用户提交运行一个作业的命令后,这个作业会显示在浏览器网页的任务页面(task TAB)。该页面中会显示历史运行过的各个作业的状态。例如,有些作业已完成,有些作业正在进行,有些作业正在被创建(通常是创建-进行-完成)。此外,用户提交运行一个作业的命令后,会生成一个目标运行标识号(runid),目标运行标识号为作业在执行该次运行时的身份识别码,目标运行标识号可以在该作业被运行时自动生成。数据处理单元会把目标运行标识号对应的运行信息存储在数据库或存储设备中,例如存储在分布式数据库(例如FoundationDB)中,运行信息中例如包括本次运行使用的作业声明文件、本次运行使用的是在运行请求中修改的作业运行参数的值。
对于一个不可被调用的作业(例如前述的第二作业),作业运行完成即结束(例如在客户端中提交作业,作业开始运行,运行完成后结束)。对于一个处于运行状态后可被调用的作业,该作业被运行后,会产生http域名/端口,该域名/端口一直处于监听状态(处于监听状态时,只占用很少量资源),每次监听到自身被调用,则用程序进程进行对应的数据处理。
然后,将已经运行了的服务作业注册为用户自定义函数。
例如,可以由用户在浏览器网页的数据库页面或用于提交SQL指令的客户端查看已经有http域名/端口的作业,并从中选择需要的作业注册为用户自定义函数。例如,还可以由系统自动注册,也即是,系统将已经有http域名/端口的作业均注册为用户自定义函数,或者,系统将已经有http域名/端口的作业中满足预设条件的作业注册为用户自定义函数。
接着,调用用户自定义函数。
例如,数据库单元可以直接调用用户自定义函数,把数据传递给数据处理单元,利用数据处理单元的分布式计算能力进行数据的分析处理等,再把处理完的数据写回数据库单元。用户自定义函数的调用包括直接的SQL调用,也可以包括从数据处理单元发起的调用。
对于直接的SQL调用,用户通过浏览器网页的数据库页面或用于提交SQL指令的客户端运行SQL命令,直接通过数据库单元调用用户自定义函数。对于从数据处理单元发起的调用,具体可通过如下方式进行。执行一个作业时,该作业对应的python运行在集成了数据库软件开发工具包的环境。例如,在YAML文件中声明该作业时,可指定该作业对应的环境镜像包含数据库软件开发工具包的环境。当python遇到需要用数据库软件开发工具包解析的语句时(用户可在python中设定哪些场景需要用数据库软件开发工具包进行解析),python会通过数据库软件开发工具包创建SQL客户端发出SQL语句(例如从数据库中拉取数据到python进行后续处理)。
该数据系统中的数据处理单元所执行的工程或作业能够与数据库单元的功能进行更深入的融合,利用数据库单元完成海量数据的高效存储、管理、查询,提高数据处理单元执行工程或作业的处理效率,同时,也利用用户自定义函数使数据库单元使用数据处理单元提供的服务,扩展了对数据库中数据的处理能力。
需要说明的是,本公开的实施例中,数据处理方法不限于上文中描述的方式和步骤,还可以包括更多或更少的步骤,各个步骤的执行顺序不受限制,这可以根据实际需求而定,本公开的实施例对此不作限制。
本公开至少一个实施例还提供一种数据系统。该数据系统可以运行处于运行状态后可被调用的第一作业并生成调用端口,从而供其他作业、数据系统的数据库单元或外部调用,如此,可让开发人员开发的模型、函数或其他数据处理功能在任何数据上、任何数据处理任务中进行测试和使用而无需变更代码,从而提高了使用便捷性,提高了处理效率。
图7为本公开一些实施例提供的一种数据系统的示意框图。如图7所示,在一些实施例中,数据系统10包括数据处理单元11和工程12,工程12具有至少一个作业121。例如,作业121包括第一作业,第一作业为处于运行状态后可被调用的作业。数据系统10还可以包括数据库单元13,数据库单元13被配置为执行数据库操作。
例如,数据处理单元11被配置为运行至少一个作业121。数据处理单元11还被配置为:响应于针对第一作业的第一运行请求,构建与第一作业匹配的第一运行环境并在第一运行环境中启动第一程序进程,并且生成第一程序进程对应的调用端口;响应于针对调用端口的调用请求,获取调用请求对应的数据,并利用第一程序进程对调用请求对应的数据执行第一作业对应的数据处理操作,并且返回第一作业对应的数据处理操作的结果。调用请求的发出方包括数据系统中不同于第一作业的作业、数据库单元、数据系统的外部中至少一者。例如,数据处理单元11可以执行图2所示的数据处理方法中的步骤S110和S120,数据处理单元11例如用于实现AI任务。此外,数据系统10还可以包括其他适用的单元,本公开的实施例对此不作限制。
例如,数据系统10及各个单元可以为硬件、软件、固件以及它们的任意可行的组合。例如,数据系统10及各个单元可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于数据系统10及各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,数据系统10及各个单元与前述的数据处理方法的步骤对应,关于该数据系统10及各个单元的具体功能可以参考上文中数据处理方法的相关描述,此处不再赘述。图7所示的数据系统10的组件和结构只是示例性的,而非限制性的,根据需要,该数据系统10还可以包括其他组件和结构。
本公开至少一个实施例还提供一种电子设备。该电子设备可以在数据系统中运行处于运行状态后可被调用的第一作业并生成调用端口,从而供其他作业、数据系统的数据库单元或外部调用,如此,可让开发人员开发的模型、函数或其他数据处理功能在任何数据上、任何数据处理任务中进行测试和使用而无需变更代码,从而提高了使用便捷性,提高了处理效率。
图8为本公开一些实施例提供的一种电子设备的示意框图。如图8所示,在一些实施例中,电子设备20包括数据系统21,数据系统21例如为图7所示的数据系统10。例如,电子设备20可以是终端设备,也可以是服务器或其他类型的具有处理功能的设备,本公开的实施例对此不作限制。关于该电子设备20的相关说明可参考上文中关于数据系统10的描述,此处不再赘述。
本公开至少一个实施例还提供一种电子设备,该电子设备包括处理器和存储器,一个或多个计算机程序模块被存储在该存储器中并被配置为由该处理器执行,一个或多个计算机程序模块用于实现本公开任一实施例提供的数据处理方法。
图9为本公开一些实施例提供的另一种电子设备的示意框图。如图9所示,该电子设备30包括处理器31和存储器32。存储器32用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器31用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器31运行时可以执行上文所述的数据处理方法中的一个或多个步骤。存储器32和处理器31可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器31可以是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器31可以为通用处理器或专用处理器,可以控制电子设备30中的其它组件以执行期望的功能。
例如,存储器32可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器31可以运行一个或多个计算机程序模块,以实现电子设备30的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
图10为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备40例如适于用来实施本公开实施例提供的数据处理方法。电子设备40可以是终端设备、云平台或服务器等。需要注意的是,图10示出的电子设备40仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备40可以包括处理装置(例如中央处理器、图形处理器等)41,其可以根据存储在只读存储器(ROM)42中的程序或者从存储装置48加载到随机访问存储器(RAM)43中的程序而执行各种适当的动作和处理。在RAM 43中,还存储有电子设备40操作所需的各种程序和数据。处理装置41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
通常,以下装置可以连接至I/O接口45:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置46;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置47;包括例如磁带、硬盘等的存储装置48;以及通信装置49。通信装置49可以允许电子设备40与其他电子设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备40,但应理解的是,并不要求实施或具备所有示出的装置,电子设备40可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,图2所示的数据处理方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述数据处理方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置49从网络上被下载和安装,或者从存储装置48安装,或者从ROM 42安装。在该计算机程序被处理装置41执行时,可以实现本公开实施例提供的数据处理方法中限定的功能。
需要说明的是,本公开的实施例中,电子设备30/40的具体功能和技术效果可以参考上文中关于数据处理方法的描述,此处不再赘述。
本公开至少一个实施例还提供一种存储介质,存储有非暂时性计算机可读指令,当该非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的数据处理方法。利用该存储介质,可以在数据系统中运行处于运行状态后可被调用的第一作业并生成调用端口,从而供其他作业、数据系统的数据库单元或外部调用,如此,可让开发人员开发的模型、函数或其他数据处理功能在任何数据上、任何数据处理任务中进行测试和使用而无需变更代码,从而提高了使用便捷性,提高了处理效率。
图11为本公开一些实施例提供的一种存储介质的示意图。如图11所示,存储介质50存储有非暂时性计算机可读指令51。例如,当非暂时性计算机可读指令51由计算机执行时可以执行根据上文所述的数据处理方法中的一个或多个步骤。
例如,该存储介质50可以应用于上述电子设备中。例如,存储介质50可以为图9所示的电子设备30中的存储器32。例如,关于存储介质50的相关说明可以参考图9所示的电子设备30中的存储器32的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种数据处理方法,用于数据系统,其中,所述数据系统包括数据处理单元、数据库单元和具有至少一个作业的工程,所述至少一个作业包括第一作业,所述第一作业为处于运行状态后可被调用的作业,所述数据处理单元被配置为运行所述至少一个作业,所述数据库单元被配置为执行数据库操作;
所述数据处理方法包括:
响应于针对所述第一作业的第一运行请求,构建与所述第一作业匹配的第一运行环境并在所述第一运行环境中启动第一程序进程,并且生成所述第一程序进程对应的调用端口;
响应于针对所述调用端口的调用请求,获取所述调用请求对应的数据,并利用所述第一程序进程对所述调用请求对应的数据执行所述第一作业对应的数据处理操作,并且返回所述第一作业对应的数据处理操作的结果;
其中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业、所述数据库单元、所述数据系统的外部中至少一者。
2.根据权利要求1所述的数据处理方法,其中,所述调用请求的发出方包括所述数据库单元;
所述调用请求对应的数据存储于所述数据系统的数据库中,或者,所述调用请求对应的数据在第三方存储系统中的存储地址存储于所述数据库中;
所述调用端口被注册为所述数据库单元中的用户自定义函数,所述用户自定义函数在运行时调用所述调用端口。
3.根据权利要求1所述的数据处理方法,其中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业;
所述调用端口被注册为所述数据库单元中的用户自定义函数,所述用户自定义函数在被调用时调用所述调用端口;
所述调用请求是通过响应于发出所述调用请求的作业对应的程序进程运行到调用代码片段、向所述数据库单元发起调用所述用户自定义函数的指令而发出的,所述调用代码片段为向所述数据库单元发起调用所述用户自定义函数的指令的代码片段。
4.根据权利要求1所述的数据处理方法,其中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业;
所述调用请求是发出所述调用请求的作业对应的程序进程发出的、针对所述调用端口的远程过程调用请求。
5.根据权利要求1或2所述的数据处理方法,其中,所述至少一个作业中的每个作业对应于相应的作业声明文件,所述作业声明文件包括作业类型和作业运行参数,
构建与所述第一作业匹配的第一运行环境并在所述第一运行环境中启动所述第一程序进程,并且生成所述第一程序进程对应的调用端口,包括:
在所述第一运行请求所包含的运行过程参数和所述第一运行请求所指定的与所述第一作业对应的作业声明文件中的作业运行参数中选择用于构建所述第一运行环境的参数信息;
基于所选择的参数信息构建所述第一运行环境并在所述第一运行环境中启动所述第一程序进程,并且生成所述第一程序进程对应的调用端口。
6.根据权利要求5所述的数据处理方法,其中,所述作业运行参数包括所述作业的代码文件信息、工作环境信息、数据信息、运行参数、模型信息、代码片段信息中至少之一,
所述运行过程参数具有空状态和非空状态,所述运行过程参数在所述非空状态下包括所述第一运行请求对应的代码文件信息、工作环境信息、数据信息、运行参数、模型信息、代码片段信息中至少之一;
在所述第一运行请求所包含的运行过程参数和所述第一运行请求所指定的与所述第一作业对应的作业声明文件中的作业运行参数中选择用于构建所述第一运行环境的参数信息,包括:
响应于同一类别的参数既存在于所述运行过程参数中又存在于所述作业声明文件的所述作业运行参数中,选择所述运行过程参数中对应的参数作为需要使用的参数信息;
响应于同一类别的参数存在于所述作业声明文件的所述作业运行参数中而不存在于所述运行过程参数中,选择所述作业声明文件的所述作业运行参数中对应的参数作为需要使用的参数信息。
7.根据权利要求1所述的数据处理方法,还包括:
响应于针对所述调用端口的所述调用请求,构建至少一个第二运行环境并在每个第二运行环境中启动第二程序进程,并利用所述第二程序进程对所述调用请求对应的数据执行所述第一作业对应的数据处理操作。
8.根据权利要求7所述的数据处理方法,其中,构建所述至少一个第二运行环境并在每个第二运行环境中启动所述第二程序进程,包括:
根据所述调用请求的数量和/或所述第一程序进程的计算资源占用量确定预设进程数量;
根据所述预设进程数量构建所述第二运行环境并在每个第二运行环境中启动所述第二程序进程,其中,所述第二运行环境的数量等于所述预设进程数量,所述第二程序进程的数量等于所述预设进程数量。
9.根据权利要求8所述的数据处理方法,还包括:
根据所述第一程序进程和所述第二程序进程的负载状态将针对所述调用端口的未来调用请求分配给所述至少一个第二程序进程中的至少之一,以由分配的第二程序进程执行所述未来调用请求对应的数据处理操作。
10.根据权利要求6所述的数据处理方法,其中,所述第一作业包括第一类型作业、第二类型作业和第三类型作业中至少之一,
所述第一类型作业用于进行模型推理,所述第一类型作业对应的作业声明文件中的作业运行参数包含所述模型信息;
所述第二类型作业用于进行函数计算,所述第二类型作业对应的作业声明文件中的作业运行参数包含所述代码片段信息;
所述第三类型作业用于进行应用处理,所述第三类型作业对应的作业声明文件中的作业运行参数包含所述代码文件信息和所述工作环境信息。
11.根据权利要求1所述的数据处理方法,其中,所述至少一个作业还包括不可被调用的第二作业,
所述数据处理方法还包括:
响应于针对所述第二作业的第二运行请求,构建与所述第二作业匹配的第三运行环境并在所述第三运行环境中启动第三程序进程,并且利用所述第三程序进程对所述第二运行请求对应的数据执行所述第二作业对应的数据处理操作。
12.根据权利要求11所述的数据处理方法,其中,
所述第一作业和/或所述第二作业对应的数据处理操作中所需的数据中至少部分数据存储于所述数据系统的数据库中;或者,所述第一作业和/或所述第二作业对应的数据处理操作中所需的数据中至少部分数据在第三方存储系统中的存储地址存储于所述数据系统的数据库中;
所述第一作业和/或所述第二作业对应的数据处理操作包括以下至少之一:
响应于对应的程序进程运行到用于调用所述数据库单元进行数据查询的代码片段,调用所述数据库单元进行数据查询,并从所述数据库单元获取查询结果,其中,所述数据查询包括精确查询和/或近似查询;
响应于对应的程序进程运行到用于调用所述数据库单元进行用户自定义函数调用的代码片段,调用所述数据库单元进行所述用户自定义函数的调用;
响应于对应的程序进程运行到用于调用所述数据库单元进行数据库表格更新的代码片段,调用所述数据库单元将待更新数据更新至所述数据库表格。
13.根据权利要求1-4任一项所述的数据处理方法,还包括:
在所述数据系统中创建所述工程;
将所述工程与对应的代码仓库地址相关联,其中,所述工程包括的作业对应的作业声明文件、代码文件、环境镜像中至少之一存储在所述代码仓库地址所指示的存储空间,所述至少一个作业中的每个作业对应于相应的作业声明文件,所述作业声明文件包括作业类型和作业运行参数;
根据所述代码仓库地址获取所述工程包括的作业对应的作业声明文件、代码文件、环境镜像中至少之一。
14.根据权利要求13所述的数据处理方法,还包括:
展示所述工程的版本列表,以供用户选择所需版本的工程中一个或多个作业所对应的作业声明文件并提交运行,从而生成与所选择的作业声明文件对应的作业的运行请求。
15.一种数据系统,包括数据处理单元、数据库单元和具有至少一个作业的工程,其中,所述至少一个作业包括第一作业,所述第一作业为处于运行状态后可被调用的作业,所述数据处理单元被配置为运行所述至少一个作业,所述数据库单元被配置为执行数据库操作;
所述数据处理单元还被配置为:
响应于针对所述第一作业的第一运行请求,构建与所述第一作业匹配的第一运行环境并在所述第一运行环境中启动第一程序进程,并且生成所述第一程序进程对应的调用端口;
响应于针对所述调用端口的调用请求,获取所述调用请求对应的数据,并利用所述第一程序进程对所述调用请求对应的数据执行所述第一作业对应的数据处理操作,并且返回所述第一作业对应的数据处理操作的结果;
其中,所述调用请求的发出方包括所述数据系统中不同于所述第一作业的作业、所述数据库单元、所述数据系统的外部中至少一者。
16.一种电子设备,包括权利要求15所述的数据系统。
17.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现权利要求1-14任一项所述的数据处理方法。
18.一种存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现权利要求1-14任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210489262.3A CN117055967A (zh) | 2022-05-06 | 2022-05-06 | 数据处理方法、数据系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210489262.3A CN117055967A (zh) | 2022-05-06 | 2022-05-06 | 数据处理方法、数据系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117055967A true CN117055967A (zh) | 2023-11-14 |
Family
ID=88667920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210489262.3A Pending CN117055967A (zh) | 2022-05-06 | 2022-05-06 | 数据处理方法、数据系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117055967A (zh) |
-
2022
- 2022-05-06 CN CN202210489262.3A patent/CN117055967A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9934005B2 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
US9400700B2 (en) | Optimized system for analytics (graphs and sparse matrices) operations | |
US20160188391A1 (en) | Sophisticated run-time system for graph processing | |
US7543301B2 (en) | Shared queues in shared object space | |
Sharp | Microsoft Visual C# step by step | |
US10824968B2 (en) | Transformation of logical data object instances and updates to same between hierarchical node schemas | |
US20080016516A1 (en) | Systems and methods for using application services | |
US10572278B2 (en) | Smart controls for user interface design and implementation | |
US11468229B2 (en) | Describing changes in a workflow based on changes in structured documents containing workflow metadata | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
US11537392B2 (en) | Dynamic review of software updates after pull requests | |
JP2020119348A (ja) | 解析プログラム、解析方法および解析装置 | |
KR20060047998A (ko) | 문서에 문맥 정보를 삽입하는 방법 및 시스템 | |
CN112817657A (zh) | 一种应用程序启动项加载方法、装置、系统及存储介质 | |
CN115982491A (zh) | 页面更新方法及装置、电子设备和计算机可读存储介质 | |
US9141353B2 (en) | Dynamically building locale objects at run-time | |
US8234586B2 (en) | User interface framework and techniques | |
JP2024505236A (ja) | データ処理システム用のデータセットマルチプレクサ | |
US20240036829A1 (en) | Providing resolution suggestions in a program development tool | |
US20220284371A1 (en) | Method, device and medium for a business function page | |
US20050120352A1 (en) | Meta directory server providing users the ability to customize work-flows | |
CN115328458A (zh) | 一种业务应用开发方法及装置 | |
US11106526B1 (en) | Architecture-based root cause analysis | |
US11726818B1 (en) | System for executing tasks in different programming languages | |
CN117055967A (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 |