文档章节

TASKCTL产品功能清单列表

 老衲大海
发布于 2017/08/10 10:03
字数 5493
阅读 23
收藏 0

功能分类

功能描述

一级

二级

关系
调度控制

作业依赖关系调度

作业依赖关系调度是调度最基本的功能,指作业间具有顺序的运行,比如:a、b、c三个作业,只有当a完成后才运行b,b完成才能运行c

作业并行调度

与依赖关系对应,同样是调度的基本功能,指作业间运行不存在关系,可同时运行。

作业间互斥调度

互斥调度,指作业间不能同时运行,具有相互排斥性。比如 AB两个作业,当A运行时, B就不能运行;当B作业运行A就不能同时运行。

容错策略

错误自动重做

在一个作业流中,可以对相应作业设置重做次数。在自动化调度过程中,当作业发生错误后,可以根据预设次数,不断重做,直到次数满或作业成功为止。但次数满,而作业依旧不成功,该作业视为失败,后续作业不再执行。

错误自动忽略

与上功能对应,只是次数满后,系统不再重调,并忽略该作业,后续作业自动继续。

计划排程

自然日历排程

在一个业务作业处理流当中,设置其中某几个作业只能在某些指定的日期运行,比如,每周几,每月几号等。

逻辑日历排程

在银行业务中,基本上都具有业务日期概念,很多作业是按业务日期运行的。比如季末、季初等。从技术层面,该功能基本与上对应。只是一个相对自然日期而言,另一个相对逻辑业务日期而言

流程
启动触发

事件触发

对于一个系统的某个处理流,整个处理流每次运行究竟什么时候开始,可能自身不能决定,而是通过外围某个事件决定。而调度必须提供这种对外事件触发的机制,以便外围能与调度系统自动联动。

文件触发

与事件触发对应,一个流程是否开始运行,取决与某个文件是否存在。事件需外围,而文件触发是调度自身能判断。

定时频度触发

对于一个系统的某个处理流,按一定时间频度定时触发。比如每天23:00,每隔1小时,每个30分钟等。

自定义时间触发

对于有些流程启动,因业务原因,可能不是定频,而是指定某个时间段触发的指定时间点触发

自定义条件触发

要求调度系统,能根据复杂的业务条件启动流程。这个启动条件判断可由用户自定义。

其它

返回值控制

在批量调度中,每个作业自身都有运行成功或失败的表达,一般是通过返回值来定义的,而调度系统主要通过该返回值来决定一个作业是否成功与失败。因此,对每个作业,需要灵活定义一个作业返回值。

跳转控制

根据某个作业的运行情况,跳转流程逻辑。类型程序语言中的goto语句。

条件分支

类似语言中的if,case,where等。根据一个作业返回结果,确定具体的作业执行分支。

参数控制

为了保证调度的灵活性,在作业定义时,需要对每个作业对应的程序引入参数。

变量自动设置

为了保证作业定义信息的灵活性、可移植性,需要对作业参数、程序路径以及更多的控制信息进行变量化。

作业输入输出传递

将一个作业的输出结果变为另一个作业的输入参数。

时间窗口控制

在一个流程中,有些作业不再指定的业务时间范围内,不能运行

并发度控制

可根据具体的设置参数决定实际的运行作业并发数量

物理资源阀值控制

可根据机器资源阀值运行决定是否调一个作业。比如CPU高,就不分配作业运行

逻辑资源阀值控制

这是对上物理资源阀值控制调度缺陷的补充,对每个作业资源消耗设置一个具体值,再根据该值来决定作业的分配。

优先级控制

对于并行作业来说,设计一个谁先运行谁后运行的优先级。

循环控制

在一个作业流中,某个作业可根据参数循环运行多次,且每次的输入参数都不一样。

多实例调度

多实例是一个技术概念,表示一个调度中的作业对象或流程对象,可以同时运行多份。

断点续做

一个正常处理流程,比如abcde五个串行作业,运行到c时,因某种原因,调度异常中断,当调度恢复后,可正常从c继续运行。既保证不重复调度,又保证业务连续性

负载均衡调度

当某些作业同时在多台机器部署,并可在任意一台机器上运行,此时需要调度将不同并行作业分别分配到不同机器,保证充分利用硬件资源。同时,这种集群调度,也可保证集群的单点故障。

系统平台管理

节点管理

为了方便管理,提供界面对调度服务节点、代理执行节点的增删改查,比如ip,port等信息

用户及权限管理

在一个调度平台,会存在多种用户角色,比如有的可查看,有的可管理,有的可设计等。需要相应的界面对用户及权限进行增删改查

