深入浅出的etl作业调度工具taskctl

BytePioneer
• 阅读 2143

taskctl是什么

批量调度自动化技术是大数据时代数据整合后台不可缺少的重要技术。数据是黄金,数据是整个社会乃各企业团体的重要资产,管好数据、用好数据是整个社会的重要命题。想要用好数据,首先就应该管好数据。而批量调度自动化技术,正是管好数据的重要保证。在众多大大小小数据仓库、数据集市以及各种各样的数据池子中,是批量调度自动化技术让大量数据的进出、存放、清洗、过滤、粗加工、细加工等各种各样的工作有序、高效的展开。没有批量调度自动化的数据管理、数据整合等ETL工作,就像一家大公司没有领导,所有工作必将变得紊乱、低效、失控。

没错,批量调度自动化技术对数据整合、对各种各样的ETL,就像领导对公司的意义。同时,批量调度自动化技术又像优秀的职业经理人,没有行业的限制,它是一种与业务无关的纯技术体系。因此,将该技术独立化、系统化、专业化、工具化、产品化,必将给整个ETL技术领域、数据整合领域带来很大的帮助,让整个数据整合技术世界变得更美好。

深入浅出的etl作业调度工具taskctl

TASKCTL就是这样一款批量调度自动化技术专业产品。该产品概念新颖,体系完整、功能全面、使用简单、操作流畅,超前的设计使产品在业界独树一帜,它不仅有完整的调度核心、灵活的扩展,同时具备完整的应用体系。该产品特别在流程设计,流程图展示方面与业界同类产品方案相比,不仅取得突破性的进展,而且在图形直观性、操作简便性、灵活性方面有质的飞跃。

产品结构

深入浅出的etl作业调度工具taskctl

TASKCTL自动化技术标准产品采用典型的C/S模式,应用层为客户端,控制层为服务端。同时,服务端完成对目标层的调度控制。

应用层

应用层从功能的角度,主要分admin、designer和monitor。从应用渠道的角度,又分桌面客户端渠道与后台字符界面客户端渠道。同时,为了进一步方便用户,系统服务端还提供了丰富的控制操作行命令。

控制层

控制层是多级金字塔架构,顶层为服务控制节点,完成各种调度服务控制以及为客户端提供各种操作应用服务。而代理层完成与目标服务器(ETL等)的控制交互。另,代理层通过主从代理级联方式,可实现对集群部署的服务器进行调度控制,实现负载均衡等。

目标层

目标层,是整个产品所控制的目标,比如我们的ETL服务器,作业工作站等。

核心组件逻辑架构

深入浅出的etl作业调度工具taskctl

产品核心是在自主创新核心技术:无数据库存储访问、全事件组件间通信触发(消息队列)、动态数据全内存访问的基础上构建的。 在整个逻辑架构中,每一个组件对应一个系统进程,整个核心功能就是由不同功能的进程有序协同完成。

功能体系

深入浅出的etl作业调度工具taskctl

技术咨询:添加微信—"Kitleer"备注"咨询"

十大特征功能

十万级作业规模调度支持

TASKCTL从2.0开始,就定位为企业级调度基础软件,能实现10万级任务调度控制,能满足各大企业的调度规模需求。

支持各种技术平台的集成,能实现各种作业类型的调度

TASKCTL是一个开放的调度平台,为了适应诸如Datastage、Informatic、kettle、一体机、大数据、存储过程、java以及各种脚本任务程序的支持与扩展,同时保证不同任务类型的应用统一,TASKCTL对作业的控制采用插件驱动机制,从而实现不同技术平台、不同作业类型调度控制。

多级高可用(HA)、分布式、负载均衡企业级特征

为了保证系统的高可用性、高扩展性,整个产品核心设计采用层级架构。通过"Server(调度控制中心)" + "Agent(代理)"协调工作,完成各种复杂的调度控制,同时,通过Server主备,Server和Agent分布式集群部署,实现高可用性与负载均衡的企业级系统特性。

丰富的应用渠道、完整的应用体系

TASKCTL不仅将系统应用功能按应用类型通过Admin、Designer、Monitor三个软件来组织与应用,同时又按不同应用渠道分C/S模式桌面客户端、C/S模式字符界面客户端以及B/S模式监控应用端。它们分别构成完整的应用系统,用户可以根据自己的操作习惯与具体应用环境,选择合适的客户端渠道进行应用操作。

灵活用户权限管理

为了实现用户对各个作业流程资源的操作控制,TASKCTL采用操作系统的用户管理机制,TASKCTL将设计流程对象化、文件化,每个流程可以对拥有者、同组、其它用户分别授予读、写、操作权限,这种机制可以让用户对不同项目的的不同流程灵活授予读写操作权限。

流程作业的多级组织架构

流程作业信息是调度的核心信息,为了有效管理与控制这些信息,TASKCTL通过主题应用、流程(子流程)、模块等多级体系来组织作业信息,使整个平台的作业信息结构更清晰、更易管理、更易控制。

强大的核心调度功能

①灵活的流程驱动

一个作业流程的开始,可以通过文件到达触发、自定义周期定时触发(n分钟、n小时、n天等)以及自定义事件触发等。

②完整的调度控制策略

关系策略:可以实现作业、作业流之间的并行、互斥以及任意依赖控制。特别是依赖控制,系统通过串行、单点依赖、事件依赖以及自定义条件等机制,可以实现作业流内、不同作业流、不同ETL作业服务器以及不同业务日期、不同批次间任意作业的依赖控制。

排程计划策略:实现任意自然日历、逻辑日期排程计划;一个流程内可实现自然日历与多个逻辑日期的混合排程计划。

容错策略:可以实现作业错误后自动重跑,并可指定重跑次数,还可以实现错误重试次数满后,自动决定任务是否通过或失败。

强大的自定义策略:一个任务是否运行、忽略以及等待,用户可以通过自定义条件来确定。一方面,可以采用系统提供的内置函数用于条件判断;还可以通过自定义脚本程序来实现条件判断。

灵活的参数传递:用户可以通过定义全局变量、流程私有变量来实现定义各种信息的宏替换、作业参数传递、流程间变量信息传递等。另外,TASKCTL还可实现一个任务的返回值当作另外一个任务的入口参数来传递。

全方位实时监控作业运行

为了用户实时了解作业的运行状况,TASKCTL整体采用实时刷新、图形、多角度多口径统计以及短信等方式对整个平台作业进行全方位监控,以便用户及时掌握哪些作业正在运行、错误原因、失败、警告等信息

灵活的人工干预维护

人工干预是自动调度系统必不可少的功能。用户可以通过人工操作实现流程的暂停、重置、断点设置与作业的重跑、强制成功以及忽略通过;用户可以通过流程自由模式启动来实现任意作业以及任意作业分支的人工运行等。

专业的图形用户界面

TASKCTL的图形用户界面能够完成上述的所有功能。它将众多功能集成于一个直观的图形界面中,使得用户不用熟悉各种命令、作业定义语言等,就可迅速掌握与使用,进一步方便了用户

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(