CN111813417A - 基于数仓任务和模型任务的页面配置的任务调度方法 - Google Patents
基于数仓任务和模型任务的页面配置的任务调度方法 Download PDFInfo
- Publication number
- CN111813417A CN111813417A CN202010474212.9A CN202010474212A CN111813417A CN 111813417 A CN111813417 A CN 111813417A CN 202010474212 A CN202010474212 A CN 202010474212A CN 111813417 A CN111813417 A CN 111813417A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- configuration
- page
- tasks
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
- 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
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于数仓任务和模型任务的页面配置的任务调度方法。本发明方法包括:根据不同租户创建不同的调度实例装置,并初始化模板调度线;调度实例基于airflow框架,能够实现个性化的页面配置的开发,使多个任务间的依赖关系可以在页面上进行配置;根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务。本发明通过docker镜像的隔离,页面化的配置,使得装置部署方式简单化,调度依赖的配置过程可视化,进而提升了调度的开发效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于数仓任务和模型任务的页面配置的任务调度方法及装置。
背景技术
随着现在计算机技术的快速发展,服务器需要根据前后依赖关系对任务进行调度,特别是在数仓任务和模型任务的调度领域。由于AIRFLOW的部署以及使用较为复杂,如何提高AIRFLOW的可操作性与便捷性就成了一大问题。
AIRFLOW中提供了一种基于数仓任务和模型任务的页面配置的任务调度方法,在该方法中,可以根据各个任务间的依赖关系编写Python文件。在此Python文件中,需要写清每个任务的参数即各类配置,部署到服务器上后方可生效。
在实现本发明的过程中,发明人发现上述方法至少存在以下问题:
首先,不支持多租户的使用场景。其次,工具的安装部署较为繁琐,依赖别的工具,且在安装过程中容易出错;再者,Python文件的编写较为复杂,需要了解并遵循其特定的编写规则,提升了使用成本;最后,每当需要修改任意任务的配置,任务间的调度关系,整体的配置参数等内容时,需要重新将文件手动部署到服务器方可生效。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于数仓任务和模型任务的页面配置的任务调度方法及装置。
本发明所述的基于数仓任务和模型任务的页面配置的任务调度方法,其特征在于包括如下这不:
根据不同租户创建不同的调度实例装置,并初始化模板调度线;
调度实例基于airflow框架,能够实现个性化的页面配置的开发,使多个任务间的依赖关系可以在页面上进行配置;
根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务;
所述基于HIVE数据仓库任务和模型任务的页面配置的任务调度方法,其特征在于,
所述每个调度实例装置均由调度中心统一生成,具体:
租户根据自身权限,动态生成不同的调度线,调度线构成调度实例装置;调度线是指不同任务和不同任务间的依赖关系;
生成的调度实例装置可以在页面根据个性化的需求,进行任意任务结点和任务间依赖关系的修改,具体修改方式如下:
获取所述被选任务的前置依赖任务,按照其前置依赖任务对应的调度周期被调度之后得到的调度结果,根据获取到的调度结果对所述被选任务进行调度;
所述的被选任务的前置依赖任务为一个或多个;因此前置依赖任务的调度结果为一个或多个;进一步的,被选任务的前置依赖任务调度不一定成功;
所述根据不同租户创建不同的调度实例装置,并初始化模板调度线,具体实现包括如下:
业务中心在新的租户进来时,会请求调度中心获取相应版本的调度实例装置,部署在以租户ID命名的不同文件夹下,用docker进行环境隔离;随后业务中心调用创建DAG(有向无环图)的接口,获取全依赖和模块线,根据新的租户自身的权限,点亮生成权限内对应的调度线。
进一步的,所述调度实例在基于airflow框架的基础上,进行个性化的配置页面的开发,使多个任务间的依赖关系可以在页面上进行配置,包括:
在页面可配置点、点校验、边、图、全局和主机的配置信息,从而使修改结点、结点间的依赖关系和主机的ip用户名密码的操作更简单。
进一步的,所述根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务:如果有多个满足调度条件的任务,将所述多个满足调度条件的任务均作为当前需要调度的任务,或者按照优先级在所述多个满足调度条件的任务中选择一个任务作为当前需要调度的任务。
进一步的,所述装置包括业务中心交互模块、配置中心交互模块、配置模块、调度模块
所述的业务中心交互模块,用于与业务中心进行交互,确保各个租户生成的调度装置的独立性以及初始调度线生成的便捷性,同时为调度装置的版本升级做了准备;
所述的配置中心交互模块,用于与配置中心进行交互,获取postgres数据库的连接信息和每个模块线对应的表名,用以点亮模块线;
所述的配置模块,用于根据所述页面,结合自身项目需求,对已有依赖关系进行修改,确定各个任务的前置依赖任务及后置依赖任务
所述的调度模块,根据所述被选任务的前置依赖任务的调度结果对所述被选任务进行调度,用于按照选择所述被选任务的方式及调度所述被选任务的方式处理所述被选任务的后置依赖任务及所有未调度的任务,直至调度完所有需要进行调度的任务;其中,调度任务执行一个远程连接工具命令,调用数据仓库或模型服务器上的具体任务;其特征在于,可以减轻本地服务器的压力,将任务分发出去执行,缓解资源不足的瓶颈。
进一步的,所述的配置中心交互模块具体实现如下:
当实例装置生成后,实例装置从redis获取配置中心的url;配置中心交互模块拿到配置中心的url并访问,获取postgres数据库的连接信息和每个模块线对应的表名,用以点亮模块线;最终被点亮的点为真结点,实行调度任务;未被点亮的点保留,作为假结点,不实行调度任务,真假结点在页面上根据颜色和任务类型的不同进行区分;点亮完毕后,则得到该租户权限下的完整调度线。
进一步的,所述的配置块包括五个子模块,分别用于对图、主机、点、点校验和边进行配置;
图配置子模块,用于对图进行配置,具体如下:
一个租户可拥有多张图,一张图即为一条完整的调度线;其中:租户ID为标识租户的唯一编码;
图ID为此租户下标记图的唯一编码;
图名称为该调度线的名称且不可重复;
全依赖版本为实例装置初始化时,从调度中心获取的模板调度线的版本;
全局配置Ⅰ:命令填充分为三部分,以json格式存储在数据库中;图生成时,会获取这一配置中的参数,构造每个结点的调度命令;首先,env_var为环境传参,其中的wh、rebalance是任务标签,分别代表着数仓任务的PYTHONPATH被设置为$PYTHONPATH:/home/tenant_{APP_ID};数仓任务的HADOOP_USER_NAME被设置为hive;rebalance模型的HADOOP_USER_NAME被设置为hive;其次,exe_vars为执行器传参,可配置spark_submit命令的参数,最后,vars为脚本传参,可设置执行该任务的脚本;全局配置Ⅱ:Dag实例化可配置执行该调度的时间周期,以json格式存储在数据库中,为可选配置;
全局配置Ⅲ:点实例化可对所有的任务进行统一配置,以json格式存储在数据库中,为可选配置,包括配置任务失败后的重试次数以及每次重试的时间间隔;
全局配置Ⅴ:报警平台可配置整个调度失败时的报警方式;当任务失败时,调度实例装置会将全局配置:报警平台设置的字段发送邮件给报警平台中心;报警平台收到邮件后,会以邮件或电话方式通知相应负责人;
定制配置:若结点为初始化实例装置时生成的,则是否定制为否;若用户后续新增了图,则是否定制为是;租户可在页面根据自己的需求新增个性化的图,也可在初始化实例装置时就生成的图上进行修改;可根据筛选框的条件,筛选出符合自己要求的图进行操作;
所述的主机配置子模块,具体实现如下:
可在页面上添加或编辑某一张图所用到的主机信息;包括数仓或模型代码所在服务器的ip、用户名、密码、存放路径;
所述的点配置子模块,具体实现如下:
图名称代表该任务结点属于哪一张图;
点ID为任务结点的唯一标识,初始化生成的任务结点的ID为正数,租户后期新增的任务结点的ID为负数;
点名称为该任务结点在页面上展示的名称;
任务类型分为ssh和email两种,分别代表调度任务和邮件报警任务;
任务标签分为wh(数仓)和各类模型标签例如classify(畅平滞模型);
任务实例化、点实例化、报警平台分别与图配置页面的命令填充、点实例化、报警平台的配置方式一致,但点配置的优先级高于图配置,会对图的配置进行覆盖;
所述的点校验子模块,具体实现如下:
点校验的配置方式与点配置子模块方式相同;配置出来的点会挂在需要校验的结点下面,对校验结果有两种处理方式,分别为阻断型和警告型;当不符合校验规则时,阻断型校验会终止整个调度,警告型校验会给负责人发邮件或电话报警,但不会终止调度;
所述的边配置子模块,具体实现如下:
边配置分为入点和出点,分别连接两个调度任务,以维护调度关系;租户可在页面上对定制的边进行增删改查等操作;在新增边的时候,对现有所有的边进行校验,防止出现闭环;
将5个子模块配置的数据通过页面添加的方式存储到数据库,从而改造airflow渲染图的方式:将原来的扫描多个python文件读取图的方式,改为只扫描一个python文件;被扫描的python文件从数据库中分别查出配置模块添加的配置信息,校验之前添加的图名称、主机信息、点名称、边是否重复,校验边是否形成闭环等;若通过上述校验,则用一个循环,将查出来的数据按照图ID分别进行渲染,生成多个图。
进一步的,所述业务中心隶属于请求发起方,向业务中心交互模块发送请求:首先,业务中心会向调度中心发送获取安装包的请求,调度中心接收请求后把安装包返回给业务中心;然后,业务中心把安装包快速部署在以租户ID命名的文件夹下,并向业务中心交互模块发送创建调度线请求,业务中心交互模块接收请求后,从调度中心获取最新的全依赖和模块线,将模板数据拷贝到自己的数据库中;最后,调度实例装置根据租户的权限,点亮模块线,生成不同的调度线;在后续调度装置需要升级时,业务中心会向业务中心交互模块发送升级请求,业务中心交互模块接收请求后,从调度中心获取需要升级的版本所对应的全依赖和模块线;将之前的调度线中个性化添加的部分取出,添加到升级后的全依赖和模块线中,生成升级后的调度线。
本发明实施例提供的技术方案带来的有益效果是:
首先,用镜像进行分隔,在一台服务器上支持多租户部署;其次,通过镜像化的部署简化了安装部署过程,做到了脚本化部署,避免安装过程中可能出现的一些错误,实现开箱即用;最后,可在页面配置任务和任务间依赖,降低使用时的学习门槛,快速上手,且避免了之前工具中修改DAG文件后重新部署服务器的操作,使修改能直接生效。
附图说明
图1是本发明一实施例提供的一种基于数仓任务和模型任务的页面配置的任务调度方法的流程图;
图2是本发明另一实施例提供的一种各个任务之间的依赖关系示意图;
图3是本发明另一实施例提供的一种基于数仓任务和模型任务的页面配置的任务调度装置的结构示意图;
图4是本发明另一实施例提供的调度中心和调度实例的环境示意图;
图5是本发明另一实施例提供的详细的调度实例的结构示意图。
图6为本发明调度实施例。
具体实施方式
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
首先,由于相关技术不支持多租户的使用场景。其次,工具的安装部署较为繁琐,依赖别的工具,且在安装过程中容易出错;再者,Python文件的编写较为复杂,需要了解遵循其特定的编写规则,提升了使用成本;最后,每当需要修改任意任务的配置,任务间的调度关系,整体的配置参数等内容时,需要重新将文件手动部署到服务器方可生效。综上所述,使得调度开发效率低下。
为了预防上述情况,提高调度开发的效率。本发明实施例提供了一种基于数仓任务和模型任务的页面配置的任务调度方法,参见图1,本实施例提供的方法流程包括:
101:根据不同租户创建不同的调度实例装置,并初始化模板调度线。
作为一种可选实施例,根据不同租户创建不同的调度实例装置,并初始化模板调度线,包括:
业务中心会向调度中心发送一个获取实例装置代码包的请求,如图4中1操作;并将获取到的实例装置按照租户划分,部署到以租户ID命名的不同路径下,如图4中2操作;再次发送创建DAG的请求,如图4中3操作,调度实例装置会从调度中心获取全依赖和模块线,从配置中心获取租户自身所有权限模块下的表名,回溯倒推所有依赖的结点依次点亮,生成最终的调度依赖图。此外,如图6,本装置修改了AIRFLOW源码,使其支持postgres数据库下对schema的识别,达到多租户隔离的效果,固需将修改后的源码映射进docker容器。
102:调度实例基于airflow框架,能够实现个性化的配置页面的开发,使多个任务间的依赖关系可以在页面上进行配置。
作为一种可选实施例,根据调度实例基于airflow框架,能够实现个性化的配置页面的开发,使多个任务间的依赖关系可以在页面上进行配置,包括:
本装置修改了DAG读取方式,将点边图的信息存储于数据库中,以动态的方式渲染出DAG图。在页面可配置点、点校验、边、图、全局和主机的配置信息,从而使修改结点、结点间的依赖关系和主机的ip用户名密码等操作变得简单化。所有接口接以RESTFUL形式,作为包封装在图6览众api代码包下,方便调用。
103:根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务。
作为一种可选实施例,根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务,包括:按照前置依赖的调度结果处理被选任务及所有未调度的任务,直至调度完所有需要进行调度的任务。为了便于理解,仍以图2所示的依赖关系为例,对于图2中的任务K,由于与任务K存在依赖关系的任务分别为任务D及任务H,因而可将任务D和H确定为任务K的后置依赖任务。按照确定任务K的前置依赖任务及后置依赖任务的方式,图2所示的部分任务之间的依赖关系可以用如下表1进行表示。
表1:任务之间的依赖关系
任务 | <u>Pre</u> | Next |
K | Begin | D、H |
D | I、G、K | A |
H | K | E |
E | J、H | A |
A | B、C、D、E | End |
上面表1中,pre代表前置依赖任务,next代表后置依赖任务。需要说明的是,Begin可以看作为第一个被调度的任务,End可以看作为最后一个被调度的任务。对于第一个被调度的任务而言,由于其之前并未调度任何任务,该第一个被调度的任务没有可依赖的调度结果,因而该第一个被调度的任务没有前置依赖任务。对于需要依赖其他任务的调度结果,但不被任何任务依赖调度结果的任务而言,没有后置依赖任务。另外,对于任意一个任务,其既可以作为其他任务的前置依赖任务,也可以作为其他任务的后置依赖任务。且一个任务可以有一至多个前置依赖任务,也可以有一至多个后置依赖任务。
本发明实施例提供的方法,首先,用镜像进行分隔,在一台服务器上支持多租户部署;其次,通过镜像化的部署简化了安装部署过程,做到了脚本化部署,避免安装过程中可能出现的一些错误,实现开箱即用;最后,可在页面配置任务和任务间依赖,降低使用时的学习门槛,快速上手,且避免了之前工具中修改DAG文件后重新部署服务器的操作,使修改能直接生效。综上所述,使得调度开发效率提升。
实例装置生成后,实例装置从redis获取配置中心的url;配置中心交互模块拿到配置中心的url并访问,获取postgtes数据库的连接信息和每个模块线对应的表名,用以点亮模块线;
如图6所示,现有甲、乙、丙三个模块;租户A购买了所有模块,则生成的调度线中所有任务结点皆为被点亮的真结点(真结点为可实行调度任务的结点);租户B只购买了甲和乙两个模块,调度实例会根据从配置中心取到的模块线与表名的对应关系,得出租户B需要点亮的结点为图中的任务甲-1、任务甲-2、任务甲-3、任务乙-4和任务乙-5。再根据上述5个结点的前置依赖关系,依次向前回溯点亮,例如任务甲-1依赖任务a,则将其点亮。具体如下表2所示,将所涉及的结点全部点亮:
表2:
任务 | 前置任务 |
任务甲-1 | 任务a |
任务a | 任务e |
任务甲-2 | 任务a、任务b |
任务b | 任务f |
任务甲-3 | 任务b、任务c |
任务c | 任务e、任务f |
任务乙-4 | 任务b |
任务乙-5 | 任务c、任务d |
任务d | 任务g |
所述的全局配置I具体代码实现:
需要说明的是:上述实施例提供的基于数仓任务和模型任务的页面配置的任务调度任务,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于数仓任务和模型任务的页面配置的任务调度装置与基于数仓任务和模型任务的页面配置的任务调度方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.基于数仓任务和模型任务的页面配置的任务调度方法,其特征在于包括如下这不:
根据不同租户创建不同的调度实例装置,并初始化模板调度线;
调度实例基于airflow框架,能够实现个性化的页面配置的开发,使多个任务间的依赖关系可以在页面上进行配置;
根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务;
所述基于HIVE数据仓库任务和模型任务的页面配置的任务调度方法,其特征在于,
所述每个调度实例装置均由调度中心统一生成,具体:
租户根据自身权限,动态生成不同的调度线,调度线构成调度实例装置;调度线是指不同任务和不同任务间的依赖关系;
生成的调度实例装置可以在页面根据个性化的需求,进行任意任务结点和任务间依赖关系的修改,具体修改方式如下:
获取所述被选任务的前置依赖任务,按照其前置依赖任务对应的调度周期被调度之后得到的调度结果,根据获取到的调度结果对所述被选任务进行调度;
所述的被选任务的前置依赖任务为一个或多个;因此前置依赖任务的调度结果为一个或多个;进一步的,被选任务的前置依赖任务调度不一定成功;
所述根据不同租户创建不同的调度实例装置,并初始化模板调度线,具体实现包括如下:
业务中心在新的租户进来时,会请求调度中心获取相应版本的调度实例装置,部署在以租户ID命名的不同文件夹下,用docker进行环境隔离;随后业务中心调用创建DAG(有向无环图)的接口,获取全依赖和模块线,根据新的租户自身的权限,点亮生成权限内对应的调度线。
2.根据权利要求1所述的基于数仓任务和模型任务的页面配置的任务调度方法,其特征在于所述调度实例在基于airflow框架的基础上,进行个性化的配置页面的开发,使多个任务间的依赖关系可以在页面上进行配置,包括:
在页面可配置点、点校验、边、图、全局和主机的配置信息,从而使修改结点、结点间的依赖关系和主机的ip用户名密码的操作更简单。
3.根据权利要求1或2所述的基于数仓任务和模型任务的页面配置的任务调度方法,其特征在于所述根据被选任务的前置依赖任务的调度结果对被选任务进行调度,直至调度完所有需要进行调度的任务:如果有多个满足调度条件的任务,将所述多个满足调度条件的任务均作为当前需要调度的任务,或者按照优先级在所述多个满足调度条件的任务中选择一个任务作为当前需要调度的任务。
4.根据权利要求3所述的基于数仓任务和模型任务的页面配置的任务调度方法使用的调度装置,其特征在于所述装置包括业务中心交互模块、配置中心交互模块、配置模块、调度模块
所述的业务中心交互模块,用于与业务中心进行交互,确保各个租户生成的调度装置的独立性以及初始调度线生成的便捷性,同时为调度装置的版本升级做了准备;
所述的配置中心交互模块,用于与配置中心进行交互,获取postgres数据库的连接信息和每个模块线对应的表名,用以点亮模块线;
所述的配置模块,用于根据所述页面,结合自身项目需求,对已有依赖关系进行修改,确定各个任务的前置依赖任务及后置依赖任务
所述的调度模块,根据所述被选任务的前置依赖任务的调度结果对所述被选任务进行调度,用于按照选择所述被选任务的方式及调度所述被选任务的方式处理所述被选任务的后置依赖任务及所有未调度的任务,直至调度完所有需要进行调度的任务;其中,调度任务执行一个远程连接工具命令,调用数据仓库或模型服务器上的具体任务;其特征在于,可以减轻本地服务器的压力,将任务分发出去执行,缓解资源不足的瓶颈。
5.根据权利要求4所述的基于数仓任务和模型任务的页面配置的任务调度方法使用的调度装置,其特征在于所述的配置中心交互模块具体实现如下:
当实例装置生成后,实例装置从redis获取配置中心的url;配置中心交互模块拿到配置中心的url并访问,获取postgres数据库的连接信息和每个模块线对应的表名,用以点亮模块线;最终被点亮的点为真结点,实行调度任务;未被点亮的点保留,作为假结点,不实行调度任务,真假结点在页面上根据颜色和任务类型的不同进行区分;点亮完毕后,则得到该租户权限下的完整调度线。
6.根据权利要求4或5所述的基于数仓任务和模型任务的页面配置的任务调度方法使用的调度装置,其特征在于所述的配置块包括五个子模块,分别用于对图、主机、点、点校验和边进行配置;
图配置子模块,用于对图进行配置,具体如下:
一个租户可拥有多张图,一张图即为一条完整的调度线;其中:租户ID为标识租户的唯一编码;
图ID为此租户下标记图的唯一编码;
图名称为该调度线的名称且不可重复;
全依赖版本为实例装置初始化时,从调度中心获取的模板调度线的版本;
全局配置Ⅰ:命令填充分为三部分,以json格式存储在数据库中;图生成时,会获取这一配置中的参数,构造每个结点的调度命令;首先,env_var为环境传参,其中的wh、rebalance是任务标签,分别代表着数仓任务的PYTHONPATH被设置为$PYTHONPATH:/home/tenant_{APP_ID};数仓任务的HADOOP_USER_NAME被设置为hive;rebalance模型的HADOOP_USER_NAME被设置为hive;其次,exe_vars为执行器传参,可配置spark_submit命令的参数,最后,vars为脚本传参,可设置执行该任务的脚本;全局配置Ⅱ:Dag实例化可配置执行该调度的时间周期,以json格式存储在数据库中,为可选配置;
全局配置Ⅲ:点实例化可对所有的任务进行统一配置,以json格式存储在数据库中,为可选配置,包括配置任务失败后的重试次数以及每次重试的时间间隔;
全局配置Ⅴ:报警平台可配置整个调度失败时的报警方式;当任务失败时,调度实例装置会将全局配置:报警平台设置的字段发送邮件给报警平台中心;报警平台收到邮件后,会以邮件或电话方式通知相应负责人;
定制配置:若结点为初始化实例装置时生成的,则是否定制为否;若用户后续新增了图,则是否定制为是;租户可在页面根据自己的需求新增个性化的图,也可在初始化实例装置时就生成的图上进行修改;可根据筛选框的条件,筛选出符合自己要求的图进行操作;
所述的主机配置子模块,具体实现如下:
可在页面上添加或编辑某一张图所用到的主机信息;包括数仓或模型代码所在服务器的ip、用户名、密码、存放路径;
所述的点配置子模块,具体实现如下:
图名称代表该任务结点属于哪一张图;
点ID为任务结点的唯一标识,初始化生成的任务结点的ID为正数,租户后期新增的任务结点的ID为负数;
点名称为该任务结点在页面上展示的名称;
任务类型分为ssh和email两种,分别代表调度任务和邮件报警任务;
任务标签分为wh(数仓)和各类模型标签例如classify(畅平滞模型);
任务实例化、点实例化、报警平台分别与图配置页面的命令填充、点实例化、报警平台的配置方式一致,但点配置的优先级高于图配置,会对图的配置进行覆盖;
所述的点校验子模块,具体实现如下:
点校验的配置方式与点配置子模块方式相同;配置出来的点会挂在需要校验的结点下面,对校验结果有两种处理方式,分别为阻断型和警告型;当不符合校验规则时,阻断型校验会终止整个调度,警告型校验会给负责人发邮件或电话报警,但不会终止调度;
所述的边配置子模块,具体实现如下:
边配置分为入点和出点,分别连接两个调度任务,以维护调度关系;租户可在页面上对定制的边进行增删改查等操作;在新增边的时候,对现有所有的边进行校验,防止出现闭环;
将5个子模块配置的数据通过页面添加的方式存储到数据库,从而改造airflow渲染图的方式:将原来的扫描多个python文件读取图的方式,改为只扫描一个python文件;被扫描的python文件从数据库中分别查出配置模块添加的配置信息,校验之前添加的图名称、主机信息、点名称、边是否重复,校验边是否形成闭环等;若通过上述校验,则用一个循环,将查出来的数据按照图ID分别进行渲染,生成多个图。
7.根据权利要求6所述的基于数仓任务和模型任务的页面配置的任务调度方法使用的调度装置,其特征在于所述业务中心隶属于请求发起方,向业务中心交互模块发送请求:首先,业务中心会向调度中心发送获取安装包的请求,调度中心接收请求后把安装包返回给业务中心;然后,业务中心把安装包快速部署在以租户ID命名的文件夹下,并向业务中心交互模块发送创建调度线请求,业务中心交互模块接收请求后,从调度中心获取最新的全依赖和模块线,将模板数据拷贝到自己的数据库中;最后,调度实例装置根据租户的权限,点亮模块线,生成不同的调度线;在后续调度装置需要升级时,业务中心会向业务中心交互模块发送升级请求,业务中心交互模块接收请求后,从调度中心获取需要升级的版本所对应的全依赖和模块线;将之前的调度线中个性化添加的部分取出,添加到升级后的全依赖和模块线中,生成升级后的调度线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010474212.9A CN111813417B (zh) | 2020-05-29 | 2020-05-29 | 基于数仓任务和模型任务的页面配置的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010474212.9A CN111813417B (zh) | 2020-05-29 | 2020-05-29 | 基于数仓任务和模型任务的页面配置的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813417A true CN111813417A (zh) | 2020-10-23 |
CN111813417B CN111813417B (zh) | 2023-07-28 |
Family
ID=72848540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010474212.9A Active CN111813417B (zh) | 2020-05-29 | 2020-05-29 | 基于数仓任务和模型任务的页面配置的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813417B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020262A (zh) * | 2021-10-27 | 2022-02-08 | 许继集团有限公司 | 一种继电保护装置功能模块的调度方法及系统 |
CN114356430A (zh) * | 2021-09-24 | 2022-04-15 | 杭州览众数据科技有限公司 | 一种基于airflow调度系统的DAG依赖配置工具 |
CN117093638A (zh) * | 2023-10-17 | 2023-11-21 | 博智安全科技股份有限公司 | 一种微服务数据初始化方法、系统、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170206034A1 (en) * | 2006-05-17 | 2017-07-20 | Richard Fetik | Secure Application Acceleration System, Methods and Apparatus |
CN109117141A (zh) * | 2018-09-04 | 2019-01-01 | 深圳市木瓜移动科技有限公司 | 简化编程的方法、装置、电子设备、计算机可读存储介质 |
US10261771B1 (en) * | 2017-11-30 | 2019-04-16 | Bank Of America Corporation | Environment mapping and patching synthesis |
CN109684053A (zh) * | 2018-11-05 | 2019-04-26 | 广东岭南通股份有限公司 | 大数据的任务调度方法和系统 |
CN110968371A (zh) * | 2020-02-28 | 2020-04-07 | 北京搜狐新媒体信息技术有限公司 | 一种数据仓库中工作流的配置方法及系统 |
-
2020
- 2020-05-29 CN CN202010474212.9A patent/CN111813417B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170206034A1 (en) * | 2006-05-17 | 2017-07-20 | Richard Fetik | Secure Application Acceleration System, Methods and Apparatus |
US10261771B1 (en) * | 2017-11-30 | 2019-04-16 | Bank Of America Corporation | Environment mapping and patching synthesis |
CN109117141A (zh) * | 2018-09-04 | 2019-01-01 | 深圳市木瓜移动科技有限公司 | 简化编程的方法、装置、电子设备、计算机可读存储介质 |
CN109684053A (zh) * | 2018-11-05 | 2019-04-26 | 广东岭南通股份有限公司 | 大数据的任务调度方法和系统 |
CN110968371A (zh) * | 2020-02-28 | 2020-04-07 | 北京搜狐新媒体信息技术有限公司 | 一种数据仓库中工作流的配置方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356430A (zh) * | 2021-09-24 | 2022-04-15 | 杭州览众数据科技有限公司 | 一种基于airflow调度系统的DAG依赖配置工具 |
CN114356430B (zh) * | 2021-09-24 | 2023-12-29 | 杭州览众数据科技有限公司 | 一种基于airflow调度系统的DAG依赖配置工具 |
CN114020262A (zh) * | 2021-10-27 | 2022-02-08 | 许继集团有限公司 | 一种继电保护装置功能模块的调度方法及系统 |
CN117093638A (zh) * | 2023-10-17 | 2023-11-21 | 博智安全科技股份有限公司 | 一种微服务数据初始化方法、系统、电子设备及存储介质 |
CN117093638B (zh) * | 2023-10-17 | 2024-01-23 | 博智安全科技股份有限公司 | 一种微服务数据初始化方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111813417B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
CN111813417B (zh) | 基于数仓任务和模型任务的页面配置的任务调度方法 | |
US20220138376A1 (en) | Digital twin modeling and simulation method, device, and system | |
US10789241B2 (en) | Generation of service specification of a solution | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
US6011917A (en) | Method and computer system for generating process management computer programs from process models | |
CN108964968B (zh) | 一种容器云环境下的服务接入管理方法和系统 | |
US10635408B2 (en) | Method and apparatus for enabling agile development of services in cloud computing and traditional environments | |
CN110912724A (zh) | 一种基于参数驱动的自动业务编排方法及装置 | |
WO2017033441A1 (ja) | システム構築支援システム、方法および記憶媒体 | |
CN108279882B (zh) | 框架生成方法、装置、设备及计算机可读介质 | |
CN110825395B (zh) | 多插件分层部署系统、设备及介质 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发系统及其方法 | |
CN114527996A (zh) | 一种多服务的部署方法、装置、电子设备及存储介质 | |
US6769112B1 (en) | Domain-independent reconfigurable scheduler | |
CN117055913A (zh) | 一种感知系统环境搭建方法、装置、设备及介质 | |
CN110321138B (zh) | 一种程序更新、迁移方法和装置 | |
CN115437647A (zh) | 适配多框架的微服务部署方法、装置、终端及存储介质 | |
CN114356430B (zh) | 一种基于airflow调度系统的DAG依赖配置工具 | |
CN110908767A (zh) | 一种参数自动部署方法和装置 | |
US20220067502A1 (en) | Creating deep learning models from kubernetes api objects | |
CN114564413B (zh) | 一种同步设备测试方法及装置 | |
CN110858806B (zh) | 节点部署文件的生成方法及装置、节点部署方法及装置、电子设备 | |
CN117648094A (zh) | 低开应用独立部署方法、装置、终端设备以及存储介质 | |
CN114968339A (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 | ||
GR01 | Patent grant |