CN113535766A - 作业流配置方法、装置、电子装置及存储介质 - Google Patents
作业流配置方法、装置、电子装置及存储介质 Download PDFInfo
- Publication number
- CN113535766A CN113535766A CN202110890053.5A CN202110890053A CN113535766A CN 113535766 A CN113535766 A CN 113535766A CN 202110890053 A CN202110890053 A CN 202110890053A CN 113535766 A CN113535766 A CN 113535766A
- Authority
- CN
- China
- Prior art keywords
- file
- template
- job
- workflow
- common
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013515 script Methods 0.000 claims abstract description 25
- 230000001419 dependent effect Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 abstract description 9
- 230000004048 modification Effects 0.000 abstract description 9
- 238000012545 processing Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出了一种作业流配置方法、装置、电子装置及存储介质,包括以下步骤:获取Oozie提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板;引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。本申请针对目前人工修改模型上线所需配置文件产生的耗时、低效的问题,能够实现快速、准确地脚本配置上线。
Description
技术领域
本申请涉及数据仓库开发技术领域,特别是涉及一种作业流配置方法、装置、电子装置及存储介质。
背景技术
在数据仓库开发领域,模型都需要周期性加载,常见的有离线和实时两个大类。其中离线分为:分钟、小时、日、月、年等周期。实时为秒、毫秒级周期。
数据仓库模型在需要周期性加载时都需要编写上线作业脚本。其中上线作业脚本包含:作业基本信息、作业依赖信息以及作业流的优先级执行信息。
目前许多企业没有自研的数据开发平台,也没有采购其他开发平台,其采用的数据仓库的技术平台都是根据市场的大数据组件进行选型来使用。
常见的大数据组件调度系统有Oozie、Azkaban等。
其中,Oozie是用于Hadoop平台的开源的工作流调度引擎,用于管理Hadoop作业。
Azkaban是由Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。
针对Oozie的调度系统,在数据仓库模型上线时需要编写上线配置脚本:
1、coordinator.xml:控制依赖及变量
2、job.properties:控制作业开始结束时间和作业名称和作业路径等信息
3、workflow.xml:控制作业的优先级执行。
现有模型在利用大数据组件调度系统上线时的配置都需要人工去创建文件夹和配置文件,修改配置文件,存在步骤多,流程繁琐,效率低,容易出错的问题。
例如某时间节点需要上线一个智慧综治驾驶舱的大屏,数据内容有:
基础数据:按照省、市、区县、镇街多个维度下多种类型的人口、房屋、企业以及重点场所的指标数据。
事件数据:按照省、市、区县、镇街多个维度下多种事件类型的事件数,处理率、办结率,高发事件排名等指标数据。
以事件数据为例,数据处理需要用到以下模型:
1、数据基础层(从源业务系统1:1同步过来的事件基本信息、事件处理信息、网格信息、行政区划信息)
2、数据标准层(事件基本信息、事件处理信息、网格信息、行政区划信息、行政区域维表-横向)数据清洗
3、数据主题层(事件主题宽表)
4、数据应用层(根据智慧综治驾驶舱的大屏所需的指标建设)
总模型数为:4+5+6+N,每一个模型都需要上线进行周期性的加载,一个模型需有coordinator.xml、job.properties和workflow.xml这三个配置文件才可以运行,那么就需要编写(4+5+6+N)*3的配置文件。
针对模型上线需要编写作业生效开始时间、结束时间、调度时间,对集群的一些路径环境的配置,以及常用变量和脚本本身的一个执行顺序和名称的编写,对于上述修改工作,人工修改上线调试基本无法一次性上线成功,因此具有耗时,低效的问题。
发明内容
本申请实施例提供了一种作业流配置方法、装置、电子装置及存储介质,针对目前人工修改模型上线所需配置文件产生的耗时、低效的问题,能够实现快速、准确地脚本配置上线。
第一方面,本申请实施例提供了一种作业流配置方法,所述方法包括:获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板;引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
在其中一些实施例中,获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字包括:获取所述第二定时调度文件的所述固定关键字:时间类型变量及元数据信息;获取所述第二作业协调文件的所述固定关键字:作业名称、作业生效时间、失效时间及作业加载时间;获取所述第二工作流文件中的所述固定关键字:客户端、加载节点、数据库连接地址及密码。
在其中一些实施例中,分析所述时间类型变量得到时间类型;分析所述客户端、所述加载节点、所述数据库连接地址及所述密码得到作业加载集群参数;分析所述元数据信息得到依赖模板;将所述时间类型、所述作业加载集群参数及所述依赖模板作为在作业加载时的公共部分,生成共性模板。
在其中一些实施例中,将剔除所述公共部分的所述固定关键字作为非共性参数,其中,所述非共性参数包括:作业名称、开始时间、结束时间、调度时间、依赖表库名称、依赖表名称、执行顺序及执行顺序名称,基于所述非共性参数生成非共性模板。
在其中一些实施例中,解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板包括:读取所述非共性模板,得到所述作业名称、所述开始时间、所述结束时间、所述调度时间、所述依赖库名称、所述依赖表名称、所述执行顺序及所述执行顺序名称的字段值,基于所述字段值给所述非共性模板中的每个所述固定关键字赋值。
在其中一些实施例中,引用所述固定模板、所述共性模板、所述非共性模板生成目标配置文件包括:导入所述固定模板中的所述第一定时调度文件、所述第一作业协调文件、所述第一工作流文件并打开,基于所述共性模板、所述非共性模板中的字段值,生成所述目标配置文件中的第三定时调度文件、第三作业协调文件、第三工作流文件。
在其中一些实施例中,包括:在导入的所述固定模板中的所述第一作业协调文件中查找作业名称、作业生效时间、失效时间、作业加载时间的字段位置,分别赋值为所述非共性模板中所述作业名称、所述作业生效时间、所述失效时间、所述作业加载时间的字段值,生成第三作业协调文件;在导入的所述固定模板中的所述第一工作流文件中查找脚本参数的字段位置,赋值为所述非共性模板中所述作业名称的字段值;查找集群信息的字段位置,赋值为所述共性模板中的所述作业加载集群参数的字段值,生成第三工作流文件;在导入的所述固定模板中的所述第一定时调度文件中查找时间类型参数的字段位置,赋值为所述共性模板中所述时间类型的字段值;查找时间类型的字段位置,赋值为共性模板中作业加载集群参数的字段值;查找时间类型的字段位置,赋值为共性模板中依赖模板的字段值,生成第三定时调度文件;确定所述目标配置文件包括:所述第三作业协调文件、所述第三工作流文件、所述第三定时调度文件。
第二方面,本申请实施例提供了一种作业流配置装置,包括:第一模板生成模块,用于获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;第二模板生成模块,用于获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;赋值模块,用于解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板;文件生成模块,用于引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
第三方面,本申请实施例提供了一种计算机程序产品,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述代码软件部分用于执行根据第一方面任一项所述的作业流配置方法。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据第一方面所述的作业流配置方法。
本申请实施例的主要贡献和创新点如下:
本申请实施例对固定配置文件进行解析,提取作业上线所需的配置文件模板,生成固定模板,并对工作流调度引擎中已有的配置实例进行解析,获取其中的作业加载中不变的公共部分作为共性模板,以及获取其中的作业加载中会变更的部分作为非共性模板,在配置过程中只变更非公性模板的参数内容,进而高效地实现新的脚本配置的上线。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的作业流配置方法的流程图;
图2是根据本申请实施例的workflow中的流程图;
图3是根据本申请实施例的作业流配置装置的结构框图;
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
本申请旨在提出一种利用Python技术对工作流调度引擎中已有的配置实例进行解析,获取其中的作业加载中不变的公共部分作为共性模板,以及获取其中的作业加载中会变更的部分作为非共性模板,在配置过程中只变更非公性模板的参数内容,进而实现模型上线时的配置文件高效修改的技术方案,在实现时,通过在Oozie中获取固定模板,针对每一配置文件修改时,先导入固定模板,将共性模板的字段值赋值给固定模板中的相应参数,变更非共性模板中各固定关键字的参数内容,将获取到的字段值赋值给固定模板中的相应参数,进而完成目标配置文件的高效配置过程。
本申请实施例提供了一种作业流配置方法,可以实现目标配置文件自动快速修改的目的,具体地,参考图1,所述方法包括:
步骤S101、获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板。
在本步骤中,利用Python技术的导入查询模块,对Oozie提供的配置实例模板进行分析和提取,获取的配置实例模板包括:
第一定时调度文件(coordinator.xml),用于控制依赖及变量;
第一作业协调文件(job.properties),用于控制作业开始结束时间和作业名称和作业路径等信息;
第一工作流文件(workflow.xml),用于控制作业的优先级执行。
具体地,数据的计算、分析和处理过程中,数据和数据之间存在着先后的顺序依赖关系,比如,要处理数据A,首先要完成数据B的处理,因为A依赖于B的结果。由于数据之间存在关联和依赖关系,对应的数据加工任务之间也有对应的关联和依赖,因此通过Oozie提供的coordinator.xml控制依赖关系,通过job.properties控制作业开始和结束时间,通过workflow.xml控制作业的优先级,对任务的执行顺序和逻辑进行编排,确保任务的高效执行。
针对上述步骤S101,本申请实施例根据对配置实例进行解析以获取固定模板,在固定模板的基础上进行后续的参数替换以及赋值能够提高作业流的配置效率。
步骤S102、获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板。
在本步骤中,项目历史作业指的是模型历史版本上线时的配置参数,在当前版本上线时有部分参数与历史上线版本参数一致,把一致的公共部分写入共性模板中,把非公共部分作为非共性模板。在修改固定模板时,共性模板的内容可以直接替换到固定模板的相应参数中,避免手动修改字段及字段值带来的低效率问题。
在其中一些实施例中,获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字包括:获取所述第二定时调度文件的所述固定关键字:时间类型变量及元数据信息;获取所述第二作业协调文件的所述固定关键字:作业名称、作业生效时间、失效时间及作业加载时间;获取所述第二工作流文件中的所述固定关键字:客户端、加载节点、数据库连接地址及密码。
在本实施例中,分析所述时间类型变量得到时间类型;分析所述客户端、所述加载节点、所述数据库连接地址及所述密码得到作业加载集群参数;分析所述元数据信息得到依赖模板;将所述时间类型、所述作业加载集群参数及所述依赖模板作为在作业加载时的公共部分,生成共性模板。
具体地,第二调度文件、第二作业协调文件及第二工作流文件分别表示为模型历史版本上线时的coordinator.xml、job.properties、workflow.xml。
需要说明的是,workflow.xml中控制作业的优先级执行,在一个作业中可以有单个脚本,也可以有多个脚本。每个执行的脚本名为script(脚本名称)中,包含脚本,集群信息,变量等。workflow中的流程图见图2,图2是对workflow的控制优先级进行流程上的说明,如图2所示,当一个作业并行加载时需要调用所有并行作业,判断并行作业都加载成功后才结束作业。因此在workflow中需要获取每个执行的脚本、集群信息以及变量。
可以将历史项目作业中的上述文件存放于桌面his文件夹中,获取coordinator.xml的固定关键字:时间类型变量(coord:formatTime),分析时间类型变量,形成共性模板中的“常见变量_时间类型”;获取workflow.xml中的固定关键字:客户端、加载节点、数据库连接地址、密码,分析上述关键字,形成共性模板中的:“常见变量_作业加载集群参数”;获取coordinator.xml中的固定关键字:元数据信息(datasets),分析元数据信息,形成共性模板中的:“依赖模板”,将上述固定关键字作为作业加载时可不变的公共部分的共性参数,写入共性配置文件,可以保存到桌面JOB文件夹中,为了便于管理,在JOB文件夹中新增“常见变量_时间类型”文件夹、“常见变量_作业加载集群参数”文件夹、“依赖模板”文件夹,将相应的固定关键字信息保存到指定文件夹中,便于后续根据地址高效地访问和导入上述固定关键字。
在其中一些实施例中,将剔除所述公共部分的所述固定关键字作为非共性参数,其中,所述非共性参数包括:作业名称、开始时间、结束时间、调度时间、依赖表库名称、依赖表名称、执行顺序及执行顺序名称,基于所述非共性参数生成非共性模板。
具体地,在历史项目作业中获取job.properties的固定关键字:作业名称、作业生效时间、失效时间及作业加载时间、依赖表库名称、依赖表名称、执行顺序、执行顺序名称。由上述固定关键字组成非共性模板,其中,每个模型上线时的非共性模板中的值需要对应修改,从而对任务的执行进行调度和管理。
针对上述步骤S102,本申请实施例对项目历史作业中的固定关键字进行分析和提取,得到共性模板和非共性模板,并保存到相应的文件夹中,针对共性模板中的各个字段,可以通过地址串访问和获取相应的值,避免了人工修改配置文件中的字段及字段值造成的效率低、修改报错等问题。
步骤S103、解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板。
在本步骤中,非共性模板中的各个固定关键字都是每次模型新上线时需要变更的内容,通过解析获取其中变更部分,并未每一固定关键字赋值,能够高效地实现模型新脚本的配置上线。
在其中一些实施例中,解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板包括:读取所述非共性模板,得到所述作业名称、所述开始时间、所述结束时间、所述调度时间、所述依赖库名称、所述依赖表名称、所述执行顺序、及所述执行顺序名称的字段值,基于所述字段值给给所述非共性模板中的每个所述固定关键字赋值。
在本实施例中,每一模型作业都包括了共性模板、非共性模板,其中,非共性模板中的各个参数的含义如表1-1所示,表格中的各个参数指的是与作业加载强相关部分,剔除固定模板、共性模板后,与作业加载强相关部分包括:作业名称、开始时间、结束时间、调度时间、依赖表库名称、依赖表名称、执行顺序、执行顺序名称,输出非共性模板。同样的,为了关于管理,在JOB文件夹中新增“GX_TEST.xls”文件夹,将相应的非共性模板的字段保存在该文件夹中,便于后续根据地址高效地访问和导入上述固定关键字。
表1-1
在本实施例中,可以通过Python中的import xlrd方法,读取非共性模板,得到作业名称、开始时间、结束时间、调度时间、依赖库名称、依赖表名称、执行顺序、执行顺序名称的值。在赋值过程中解析非共性模板中的每一参数并赋值变量,赋值结果如下所示,
作业名称=$JOB_NAME
开始时间=$START_TIME
结束时间=$END_TIME
调度时间=$ETL_TIME
依赖表库名称=$DEPEND_DATABASES
依赖表名称=$DEPEND_TABLES
执行顺序=$ORDER_NUM
执行顺序名称=$ORDER_NUM_NAME
针对上述步骤S103,本申请实施例提取与作业加载强相关部分生成非共性模板,通过Python中的import xlrd方法,读取非共性模板,得到作业名称、开始时间、结束时间、调度时间、依赖库名称、依赖表名称、执行顺序、执行顺序名称的值,并赋值给每一对应参数。针对非共性模板中的各个字段,可以通过重新赋值的方式变更每次上线的字段值。本步骤与现有技术的区别在于,从数据仓库模型上线需编写的配置脚本coordinator.xml、job.properties、workflow.xml中自动提取出非共性模板,在编写配置脚本时针对该部分通过重新赋值的方式进行修改,不仅提高了效率,而且还避免了人工配置容易出错的问题。
步骤S104、引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
在本步骤中,利用Python技术在目标路径下创建文件夹。可以在创建文件夹之前先检查文件夹是否存在,若存在先删除再创建,不存在直接创建文件夹,文件夹名称可以为JOB_NAME,指定路径,利用Python中的文件打开模块功能打开桌面的固定模板、共性模板、非共性模板并基于其中的固定关键字的变量值生成目标配置文件。
在其中一些实施例中,引用所述固定模板、所述共性模板、所述非共性模板生成目标配置文件包括:导入所述固定模板中的所述第一定时调度文件、所述第一作业协调文件、所述第一工作流文件并打开,基于所述共性模板、所述非共性模板中的字段值,生成所述目标配置文件中的第三定时调度文件、第三作业协调文件、第三工作流文件。
在本实施例中,以固定模板中的coordinator.xml、job.properties、workflow.xml作为基础模板,查找基础模板中各固定关键字的字段位置,并依次赋值,最后得到目标配置文件。
具体地,在导入的所述固定模板中的所述第一作业协调文件job.properties中查找作业名称、作业生效时间、失效时间、作业加载时间的字段位置,分别赋值为所述非共性模板中所述作业名称、所述作业生效时间、所述失效时间、所述作业加载时间的字段值,生成第三作业协调job.properties文件;在导入的所述固定模板中的所述第一工作流文件workflow.xml中查找script脚本参数的字段位置,赋值为所述非共性模板中所述作业名称的字段值;查找集群信息的字段位置,赋值为所述共性模板中的所述常见变量_作业加载集群参数的字段值,生成第三工作流文件;在导入的所述固定模板中的所述第一定时调度文件coordinator.xml中查找时间类型参数的字段位置,赋值为所述共性模板中所述常见变量_时间类型的字段值;查找集群参数的字段位置,赋值为共性模板中常见变量_作业加载集群参数的字段值;查找依赖模板的字段位置,赋值为共性模板中依赖模板的字段值,生成第三定时调度文件;确定所述目标配置文件包括:所述第三作业协调文件、所述第三工作流文件、所述第三定时调度文件job.properties文件、workflow.xml文件、coordinator.xml文件。
在本实施例中,分别新建模型上线所需的job.properties、coordinator.xml、coordinator.xml并打开,引入固定模板中的对指定文件,查找各个固定关键字并替换为对应的字段值,完成替换后可以保存在JOB_NAME文件夹中。最终在目标路径/JOB_NAME下生成的workflow.xml、coordinator.xml、job.properties三个文件可直接用于作业上线使用。
综上,本申请实施例提出了一种作业流配置方法,对Oozie中的固定配置文件进行解析,提取作业上线所需的配置文件模板,生成固定模板,并通过项目中不同作业的配置文件进行分析,基于是否与作业加载强相关的标准得到共性模板和非共性模板。通过Python中的import xlrd用来读取非共性模板、共性模板和固定模板来进行重新组合,并通过文件读写和替换模块为每一固定关键字赋值,从而得到目标配置文件。通过本发明,不仅提高了脚本配置上线的效率,还减少了出错情况进而减少了上线调试工作,能够实现快速、准确地脚本配置上线。
实施例二
基于相同的构思,参考图3,本申请还提出了一种作业流配置装置,包括:
第一模板生成模块301,用于获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;
第二模板生成模块302,用于获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;
赋值模块303,用于解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板;
文件生成模块304,用于引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
实施例三
本实施例还提供了一种电子装置,参考图4,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种作业流配置方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是Oozie、项目历史作业获取到的模板等,输出的信息可以是模型新上线所需的定时调度文件、作业协调文件、工作流文件等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;
S102、获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;
S103、解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板;
S104、引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种作业流配置方法,其特征在于,包括以下步骤:
获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;
获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;
解析所述非共性模板中的每个所述固定关键字并赋值,写入所述非共性模板;
引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
2.根据权利要求1所述的作业流配置方法,其特征在于,获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字包括:
获取所述第二定时调度文件的所述固定关键字:时间类型变量及元数据信息;
获取所述第二作业协调文件的所述固定关键字:作业名称、作业生效时间、失效时间及作业加载时间;
获取所述第二工作流文件中的所述固定关键字:客户端、加载节点、数据库连接地址及密码。
3.根据权利要求2所述的作业流配置方法,其特征在于,包括:
分析所述时间类型变量得到时间类型;
分析所述客户端、所述加载节点、所述数据库连接地址及所述密码得到作业加载集群参数;
分析所述元数据信息得到依赖模板;
将所述时间类型、所述作业加载集群参数及所述依赖模板作为在作业加载时的公共部分,生成共性模板。
4.根据权利要求1或3任一项所述的作业流配置方法,其特征在于,将剔除所述公共部分的所述固定关键字作为非共性参数,其中,所述非共性参数包括:作业名称、开始时间、结束时间、调度时间、依赖表库名称、依赖表名称、执行顺序及执行顺序名称,基于所述非共性参数生成非共性模板。
5.根据权利要求4所述的作业流配置方法,其特征在于,解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板包括:
读取所述非共性模板,得到所述作业名称、所述开始时间、所述结束时间、所述调度时间、所述依赖库名称、所述依赖表名称、所述执行顺序及所述执行顺序名称的字段值,基于所述字段值给所述非共性模板中的每个所述固定关键字赋值。
6.根据权利要求1所述的作业流配置方法,其特征在于,引用所述固定模板、所述共性模板、所述非共性模板生成目标配置文件包括:
导入所述固定模板中的所述第一定时调度文件、所述第一作业协调文件、所述第一工作流文件并打开,基于所述共性模板、所述非共性模板中的字段值,生成所述目标配置文件中的第三定时调度文件、第三作业协调文件、第三工作流文件。
7.根据权利要求6任一项所述的作业流配置方法,其特征在于,包括:
在导入的所述固定模板中的所述第一作业协调文件中查找作业名称、作业生效时间、失效时间、作业加载时间的字段位置,分别赋值为所述非共性模板中所述作业名称、所述作业生效时间、所述失效时间、所述作业加载时间的字段值,生成第三作业协调文件;
在导入的所述固定模板中的所述第一工作流文件中查找脚本参数的字段位置,赋值为所述非共性模板中所述作业名称的字段值;查找集群信息的字段位置,赋值为所述共性模板中的所述作业加载集群参数的字段值,生成第三工作流文件;
在导入的所述固定模板中的所述第一定时调度文件中查找时间类型参数的字段位置,赋值为所述共性模板中所述时间类型的字段值;查找时间类型的字段位置,赋值为共性模板中作业加载集群参数的字段值;查找时间类型的字段位置,赋值为共性模板中依赖模板的字段值,生成第三定时调度文件;
确定所述目标配置文件包括:所述第三作业协调文件、所述第三工作流文件、所述第三定时调度文件。
8.一种作业流配置装置,其特征在于,包括:
第一模板生成模块,用于获取工作流调度引擎提供的第一定时调度文件、第一作业协调文件、第一工作流文件,生成固定模板;
第二模板生成模块,用于获取项目历史作业中的第二定时调度文件、第二作业协调文件及第二工作流文件,分析各文件中的固定关键字,根据所述固定关键字在作业加载时是否为公共部分生成共性模板和非共性模板;
赋值模块,用于解析所述非共性模板中的每个所述固定关键字并赋值,写入非共性模板;
文件生成模块,用于引用所述固定模板、所述共性模板及所述非共性模板生成目标配置文件。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7任一项所述的作业流配置方法。
10.一种计算机程序产品,其特征在于,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述代码软件部分用于执行根据权利要求1至7任一项所述的作业流配置方法。
11.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1至7任一项所述的作业流配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110890053.5A CN113535766B (zh) | 2021-08-04 | 2021-08-04 | 作业流配置方法、装置、电子装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110890053.5A CN113535766B (zh) | 2021-08-04 | 2021-08-04 | 作业流配置方法、装置、电子装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535766A true CN113535766A (zh) | 2021-10-22 |
CN113535766B CN113535766B (zh) | 2024-03-08 |
Family
ID=78121969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110890053.5A Active CN113535766B (zh) | 2021-08-04 | 2021-08-04 | 作业流配置方法、装置、电子装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535766B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114493164A (zh) * | 2021-12-30 | 2022-05-13 | 重庆特斯联智慧科技股份有限公司 | 基于边缘计算的机器人任务解析方法和系统 |
CN115202850A (zh) * | 2022-09-09 | 2022-10-18 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105303324A (zh) * | 2015-11-10 | 2016-02-03 | 中国建设银行股份有限公司 | 一种信息系统参数管理方法和装置 |
US10122872B1 (en) * | 2017-05-31 | 2018-11-06 | Xerox Corporation | Automatic configuration of network devices in remote managed print service applications utilizing groups of historical device data |
CN109362092A (zh) * | 2018-12-07 | 2019-02-19 | 中国移动通信集团福建有限公司 | 网络参数调整方法、装置、设备及介质 |
CN109471676A (zh) * | 2018-10-30 | 2019-03-15 | 中国建设银行股份有限公司 | 参数配置处理方法和装置 |
CN110515995A (zh) * | 2019-08-22 | 2019-11-29 | 深圳前海环融联易信息科技服务有限公司 | 快速生成大数据平台的etl作业方法及装置 |
CN111338869A (zh) * | 2020-02-24 | 2020-06-26 | 中移(杭州)信息技术有限公司 | 配置参数管理方法、装置、设备及存储介质 |
CN112632177A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种数据装载作业的生成方法 |
-
2021
- 2021-08-04 CN CN202110890053.5A patent/CN113535766B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105303324A (zh) * | 2015-11-10 | 2016-02-03 | 中国建设银行股份有限公司 | 一种信息系统参数管理方法和装置 |
US10122872B1 (en) * | 2017-05-31 | 2018-11-06 | Xerox Corporation | Automatic configuration of network devices in remote managed print service applications utilizing groups of historical device data |
CN109471676A (zh) * | 2018-10-30 | 2019-03-15 | 中国建设银行股份有限公司 | 参数配置处理方法和装置 |
CN109362092A (zh) * | 2018-12-07 | 2019-02-19 | 中国移动通信集团福建有限公司 | 网络参数调整方法、装置、设备及介质 |
CN110515995A (zh) * | 2019-08-22 | 2019-11-29 | 深圳前海环融联易信息科技服务有限公司 | 快速生成大数据平台的etl作业方法及装置 |
CN111338869A (zh) * | 2020-02-24 | 2020-06-26 | 中移(杭州)信息技术有限公司 | 配置参数管理方法、装置、设备及存储介质 |
CN112632177A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种数据装载作业的生成方法 |
Non-Patent Citations (1)
Title |
---|
林元载;倪中华;刘晓军;颜竞峰;: "基于参数化技术的数字化快速分析方法研究", 机械设计与制造工程, no. 03, 15 March 2017 (2017-03-15), pages 48 - 53 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114493164A (zh) * | 2021-12-30 | 2022-05-13 | 重庆特斯联智慧科技股份有限公司 | 基于边缘计算的机器人任务解析方法和系统 |
CN114493164B (zh) * | 2021-12-30 | 2024-04-09 | 重庆特斯联智慧科技股份有限公司 | 基于边缘计算的机器人任务解析方法和系统 |
CN115202850A (zh) * | 2022-09-09 | 2022-10-18 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
CN115202850B (zh) * | 2022-09-09 | 2022-12-20 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113535766B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220335338A1 (en) | Feature processing tradeoff management | |
CN110209650B (zh) | 数据规整迁移方法、装置、计算机设备和存储介质 | |
US10713589B1 (en) | Consistent sort-based record-level shuffling of machine learning data | |
US10956422B2 (en) | Integrating event processing with map-reduce | |
US10324710B2 (en) | Indicating a trait of a continuous delivery pipeline | |
CN105589874A (zh) | Etl任务依赖关系的检测方法、装置及etl工具 | |
US8607217B2 (en) | Incremental upgrade of entity-relationship systems | |
CA2523279A1 (en) | Method, system and article of manufacture for data preservation and automated electronic software distribution across an enterprise system | |
CN113535766B (zh) | 作业流配置方法、装置、电子装置及存储介质 | |
CN112100219B (zh) | 基于数据库查询处理的报表生成方法、装置、设备和介质 | |
CN113127347B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
US10838952B2 (en) | Resource offloading process using machine learning for database | |
CN116028489A (zh) | 自动化数据探查方法及其应用 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN114238085A (zh) | 接口测试方法、装置、计算机设备、存储介质 | |
US10366069B1 (en) | Systems and methods for database management and administration | |
CN114138577B (zh) | 一种tpc-h测试方法、装置、计算机设备及存储介质 | |
CN110851515A (zh) | 一种基于Spark分布式环境下的大数据ETL模型执行方法及介质 | |
CN115686535A (zh) | 一种Kubernetes集群的巡检方法、装置及应用 | |
CN115438024A (zh) | 数据导入中台的方法、装置、系统、电子设备、存储介质 | |
CN114168595A (zh) | 一种数据分析方法及装置 | |
MacDonald | PhilDB: The time series database with built-in change logging | |
CN110837365A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN111522729A (zh) | 规则发布的确定方法、装置及系统 | |
US11941029B2 (en) | Automatic extension of database partitions |
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 |