迁移部署

迁移部署功能是指将调度配置信息,从一个环境导入到另一个环境,通常用于上线或变更操作

信息备份

能将设计配置信息自动化备份

平台日志管理

能管理调度平台的各种运行日志,按日期,按类型等

版本管理

版本管理是对调度配置数据的备份、分支和切换等功能,在关键时候,能够进行回退等操作

作业()定义
设计功能

作业流程嵌套设计

作业组(流)和作业好比目录和文件的关系,在调度配置过程中,根据业务关系对作业进行分组,可以统一控制如执行日历、时间窗等属性,还可以简化依赖配置;同时嵌套设计,也是一种结构化管理,间信息分类,便于流程图展示与管理。

信息变量化设计

可以设计各种变量,用于宏替换各种设计信息,比如数据库、密码、路径以及各种更多的控制参数

设计信息自动检测

调度信息的设计在一定程度上是满足一定规则的,要求设计环境在用户以便设计一边自动检测用户的设计信息,是否满足信息规则。不要等到大量设计信息设计完成后,在统一检测。设计信息自动检测是提供用户的体验度,减少设计的出错几率

单作业对话框方式定义

提供友好的对话框快速设计单个作业

流程图设计能力

作业流信息能够通过图形来展示

单作业图形拖拽设计

能够采用拖拽的方式快速设计一个作业

多作业批量化平面文件方式设计

在实际设计中,很少采用对话框或拖拽的方式设计一个作业。因为实际情况,作业数较多,拖过一次次拖拽,一次次在对话框中点击保存,是很繁琐且效率低下的事。因此,一般情况下,面对大量作业的设计,采用编辑性很强的平面文件来设计(比如规则表格、excel、格式化、语法化文本等)

批量设计在线化

采用平面文件方式设计时,需要信息在线化,及设计的信息实时与服务端互动。

批量设计与图形化设计实时互动

采用平面文件设计时,需要实时与图形以及对话框设计互动,即可在平面文件方式、图形拖拽方式、对话框方式等不同设计方式中自由切换,使这三种设计方式有效结合,满足不同的设计场景。

全方位
监控管理

流程图实时动态监控

通过流程图清晰地、实时地展示流程作业的运行状况,一表达作业的顺序关系,二能清晰看到哪些作业在运行,哪些作业未运行,哪些作业运行错误等

多维度的统计列表监控

由于作业较多,为了管理方便,会对这些作业通过不同纬度进行管理。在监控时时,也希望能通过不同纬度进行统计监控,比如可以整个平台的运行情况,每个系统的运行情况,每个流程的运行情况等。

短信实时监控

能通过短信进行监控,当作业发生错误时,能立即通过短信的方式发送给相应的负责人,以便做相应的应急处理安排。

邮件方式非实时通知

能将每天的运行情况通过邮件的方式发送给相应人员。邮件方式无须实时,但可能要采用每天定时发送的方式。

启动文件到达监控

能对文件到达自动化触发的文件进行到达监控,让用户知道相关文件是否到达,便于用户对晚到的文件进行相应处理

调度体系拓扑图监控

调度体系包括调度服务节点,执行代理节点等。需要提供拓扑图的方式对各个节点进行监控。包括节点的状态等

资源监控

在监控调度体系各个节点状态的同时,还能监控更多的资源信息(cpu\硬盘状况)等,使用户对调度运行环境有一个更全面的了解。

信息查询

历史调度信息查询

对调度的历史运行情况进行查询,包括:状态、日期、启动时间、结束时间、运行节点、作业日志等信息。

作业日志查询

执行日志是指作业在执行过程中,作业本身产生的日志(非调度日志),该案例需要测试调度产品对不同类型作业,通过界面,查看或获取作业日志的情况。

作业信息查询

能查询每个作业的各种信息,包括作业的基本信息(作业名称、作业描述 、作业参数、作业对应程序等)、作业的各种控制策略(作业的依赖关系、重做次数、执行计划等)

变量信息查询

能查询整个平台的全局变量,或局部变量、私有变量。变量一般情况实在设计阶段设计的,但在实际运行过程当中,变量值可以随着调度的不断运行而改变。因此,需要提供相应的界面查询相应范围的具体变量值

人工操作记录查询

系统提供各用户操作记录查询,以便安全、责任以及审计管理。操作记录信息包括:操作人员、操作时间、操作类型、影响调度范围等信息。

人工干预功能
(手工保障)

人工执行任意作业

为了保证管理的灵活性,每个作业除了自动化运行外,还必须保证不论在什么时间,都可人工运行任意作业,以便满足应急要求,可以随时方便地实现自动、手动两种调度方式的切换。

