CN117539605B - 一种数据处理程序组装方法、装置、设备及存储介质 - Google Patents
一种数据处理程序组装方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117539605B CN117539605B CN202410027311.0A CN202410027311A CN117539605B CN 117539605 B CN117539605 B CN 117539605B CN 202410027311 A CN202410027311 A CN 202410027311A CN 117539605 B CN117539605 B CN 117539605B
- Authority
- CN
- China
- Prior art keywords
- job
- configuration
- data
- operator
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013075 data extraction Methods 0.000 claims description 58
- 238000013507 mapping Methods 0.000 claims description 37
- 238000012795 verification Methods 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 34
- 230000008569 process Effects 0.000 abstract description 18
- 238000011161 development Methods 0.000 abstract description 9
- 230000000694 effects Effects 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 10
- 238000013499 data model Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012216 screening Methods 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Abstract
本申请涉及一种数据处理程序组装方法、装置、设备及存储介质,应用在数据作业开发测试领域,其中方法包括:作业调度单元获取作业ID,启动与作业ID对应的作业程序;作业配置单元在获取到作业程序的启动指令时,确定与作业ID对应的作业配置信息,将作业配置信息封装为作业配置对象;作业调度单元将作业配置对象发送至作业运行单元;作业运行单元根据作业配置对象的内容,组装作业程序对应的数据处理程序。本申请具有的技术效果是:使整个数据处理链路的配置更为统一,减少了不同阶段配置的差异,提高了系统的一致性;缓解了现有工具手动填写配置信息的繁琐过程,提升了数据作业配置的效率。
Description
技术领域
本申请涉及数据作业开发测试的技术领域,尤其是涉及一种数据处理程序组装方法、装置、设备及存储介质。
背景技术
随着企业信息化、数字化应用的普及,不同部门和软硬件平台构建了独立封闭的信息系统,导致了“数据孤岛”问题,这使得不同部门之间难以共享与访问信息,妨碍了部门协同和企业资源共享。为解决这一问题,企业急需进行数据整合,打破“信息孤岛”,将来自不同系统、格式和性质的数据整合到一处,以实现全面的数据共享和支持。
在进行数据集成与计算的过程中,目前有多种组件或产品可供选择,常见的数据集成同步工具有,用于数据抽取、转换和数据加载的Kettle,用于大规模数据离线同步的DataX,用于数据传输的Sqoop以及用于实时捕获和处理数据库变更的Flink CDC等。
然而,不同的工具、组件因其不同特性与适用场景,往往针对的方向比较单一,例如,Kettle和DataX的数据采集不支持增量同步、断点续传与实时处理,Flink CDC对于只满足查询条件的场景无法支持,导致不同工具在特定方向上数据处理的局限性;如果使用这些工具,在创建数据处理作业时均需要在代码或界面中将配置信息、数据处理逻辑等信息填写一遍,若数据处理的作业较多,作业的配置与管理将较为麻烦,进而降低了数据作业配置的效率。
发明内容
为了提升数据作业配置的效率,本申请提供一种数据处理程序组装方法、装置、设备及存储介质。
第一方面,本申请提供一种数据处理程序组装方法,采用如下的技术方案:所述方法应用于数据处理程序组装系统,所述数据处理程序组装系统包括作业调度单元、作业配置单元和作业运行单元,所述方法包括:
所述作业调度单元获取作业ID,启动与所述作业ID对应的作业程序;
所述作业配置单元在获取到所述作业程序的启动指令时,确定与所述作业ID对应的作业配置信息,将所述作业配置信息封装为作业配置对象;
所述作业调度单元将所述作业配置对象发送至所述作业运行单元;
所述作业运行单元根据所述作业配置对象中封装的作业信息对象,生成与所述作业程序对应的执行环境信息,确定与所述作业程序对应的数据抽取对象,并确定所述数据抽取对象对应的数据抽取方式,确定与所述作业ID对应的算子信息,构建算子链,基于所述作业配置对象确定数据输出对象,将所述数据抽取对象、所述算子链和所述数据输出对象连通为完整的数据处理程序。
在一个具体的可实施方案中,所述作业调度单元将所述作业配置对象发送至所述作业运行单元包括:
所述作业调度单元对所述作业配置对象进行可行性验证,获取所述作业配置对象的验证结果;所述可行性验证包括对所述作业配置信息真实性的验证以及对所述作业程序运行情况的验证;
若所述验证结果满足预设的要求,则所述作业调度单元将所述作业配置对象发送至所述作业运行单元。
在一个具体的可实施方案中,所述根据所述作业配置对象中封装的作业信息对象,生成与所述作业程序对应的执行环境信息包括:
所述作业运行单元判断所述作业程序类型,所述作业程序类型包括作业和作业组,所述作业组包含若干作业成员;
若所述作业程序是作业组,则所述作业运行单元遍历所述作业配置对象中封装的作业信息对象,组装所述作业组中的每一个作业成员对应的作业信息,获取作业组信息模型;否则,所述作业运行单元根据所述作业配置对象中封装的作业信息对象,组装所述作业对应的作业信息,获取作业信息模型;
所述作业运行单元根据获取到的所述作业组信息模型或所述作业信息模型,生成与所述作业程序对应的执行环境信息,所述执行环境信息包括作业运行资源和作业失败重启策略。
在一个具体的可实施方案中,所述作业配置信息包括数据源配置模型、资源配置模型和数据源输入对象配置模型,所述确定与所述作业程序对应的数据抽取对象,并确定所述数据抽取对象对应的数据抽取方式包括:
所述作业运行单元根据所述作业ID,获取所述数据源配置模型中的数据源编码,并将所述数据源编码对应的数据确定为数据抽取对象;
所述作业运行单元根据所述数据源编码获取所述资源配置模型中的数据抽取方式,所述数据抽取方式包括数据源连接信息、数据抽取模式和数据抽取规则。
在一个具体的可实施方案中,所述数据抽取模式包括实时抽取和离线抽取。
在一个具体的可实施方案中,所述作业配置信息还包括转换算子配置模型和算子对象明细模型,所述确定与所述作业ID对应的算子信息,构建算子链包括:
所述作业运行单元在所述转换算子配置模型中,获取与所述作业ID对应的算子信息,基于所述算子信息组装作业程序算子;
根据所述算子对象明细模型和预设的作业程序算子间的依赖关系,构建所述组装好的作业程序算子对应的算子链。
在一个具体的可实施方案中,所述作业配置信息还包括数据输出结构映射模型,所述基于所述作业配置对象确定数据输出对象包括:
所述作业运行单元基于所述作业ID,确定所述数据输出结构映射模型中的输出目标;
基于算子链中数据流的字段和所述输出目标的字段,配置所述算子链中数据流与所述输出目标的映射关系;
将所述映射关系和所述输出目标确定为数据输出对象。
第二方面,本申请提供一种数据处理程序组装装置,采用如下技术方案:所述装置包括:
作业ID启动模块,用于所述作业调度单元获取作业ID,启动与所述作业ID对应的作业程序;
作业配置确定模块,用于所述作业配置单元在获取到所述作业程序的启动指令时,确定与所述作业ID对应的作业配置信息,将所述作业配置信息封装为作业配置对象;
作业配置发送模块,用于所述作业调度单元将所述作业配置对象发送至所述作业运行单元;
处理程序组装模块,用于所述作业运行单元根据所述作业配置对象的内容,组装所述作业程序对应的数据处理程序。
第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种数据处理程序组装方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种数据处理程序组装方法的计算机程序。
综上所述,本申请具有以下有益技术效果:
1、该方法通过对整个数据处理链路进行了抽象化,将数据采集、数据转换、数据输出等主要要素整合到一个数据处理程序中,使得整个数据处理链路的配置更为统一,减少了不同阶段配置的差异,提高了系统的一致性;
2、使用公共配置化模型提供了灵活的配置选项,使得不同单元之间可以通过配置模型进行交互,缓解了现有技术由于工具特性不同而导致的配置差异,这种灵活性使得系统更易于维护和调整,适应不同业务场景和需求的变化;
3、通过引入作业ID作为作业的唯一标识,使得系统能够根据特定的作业ID来启动对应的作业程序,根据作业ID确定与之对应的所有作业配置信息,缓解了现有工具手动填写配置信息的繁琐过程,提升了数据作业配置的效率,特别是在数据处理作业较多的情况下,这种优化能够显著降低配置和管理的复杂性。
附图说明
图1是本申请实施例中用于体现作业配置信息中各模型关系的示意图。
图2是本申请实施例中数据处理程序组装方法的流程图。
图3是本申请实施例中数据处理程序组装装置的结构框图。
图4是本申请实施例中用于体现计算机设备的示意图。
附图标记:301、作业ID启动模块;302、作业配置确定模块;303、作业配置发送模块;304、处理程序组装模块。
具体实施方式
以下结合附图1-4对本申请作进一步详细说明。
本申请实施例公开一种数据处理程序组装方法,该方法应用于数据处理程序组装系统,数据处理程序组装系统包括作业调度单元、作业配置单元和作业运行单元;作业(Job)是指对数据进行处理的一系列Transformation操作,作业通常由一个或多个数据流组成,每个数据流都由一个或多个数据源(Source)和一个或多个Sink组成,数据源和Sink之间通过Transformation操作进行连接;作业组(JobGroup)是作业的集合,用于管理和组织多个作业,作业组可以帮助用户更好地管理他们的作业,例如,可以在作业组中添加、删除作业,可以在作业组中查看作业的状态和日志,可以在作业组中暂停和恢复作业等,作业组可以设置全局的配置,这些配置可以被作业组中的所有作业共享;数据源是独立于系统,用于存储数据的地方,在使用数据计算引擎进行数据处理时,通常需要先从外部数据源中读取数据,然后将数据转换为数据计算引擎可以处理的流数据格式,随后才能进行数据处理和分析,这个数据源可以是数据库,如MySQL,SQL server,也可以是消息队列,如Kafka,亦或是文件、接口等等;Transformation是对数据流进行操作的过程,它可以将一个或多个数据流转换为新的数据流,Transformation中可包含多个转换步骤,如Map(映射)、Filter(过滤)、GroupBy(分组)等,对于计算引擎 Transformation 中的转换步骤也称为算子;Sink是数据计算引擎中的一个组件,用于将数据流中的数据写入到外部存储系统中,Sink可以分为三大类:基于文件的Sink、基于数据库的Sink和自定义的Sink。
一个作业会对应一个作业ID,与作业ID对应的作业配置信息以9个数据模型为基础构成;如图1所示,模型之间通过作业ID主键进行关联,这9个数据模型包括:(1)资源配置模型,用于对数据源进行统一管理,数据处理程序初始化时将根据资源编码主键获取对应的连接信息,如Mysql、Oracle、Doris、Kafka等;(2)作业组信息模型,作业组为一组作业的集合;(3)作业组成员信息模型,存储每个作业组下的作业成员列表,通过该模型可确定作业组所管控的作业成员;(4)作业信息模型,存储每个作业的运行环境信息;(5)数据源配置模型,描述作业的数据来源资源与目标库,如Mysql、Oracle、Kafka。此外该模型决定作业的数据采集模式与采集规则;当采集模式为实时采集时,基于日志进行采集,可指定数据采集点位;当采集模式为离线批量采集时,基于查询进行采集,可指定数据采集目标的数据时间范围、时间区间与采集作业执行时间;(6)数据源输入对象配置模型,描述从数据源获取的具体数据存储对象,如具体的表、topic等;(7)转换算子配置模型,配置数据获取后经何种算子处理、算子的配置以及处理顺序,当算子为输出算子时,存储数据输出资源名称及目标库;(8)算子对象明细模型,配置算子对象更具体的一些信息,如数据的输出目标以及数据流与输出目标的匹配规则;(9)数据输出结构映射模型,该模型为上层数据输出的进一步细化,可配置数据流中数据结构与输出目标之间的字段结构映射,实现更精细、灵活的数据输出控制。
如图2所示,该方法包括以下步骤:
S10,作业调度单元获取作业ID,启动与作业ID对应的作业程序。
具体来说,作业调度单元负责协调和管理作业的执行,它的主要任务是根据需求和调度策略来启动和管理各个作业的执行,作业调度单元通常通过一些机制来触发作业的执行,可以是基于时间的定期执行,也可以是基于事件的触发执行;作业ID是标识一个作业的唯一标识符;一旦作业调度单元获取到了要执行的作业ID,它会根据作业ID找到相应的作业配置信息和作业程序,然后,作业调度单元会启动与该作业ID对应的作业程序;作业程序包含了执行作业所需的所有逻辑和指令,它可以是一个脚本、可执行文件或者其他形式的程序。
S20,作业配置单元在获取到作业程序的启动指令时,确定与作业ID对应的作业配置信息,将作业配置信息封装为作业配置对象。
具体来说,作业配置单元根据获取到的作业ID,匹配系统中存储的作业配置信息,即作业ID对应的9个数据模型;作业配置单元将获取到的作业配置信息封装为一个作业配置对象,作业配置对象可以是一个数据结构或者一个类的实例,用于保存作业的所有配置参数和设置。
S30,作业调度单元将作业配置对象发送至作业运行单元。
具体来说,作业调度单元将作业配置单元封装好的作业配置对象发送给作业运行单元,可以通过系统内部的消息传递机制、API调用或其他通信手段来实现。
S40,作业运行单元根据作业配置对象的内容,组装作业程序对应的数据处理程序。
具体来说,作业运行单元首先从作业配置对象中解析配置信息,涉及到读取资源配置、运行环境配置、数据源配置、数据输出配置、算子配置等多个方面的信息。
通过数据处理程序组装方法,实现了对多种常见数据资源的支持,包括关系型数据库、非关系型数据库和消息队列;通过在数据源配置模型中管理所有数据源的连接认证信息,实现了数据源的统一管控,相比于其他采集工具如Kettle、Datax、Flink CDC等,这种方法无需手动配置连接信息,减少了在每个工具中重复进行这一步骤的工作,通过简化数据源的管理与维护,提高了系统的易用性和效率;数据连接信息不是分散在脚本或代码中,而是集中存储在数据模型中,这种集中式的管理方式提高了数据的安全性和可靠性,相比于将连接信息硬编码在脚本或代码中,这种方法降低了出错的可能性,减少了维护的复杂性,此外,通过将连接信息存储在数据模型中,也为系统的扩展性和配置灵活性提供了便利;通过作业组与作业成员信息模型的管理,实现了作业成员的动态增加与减少,使作业管理更为灵活,同时,支持同一作业的多数据源输入、同一数据源的多存储目标获取,以及数据输入与输出的灵活配置,提高了系统的可配置性和适用性;通过对Source和Sink的抽象封装,简化了数据处理程序的开发流程,开发人员只需关注核心的Transformation步骤,减轻了开发的工作负担,提高了开发效率。
在一个实施例中,为了系统能够全面了解作业执行的各个方面,作业调度单元将作业配置对象发送至作业运行单元的步骤可以被具体执行为:
作业调度单元将作业配置对象发送至作业运行单元之前,会对作业配置对象进行可行性验证,可行性验证包括对作业配置信息真实性的验证,包括检查数据源的连接信息是否正确,作业的配置是否符合系统的规范,以及其他关键配置项的合法性;对作业程序运行情况的验证,包括检查作业所需的资源是否可用,确保相关算子或转换步骤的配置正确,以及其他可能影响作业运行的因素;获取作业配置对象的验证结果,验证结果包括验证通过的信息、错误信息或警告信息,验证结果是对作业配置对象是否能够顺利运行的判断依据;作业调度单元会根据预设的要求,例如是否允许出现某些错误,是否需要特定权限等,来判断验证结果是否满足系统的要求;若验证结果满足预设的要求,则作业调度单元将作业配置对象发送至作业运行单元。
通过对作业配置对象进行真实性验证和作业程序运行情况验证,系统能够全面了解作业执行的各个方面,包括配置信息、资源需求和可能的执行问题,这有助于提前发现潜在的错误和异常,减少因配置错误导致的问题;验证结果的实时反馈能够迅速通知用户或系统管理员有关作业配置的问题,及时的反馈有助于快速定位和解决潜在的问题,减少故障排查时间;通过验证作业配置信息的真实性,特别是对数据源连接信息的检查,系统提高了对潜在安全风险的警惕性,确保数据源的连接是正确且合法的,有助于防止潜在的数据泄漏或滥用问题;预设的验证规则可根据系统的需求进行自定义,也可以根据具体的安全策略、运行环境等因素定制验证规则,提供了更大的灵活性,使系统能够适应不同的部署和运行场景;通过在作业执行前进行验证,系统能够降低由于配置错误、资源不足等原因导致的作业执行失败的风险,有助于提高整个数据处理系统的鲁棒性和稳定性。
在一个实施例中,为了提升数据作业配置的效率,作业运行单元根据作业配置对象的内容,组装作业程序对应的数据处理程序的步骤可以被具体执行为:
根据作业配置对象中封装的作业信息对象,生成与作业程序对应的执行环境信息,包括所需的资源、配置参数、环境变量等,执行环境信息的准确生成确保了作业程序在正确的上下文中执行;确定与作业程序对应的数据抽取对象,数据抽取对象为从数据源中抽取的目标数据,在作业中,数据抽取对象的任务是定义从数据源中抽取目标数据的逻辑和规则,以确保所需的目标数据能够被有效地提取和传递给作业的处理流程;确定数据抽取对象对应的数据抽取方式,数据抽取方式有实时抽取和离线抽取两种,实时抽取是监听数据源数据变更,实时抽取数据源产生的数据;离线抽取是根据配置的抽取规则与策略,定时、定期抽取数据源中符合条件的数据;确定与作业ID对应的算子信息,算子是作业执行过程中的处理单元,负责对数据进行转换、过滤、分组等操作,并构建算子链,算子链是一系列算子按照预定顺序连接而成的数据处理流程,算子链的构建确保了数据的流畅处理,每个算子按照配置依次执行;基于作业配置对象确定数据输出对象,数据输出对象包括数据库、文件或消息队列等;将数据抽取对象、算子链和数据输出对象连通为完整的数据处理程序,包括确保数据从数据源正确抽取,经过算子链的处理,最终按照配置输出到目标。
通过作业配置对象,系统实现了对作业执行环境、数据抽取逻辑、数据抽取方式、算子链配置、数据输出等方面的高度可配置性,使得用户能够根据具体需求轻松地进行配置,而不需要深入修改代码或脚本;生成与作业程序对应的执行环境信息时,确保所需资源的准确获取,包括对计算资源、存储资源等的智能管理,系统能够灵活利用可用资源,提高了系统的资源利用效率;通过数据抽取对象、算子链和数据输出对象的配置,系统能够适应不同的数据处理需求,实时抽取和离线抽取方式的选择提供了更大的灵活性,而算子链的配置则允许用户根据具体的数据处理流程需求进行定制,极大的提升了系统的灵活性;通过确保生成的执行环境信息的准确性,以及对数据抽取对象、算子链和数据输出对象的有效连接,系统保证了整个数据处理程序的流畅运行,有助于减少配置错误或不完整导致的数据处理失败情况,提高了系统的鲁棒性和可靠性。
在一个实施例中,为了提高系统的稳定性和可靠性,根据作业配置对象中封装的作业信息对象,生成与作业程序对应的执行环境信息的步骤可以被具体执行为:
作业运行单元判断作业程序类型,作业程序类型包括作业和作业组,作业是单独的执行单元,作业组包含若干作业成员;若作业程序是作业组,则作业运行单元会遍历作业配置对象中封装的作业信息对象,逐个组装作业组中的每一个作业成员对应的作业信息,获取作业组信息模型,作业组信息模型包含若干作业组成员信息模型,包括获取每个作业成员的配置、运行资源等信息;如果作业程序是单独的作业,作业运行单元直接根据作业配置对象中封装的作业信息对象,组装作业对应的作业信息,获取作业信息模型;作业运行单元根据获取到的作业组信息模型或作业信息模型,生成与作业程序对应的执行环境信息,执行环境信息包括作业运行所需的资源配置、运行环境参数等,确保作业在执行时能够访问必要的资源,以及具备正确的执行环境;执行环境信息还包括作业失败重启策略,即在作业执行过程中发生失败时,系统应该如何进行重启,例如重试次数、重试间隔、错误报警等策略,以保证作业的可靠性和稳定性。
基于对作业程序类型的判断,系统能够动态适应不同类型的作业,包括单独的作业和作业组,这种灵活性使得系统能够处理各种规模和复杂度的数据处理任务;对于作业组,作业运行单元通过遍历作业信息对象,逐个组装作业组中的作业成员信息,使得作业组内部的每个成员都可以独立配置,灵活组合作业,提高系统的可配置性和可扩展性;根据获取到的作业组信息模型或作业信息模型,作业运行单元动态生成与作业程序对应的执行环境信息,使得系统可以根据作业的具体需求动态配置所需的资源和环境参数,提高了系统的灵活性和适应性;执行环境信息中包含作业失败重启策略,系统可以在作业执行过程中根据配置的策略进行智能重启,有助于提高系统的稳定性和可靠性,减少由于临时故障导致的作业执行中断;将配置信息和执行环境信息紧密整合,确保作业在执行时具备正确的配置和运行条件,这种整合提高了系统的自动化程度,减少了人工干预,降低了出错的可能性。
在一个实施例中,为了能够灵活处理不同数据源的抽取需求,确定与作业程序对应的数据抽取对象,并确定数据抽取对象对应的数据抽取方式的步骤可以被具体执行为:
作业运行单元根据作业ID,获取数据源配置模型中的数据源编码,数据源编码能够唯一地识别要从哪个数据源中抽取数据,并将数据源编码对应的数据源中的数据确定为数据抽取对象;有了数据源编码后,作业运行单元会再次查询资源配置模型,获取与数据源编码相关联的数据抽取方式,包括数据源连接信息、数据抽取模式和数据抽取规则;数据源连接信息涵盖了作业如何连接到数据源,包括数据库连接字符串、API端点等;数据抽取模式描述了抽取数据的方式,例如增量抽取、全量抽取等;数据抽取规则定义了具体的抽取逻辑,例如筛选条件、数据转换规则等。
通过数据源编码唯一标识数据源,提高了系统对数据源的管理和识别的准确性,减少了传统手动配置可能出现的错误;通过查询资源配置模型获取数据抽取方式,将数据连接信息、抽取模式和抽取规则等关键信息集中存储,而不是分散在脚本或代码中,提高了配置的集中性,降低了配置错误的风险;作业运行单元根据作业ID和数据源编码的动态获取,使系统更具适应性,能够灵活处理不同数据源的抽取需求,支持系统的扩展和变更。
在一个实施例中,为了减少重复的开发工作,提高开发效率,确定与作业ID对应的算子信息,构建算子链的步骤可以被具体执行为:
作业运行单元在转换算子配置模型中,获取与作业ID对应的算子信息,算子信息包括算子类型、配置参数、输入输出规则等,定义了作业程序中每个算子的功能和行为;根据获取到的算子信息,作业运行单元组装作业程序算子,包括实例化算子对象,并将配置参数应用到相应的算子实例中,确保每个作业程序算子都被正确初始化,准备执行作业的具体逻辑;在构建算子链的过程中,作业运行单元考虑算子对象明细模型和预设的作业程序算子间的依赖关系,这可以通过预先定义的配置或者规则,确定每个算子在算子链中的执行顺序和相互之间的关联,算子链的构建确保数据在作业程序中按照预期的流动,完成整个数据处理过程;一旦算子链构建完成,作业程序算子按照预定的顺序开始执行,每个算子负责执行特定的转换、过滤或其他数据处理操作,确保数据按照配置的规则流经整个算子链。
通过算子配置模型,将算子信息存储于配置中,包括算子类型、配置参数、输入输出规则等,这种方式使得整个数据处理系统更加灵活和可配置,开发者可以通过配置来定义算子的功能和行为,而不必硬编码在代码中,提高了系统的可维护性和可扩展性;在构建算子链的过程中,系统考虑算子对象明细模型和预设的算子间依赖关系,这种关系的灵活管理允许开发者定义和调整算子的执行顺序和相互关联,从而更好地控制数据在整个处理流程中的流向,有助于处理复杂的数据处理逻辑;通过实例化算子对象并将配置参数应用到相应的算子实例中,实现了算子的模块化和可重用性,这意味着同一种算子可以在不同的作业中被重复使用,减少了重复的开发工作,提高了开发效率。
在一个实施例中,为了提高系统的适应性和定制性,基于作业配置对象确定数据输出对象的步骤可以被具体执行为:
作业运行单元使用作业ID,查询数据输出结构映射模型,找到对应的输出目标,即数据库、文件、消息队列等外部存储系统,用于最终存储作业处理后的数据;基于算子链中数据流的字段和输出目标的字段,配置算子链中数据流与输出目标的映射关系,包括字段的映射、数据类型的匹配、转换规则等;将映射关系和输出目标确定为数据输出对象,数据输出对象描述了数据从算子链中流向最终输出目标的整个过程,包括字段映射、数据转换等信息。
需要说明的是,当作业数据输出结构映射模型中存在相关配置时,作业运行单元在进行映射关系配置时将优先考虑这些配置;例如,如果数据流中的字段为A、B,而在映射模型中配置了将字段A映射到输出目标对象的AA字段,字段B映射到输出目标对象的BB字段,系统将按照这些配置的映射关系进行输出,这使得用户能够更加精细地控制数据输出的结构,根据实际需求进行定制化配置,而不仅仅依赖于默认的字段映射规则。
作业运行单元使用作业ID查询数据输出结构映射模型,找到对应的输出目标,这种方式允许根据具体作业的需求,选择不同的输出目标,例如数据库、文件、消息队列等外部存储系统,这种多样性的输出目标选择提供了更大的灵活性,使系统能够适应不同的业务场景;基于算子链中数据流的字段和输出目标的字段,配置映射关系包括字段映射、数据类型的匹配、转换规则等,这种配置的可定制性使得用户能够根据实际需求,精细控制数据输出的结构,尤其是在存在映射模型中的配置时,系统会优先考虑这些配置,为用户提供更高程度的控制权;通过提及映射模型中的配置,说明系统支持用户优先考虑特定映射规则,而不仅仅依赖于默认的字段映射规则,这使得用户能够根据实际场景定制化配置,满足不同业务需求,提高了系统的适应性和定制性。
图2是一个实施例中数据处理程序组装方法的流程示意图。应该理解的是,虽然图2流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行;除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行;并且图2的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述方法,本申请实施例还公开一种数据处理程序组装装置。
参照图3,该装置包括以下模块:
作业ID启动模块301,用于获取作业ID,启动与作业ID对应的作业程序;
作业配置确定模块302,用于在获取到作业程序的启动指令时,确定与作业ID对应的作业配置信息,将作业配置信息封装为作业配置对象;
作业配置发送模块303,用于将作业配置对象发送至作业运行单元;
处理程序组装模块304,用于根据作业配置对象的内容,组装作业程序对应的数据处理程序。
在一个实施例中,作业配置确定模块302,具体用于对作业配置对象进行可行性验证,获取作业配置对象的验证结果;可行性验证包括对作业配置信息真实性的验证以及对作业程序运行情况的验证;若验证结果满足预设的要求,则作业调度单元将作业配置对象发送至作业运行单元。
在一个实施例中,处理程序组装模块304,具体用于根据作业配置对象中封装的作业信息对象,生成与作业程序对应的执行环境信息;确定与作业程序对应的数据抽取对象,并确定数据抽取对象对应的数据抽取方式;确定与作业ID对应的算子信息,构建算子链;基于作业配置对象确定数据输出对象,将数据抽取对象、算子链和数据输出对象连通为完整的数据处理程序。
在一个实施例中,处理程序组装模块304,具体用于判断作业程序类型,作业程序类型包括作业和作业组,作业组包含若干作业成员;若作业程序是作业组,则作业运行单元遍历作业配置对象中封装的作业信息对象,组装作业组中的每一个作业成员对应的作业信息,获取作业组信息模型;否则,作业运行单元根据作业配置对象中封装的作业信息对象,组装作业对应的作业信息,获取作业信息模型;作业运行单元根据获取到的作业组信息模型或作业信息模型,生成与作业程序对应的执行环境信息,执行环境信息包括作业运行资源和作业失败重启策略。
在一个实施例中,处理程序组装模块304,具体用于根据作业ID,获取数据源配置模型中的数据源编码,并将数据源编码对应的数据确定为数据抽取对象;作业运行单元根据数据源编码获取资源配置模型中的数据抽取方式,数据抽取方式包括数据源连接信息、数据抽取模式和数据抽取规则。
在一个实施例中,处理程序组装模块304,具体用于在转换算子配置模型中,获取与作业ID对应的算子信息,基于算子信息组装作业程序算子;根据算子对象明细模型和预设的作业程序算子间的依赖关系,构建组装好的作业程序算子对应的算子链。
在一个实施例中,处理程序组装模块304,具体用于基于作业ID,确定数据输出结构映射模型中的输出目标;基于算子链中数据流的字段和输出目标的字段,配置算子链中数据流与输出目标的映射关系;将映射关系和输出目标确定为数据输出对象。
本申请实施例提供的数据处理程序组装装置,可以应用于如上述实施例中提供的数据处理程序组装方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是:本申请实施例中提供的数据处理程序组装装置在进行数据处理程序组装时,仅以上述各功能模块/功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块/功能单元完成,即将数据处理程序组装装置的内部结构划分成不同的功能模块/功能单元,以完成以上描述的全部或者部分功能。另外,上述方法实施例提供的数据处理程序组装方法的实施方式与本实施例提供的数据处理程序组装装置的实施方式属于同一构思,本实施例提供的数据处理程序组装装置的具体实现过程详见上述方法实施例,这里不再赘述。
本申请实施例还公开一种计算机设备。
具体来说,如图4所示,该计算机设备可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算机设备。该计算机设备可以包括,但不限于,处理器和存储器。其中,处理器和存储器可以通过总线或者其他方式连接。其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、图形处理器(Graphics Processing Unit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)或者其他专用的深度学习协处理器、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请上述实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储控制单元、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例还公开一种计算机可读存储介质。
具体来说,计算机可读存储介质用于存储计算机程序,计算机程序被处理器执行时,实现上述方法实施方式中的方法。本领域技术人员可以理解,实现本申请上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
Claims (5)
1.一种数据处理程序组装方法,其特征在于,所述方法应用于数据处理程序组装系统,所述数据处理程序组装系统包括作业调度单元、作业配置单元和作业运行单元,所述方法包括:
所述作业调度单元获取作业ID,启动与所述作业ID对应的作业程序;
所述作业配置单元在获取到所述作业程序的启动指令时,确定与所述作业ID对应的作业配置信息,将所述作业配置信息封装为作业配置对象,所述作业配置信息包括数据源配置模型、资源配置模型、数据源输入对象配置模型、转换算子配置模型、算子对象明细模型和数据输出结构映射模型;
所述作业调度单元对所述作业配置对象进行可行性验证,获取所述作业配置对象的验证结果,若所述验证结果满足预设的要求,则所述作业调度单元将所述作业配置对象发送至所述作业运行单元,所述可行性验证包括对所述作业配置信息真实性的验证以及对所述作业程序运行情况的验证;
所述作业运行单元判断所述作业程序类型,所述作业程序类型包括作业和作业组,所述作业组包含若干作业成员;若所述作业程序是作业组,则所述作业运行单元遍历所述作业配置对象中封装的作业信息对象,组装所述作业组中的每一个作业成员对应的作业信息,获取作业组信息模型;否则,所述作业运行单元根据所述作业配置对象中封装的作业信息对象,组装所述作业对应的作业信息,获取作业信息模型;
所述作业运行单元根据获取到的所述作业组信息模型或所述作业信息模型,生成与所述作业程序对应的执行环境信息,所述执行环境信息包括作业运行资源和作业失败重启策略;
所述作业运行单元根据所述作业ID,获取所述数据源配置模型中的数据源编码,并将所述数据源编码对应的数据确定为数据抽取对象,根据所述数据源编码获取所述资源配置模型中的数据抽取方式,所述数据抽取方式包括数据源连接信息、数据抽取模式和数据抽取规则;
所述作业运行单元在所述转换算子配置模型中,获取与所述作业ID对应的算子信息,基于所述算子信息组装作业程序算子,根据所述算子对象明细模型和预设的作业程序算子间的依赖关系,构建所述作业程序算子对应的算子链;
所述作业运行单元基于所述作业ID,确定所述数据输出结构映射模型中的输出目标,基于算子链中数据流的字段和所述输出目标的字段,配置所述算子链中数据流与所述输出目标的映射关系,将所述映射关系和所述输出目标确定为数据输出对象;
所述作业运行单元将所述数据抽取对象、所述算子链和所述数据输出对象连通为完整的数据处理程序。
2.根据权利要求1所述的方法,其特征在于,所述数据抽取模式包括实时抽取和离线抽取。
3.一种数据处理程序组装装置,其特征在于,所述装置应用于数据处理程序组装系统,所述数据处理程序组装系统包括作业调度单元、作业配置单元和作业运行单元,所述装置包括:
作业ID启动模块(301),用于获取作业ID,启动与所述作业ID对应的作业程序;
作业配置确定模块(302),用于在获取到所述作业程序的启动指令时,确定与所述作业ID对应的作业配置信息,将所述作业配置信息封装为作业配置对象,所述作业配置信息包括数据源配置模型、资源配置模型、数据源输入对象配置模型、转换算子配置模型、算子对象明细模型和数据输出结构映射模型;
作业配置发送模块(303),用于对所述作业配置对象进行可行性验证,获取所述作业配置对象的验证结果,若所述验证结果满足预设的要求,则将所述作业配置对象发送至所述作业运行单元,所述可行性验证包括对所述作业配置信息真实性的验证以及对所述作业程序运行情况的验证;
处理程序组装模块(304),用于判断所述作业程序类型,所述作业程序类型包括作业和作业组,所述作业组包含若干作业成员;若所述作业程序是作业组,则遍历所述作业配置对象中封装的作业信息对象,组装所述作业组中的每一个作业成员对应的作业信息,获取作业组信息模型;否则,根据所述作业配置对象中封装的作业信息对象,组装所述作业对应的作业信息,获取作业信息模型;根据获取到的所述作业组信息模型或所述作业信息模型,生成与所述作业程序对应的执行环境信息,所述执行环境信息包括作业运行资源和作业失败重启策略;根据所述作业ID,获取所述数据源配置模型中的数据源编码,并将所述数据源编码对应的数据确定为数据抽取对象;根据所述数据源编码获取所述资源配置模型中的数据抽取方式,所述数据抽取方式包括数据源连接信息、数据抽取模式和数据抽取规则;在所述转换算子配置模型中,获取与所述作业ID对应的算子信息,基于所述算子信息组装作业程序算子,根据所述算子对象明细模型和预设的作业程序算子间的依赖关系,构建所述作业程序算子对应的算子链;基于所述作业ID,确定所述数据输出结构映射模型中的输出目标,基于算子链中数据流的字段和所述输出目标的字段,配置所述算子链中数据流与所述输出目标的映射关系,将所述映射关系和所述输出目标确定为数据输出对象;将所述数据抽取对象、所述算子链和所述数据输出对象连通为完整的数据处理程序。
4.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至2中任一种方法的计算机程序。
5.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至2中任一种方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410027311.0A CN117539605B (zh) | 2024-01-09 | 2024-01-09 | 一种数据处理程序组装方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410027311.0A CN117539605B (zh) | 2024-01-09 | 2024-01-09 | 一种数据处理程序组装方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117539605A CN117539605A (zh) | 2024-02-09 |
CN117539605B true CN117539605B (zh) | 2024-03-19 |
Family
ID=89788440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410027311.0A Active CN117539605B (zh) | 2024-01-09 | 2024-01-09 | 一种数据处理程序组装方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539605B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846076A (zh) * | 2018-06-08 | 2018-11-20 | 山大地纬软件股份有限公司 | 支持接口适配的海量多源异构数据etl方法及系统 |
JP2020042840A (ja) * | 2019-11-20 | 2020-03-19 | 富士ゼロックス株式会社 | 情報処理装置、情報処理方法、情報処理システム及びプログラム |
CN115480924A (zh) * | 2022-10-18 | 2022-12-16 | 中国工商银行股份有限公司 | 作业数据的处理方法及装置、存储介质、电子设备 |
-
2024
- 2024-01-09 CN CN202410027311.0A patent/CN117539605B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846076A (zh) * | 2018-06-08 | 2018-11-20 | 山大地纬软件股份有限公司 | 支持接口适配的海量多源异构数据etl方法及系统 |
JP2020042840A (ja) * | 2019-11-20 | 2020-03-19 | 富士ゼロックス株式会社 | 情報処理装置、情報処理方法、情報処理システム及びプログラム |
CN115480924A (zh) * | 2022-10-18 | 2022-12-16 | 中国工商银行股份有限公司 | 作业数据的处理方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117539605A (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8800047B2 (en) | System, method and program product for dynamically performing an audit and security compliance validation in an operating environment | |
US20100280863A1 (en) | Automated Model Generation For Computer Based Business Process | |
US20170255886A1 (en) | Workflow execution | |
US10608953B2 (en) | Platform with multiple execution engines | |
CN102752770B (zh) | 一种对业务系统进行巡检的方法及装置 | |
US20230305813A1 (en) | Continuous integration and development of code in a secure environment | |
Aksakalli et al. | Systematic approach for generation of feasible deployment alternatives for microservices | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN115392501A (zh) | 数据采集方法、装置、电子设备及存储介质 | |
US20080066060A1 (en) | Redirection interface system and method for CIM object manager provider | |
US20190205182A1 (en) | Unified monitoring interface | |
CN117539605B (zh) | 一种数据处理程序组装方法、装置、设备及存储介质 | |
CN111522623A (zh) | 组件化软件多进程运行系统 | |
Kjorveziroski et al. | Webassembly orchestration in the context of serverless computing | |
CN115056234B (zh) | 基于事件驱动和无限状态机的rpa控制器调度方法及系统 | |
CN107679691B (zh) | 一种工作设备管理方法及系统 | |
CN113485894A (zh) | 一种数据采集方法、装置、设备及可读存储介质 | |
CN114930290A (zh) | 用于管理对资产操作进行管理的应用程序的系统、设备、方法和数据栈 | |
CN113220283B (zh) | 一种基于云编排的物联app开发系统 | |
EP4209912A1 (en) | Method for enhancing the debugging capability for a software program | |
Alvarez et al. | Managing the cern batch system with kubernetes | |
WO2009082387A1 (en) | Setting up development environment for computer based business process | |
CN117111960A (zh) | 工业现场设备监测系统 | |
CN114115817A (zh) | 一种业务开发方法、装置、电子设备及存储介质 | |
Dias et al. | LinkEdge: open-sourced MLOps integration with IoT edge |
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 | ||
GR01 | Patent grant |