人工执行指定分支

为了提高人工运行的效率以及人工处理的友好性,除了可以人工可运行任意作业外,系统还需提供人工可运行任何依赖分支。

作业重做

重做是指对一个作业或一组作业流程,重新执行。

正执行作业人工中断

中断用于在调度过程中,强行停止作业。中断作业包括:调度系统中作业的停止,实际运行作业进程的停止。比如中断存储过程,不仅要中断调度中的逻辑作业,还要中断数据库中真实的存储过程。

断点设置

断点是指在调度流程中,提前设置断点,让流程运行到断点处停止进行观察和调试。

设置作业无效

在作业流程调度运行中,人为提前设置某作业无效,使实际处理过程中,不真实调度运行该作业。

强制通过

调度过程中,因某些原因,作业无法执行成功,可将其直接修改为成功状态,让该作业强制通过。

执行条件人工忽略

每个作业自动化运行都有多种条件,比如依赖条件,时间条件等。通过忽略条件,使该作业变为可立即执行的状态。

并行度实时人工调整

在运行过程中动态修改并行度

资源阀值人工调整

在运行过程中动态修改阀值的控制

优先级实时人工调整

优先级在设计之初就有预定义。同时希望可以在运行过程实时动态调整。

控制变量人工修改

变量是一种保证设计信息最大灵活性的关键技术。不仅可以在设计时或初始化时赋值,同时也可以在调度自动化运行过程动态赋值。

追数调度

追数是批处理过程中常用的处理手段,通过起始日期和结束日期的设置,作业在此期间内,执行完毕后立即翻牌执行下一业务日期,直到结束日期。

统计分析

排程分布图

排程分布,指运行作业在不同时间的运行分布状况,比如1:00~2:00时间段有多少作业运行。排程分布要求通过图标展示不同纬度的作业分布:整个平台纬度,具体某个系统的纬度等

系统运行时间窗口分布图

系统时间窗口信息:系统名称(crm\数据仓库等)、开始时间、结束时间、整体耗时等。能提高图表方式,直观展示所有系统的时间窗口分布。

作业运行时序图

作业时序图与系统时间窗口图类似,只是作业时序图粒度更小,是站在每个作业的纬度。

作业耗时排序图

可站在整个平台的纬度以及系统的纬度对最耗时作业进行排序,将最耗时的作业排在最前面

作业运行关联分析

作业关联分析是通过尽最大可能还原每个作业当时的运行环境关键关联信息,以便做相应分析。关联信息包括:当时作业所运行的机器上,有那些作业在同步运行,当时的CPU的变化情况等。

作业出错率统计分析

统计作业的出错率,可以让用户快速发现出错率高的作业,以便用户对这些作业重点关注。

架构灵活性

调度核心架构:调度服务+执行代理

调度服务负责作业调度处理,执行代理负责具体作业的运行、终止处理等

整体应用架构:分布独立调度、统一运维监控

要求调度技术部分与监控管理部分分离。调度技术部分负责生产的调度处理,而监控部分是站在运维部的角度,实现对各个应用系统批量调度的统一监控管理。因此,整体架构要求:统一监控管理平台+调度服务器+调度执行代理。统一监控平台与调度服务器关系:1对多;调度服务器与执行代理关系:1对多

友好性

易安装

要求一个独立调度技术平台必须可以快速安装,最好可以傻瓜化10分钟内完成安装。

流程图友好性

a.线条关系清晰性:
b.是否可以自动排版;
c.是否可以上下钻取
d.是否可以对每一个作业类型个性化展示(比如shell\datastage\存储过程用不同图标展示)

流程设计功能友好性

a.是否可以可视化设计流程图
b. 是否可以在线化对大量作业批量平面文件化开发设计(比如表格化、格式文本化)
c. 批量平面文件式设计是否与流图实时互动,即拖拽式图形开发与平面文件式开始是否可以实时的、自由的来回切换
d. 是否可以实时检测设计信息的合理性。

快速搜索定位

a. 是否可以一键式可以搜索设计的各种信息,并定位到该信息,而不是在不同对话框中来回搜索
b. 是否通过搜索定位到流程图的具体作业节点

界面友好性

a.界面是否简介清晰
b.功能布局是否合理
c.操作流程是否简介

开放性

 跨平台、跨系统

a 是否支持linux系列调度
b 是否支持aix系列调度
c 是否支持windows调度
d 是否具有java版代理

广泛的作业类型支持

a shell作业调度
b 行命令直接调度
c 存储过程调度
d datastage作业调度
e java作业类型调度

作业类型统一扩展功能

是否具有统一接口的作业类型扩展,系统是否可以添加各种作业类型。

系统控制规模要求

一个调度服务器支撑的作业数量:10万级
一个调度服务器支撑的代理数:不低于100个
一个统一监控平台可同时监控服务器数量:不低于100个

调度核心各种应用控制接口的开发性

各种用户应用操作命令是否有统一的二次开发接口,是否具有相应的api(应具备主流java版接口)
  比如:各种人工干预操作、作业的导入导出等

调度核心各种数据的开放性

各种核心数据访问是否有统一的二次开发接口,是否具有相应的api(应具备主流java版接口)
  比如:作业定义静态数据、作业调度运行动态数据等

高性能

调度服务节点资源消耗

一个调度服务所有组件正常运行对资源的消耗
   1. 调度服务器对资源的消耗
   2. 如需第三方平台的消耗(比如调度平台需数据库,第三方中间件)

调度代理节点资源消耗

一个调度代理正常运行对资源的消耗

调度效率(吞吐量)

调度效率指,一个调度服务核心数据计算速度,具体体现在调度吞吐量,调度吞吐量一般可用两个纬度的数据体现:
   a. 串行吞吐量:比如空跑10000个依赖作业所需的时间(单位为 个/秒),并要求不能低于10个/秒
   b. 并行吞吐量:比如空跑10000个并行作业(但必须设置实际运行并行度比如10个)所需的时间,并要求不能低于20个/秒

低依赖

硬件环境低依赖

一个调度服务器在固定的业务需求范围对硬件的要求,比如10个系统,10000个作业规模,需要多少硬件。

软件环境低依赖

一个调度服务器应用,除了部署厂商自主研发的软件外,还需部署多少其它软件。比如是否需要数据库,是否需要第三方通信中间件、消息队列等。
   如何判断:一般可以通过需要多少个端口来判断。

高可靠

调度服务节点高可靠

调度服务节点是否有HA、主备、集群机制。

调度代理节点高可靠

调度代理节点是否有集群机制,是否可以解决单点故障

信息安全

网络通讯安全

节点间(服务与代理间、服务与操作客户端之间)通信是否通讯安全机制,比如校验机制、信息加密等。

强密码策略

调度设置信息中,是否可对一些敏感信息有加密机制

单点登录机制

是否可以接入企业内统一用户认证服务平台

人工操作记录可查询    

系统是否可以查询各用户各种重要的操作记录,比如登录、干预作业操作记录

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 20
码字总数 13635
作品 0
石家庄
私信 提问
ETL调度技术平台--TASKCTL

ETL的技术本质是:通过调度管理控制一系列具有数据处理功能的各种程序有序地运行。因此,有人总结:“ETL是BI(商业智能)的基础,调度是ETL的灵魂”。从功能层面讲,调度是ETL技术体系的重要...

施鹏飞
2013/01/26
18.3K
14
说说ETL调度工具TASKCTL的五宗最

这段时间,我一边研究网上公开的调度工具TASKCTL,一边看大鹏嘚吧嘚,一边是惊喜,一边是欢乐。大鹏嘚吧嘚有五宗最,很八卦,让我也给TASKCTL凑五宗罪,这绝对值得我们ETL技术人员学习与思索...

捷宝大大
2013/04/05
0
2
TASKCTL中不使用代理,通过ssh免密连接执行远程脚本配置(SSH插件扩展)

使用TASKCTL调度服务时,如果需要跨用户或者跨服务器调度可以通过安装taskctl的代理来实现,但有时需要执行作业的服务器上仅仅只有几个脚本,此时再部署代理,就显得有点得不偿失了。我们知道...

假赛先生
2017/10/26
0
0
cakephp2.X教程第二部分(基于cakephp1.3.4在线教程的改编)

使用 CakePHP 快速打造 Web 站点,第 2 部分: 用 CakePHP 打造更大更好的站点 关于本教程 本教程讲解如何使用 scaffolding 和 Bake 立即开发 CakePHP 应用程序。您还将了解使用 CakePHP 的 ...

daniel-john
2013/09/28
0
0
开发人员完美的前端清单-Frontend-Checklist

前端清单是在启动您的网站/ HTML页面到生产之前,您需要测试的所有元素的详尽列表。它基于前端开发人员多年的经验,现在也增加了其他一些开源前端清单。 如使用? 在项目中所有的前端清单,需...

匿名
2017/11/30
113
0

没有更多内容

加载失败,请刷新页面

加载更多

apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
47分钟前
0
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
3
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
3
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
3
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部