taskctl

taskctl 查看完整档案

成都编辑  |  填写毕业院校  |  填写所在公司/组织 www.taskctl.com 编辑
编辑

官网微信公众号"taskctl"
批量调度自动化技术是大数据时代数据整合后台不可缺少的重要技术,TASKCTL就是这样一款批量调度自动化技术专业产品

个人动态

taskctl 发布了文章 · 3月30日

Kubernetes弃用Docker运行时,小甜甜变牛夫人影响了谁?

图片源自网络

由于Kubernetes已成为当前云原生基础设施的事实标准,Kubernetes在1.20版本后弃用Docker作为容器运行时引发了开发人员的关注。针对此事,网易数帆资深架构师、网易轻舟容器编排技术负责人王新勇给出了自己的见解。他认为,Kubernetes移除dockershim的代码确实有其合理之处,同时此事对绝大多数开发者没有多大的影响。
  • 从Kubernetes运行时提供统一的接口抽象这个角度来说,移除dockershim的代码确实有其合理之处,毕竟之前dockershim是由于历史原因,属于特例的。
  • Kubernetes编排是事实标准,容器的镜像格式遵守OCI,所有之前的交付的构件,无论容器运行时怎样变化,都不会有影响。
  • 容器平台提供商需要做一些适配、整合、测试等,需要提供kubernetes支持的容器运行时。也可以通过额外维护和引入一个新的不属于kubernetes项目的“dockershim”中间层来继续支持docker作为运行时。不过无论怎么做,绝大部分开发人员都是感知不到的。

Kubernetes和Docker的关系

  • Docker最初只是一个容器引擎,应该是很多人进入容器领域时最早接触的东西,Docker为普及Linux的容器技术做出了很大的贡献(虽然Linux容器上,LXC更早,而且早期版本的Docker就是基于LXC实现的,但是Docker的最大创新就是提出了镜像的概念)。
  • 在2015年,我们探索容器技术做蜂巢产品的时候,那时候很多人的理解里面,容器基本就是Docker,Docker就是容器。直到现在应该好多开发者还是这个认知。
  • Kubernetes是做容器编排的,本身跟最初Docker解决的问题领域是不冲突的,而且很多人都是从Docker入手才开始接触Kubernetes的。不过后来Docker也想做容器编排的事情,推出了Docker Swarm,Docker Swarm跟Kubernetes就构成了竞争的关系了。Docker从此以后就不仅仅是运行时了,而是一整套容器技术栈了。现在Docker公司又推出了企业服务Mirantis Kubernetes Engine,同时支持了Kubernetes和Swarm两种编排技术。
  • 总结来看:
  1. Docker作为一定意义上早期容器技术的代名词,对于Linux容器,对于kubernetes的普及都起到了重要的作用,如果仅仅把docker当作一个容器运行时、镜像构建管理、本地开发测试容器工具套件的使用功能上来说(而且实际上,绝大部分开发者目前也就是这么干的),跟kubernetes做编排在功能上是相辅相成的,Docker负责制作相关的软件构建并将其运行起来,Kubernetes用来控制如何运行这些容器。
  2. 如果说有竞争关系,其实随着Docker自己的编排引擎Swarm的影响力越来越弱,已经基本上丧失了竞争能力了。但是Docker公司推出的企业服务Mirantis Kubernetetes Engine确实是会跟Google的一些服务形成竞争关系。

Kubernetes和Docker的场景与用户

  • kubernetes是一个大而全的容器编排引擎,不仅仅是运行容器,还有存储、网络,还提供了配置管理、服务发现等功能,而且还提供了非常灵活的扩展性。
  • 而且现在基于Kubernetes,已经构成了一整套生态,各种基于Kubernetes的解决方案很多,像微服务、Operator化的中间件服务,service mesh,serverless等,这些技术的引入可以达到提高运维自动化能力,提升开发效率等。因此,如果业务规模足够大,对于这些功能的需求比较迫切,是应该考虑使用Kubernetes的。例如网易数帆构建云OS支撑集团多元化业务,解决集群生命周期自动化管理、简化运行时环境运维、提升资源利用率等问题,Kubernetes因其对云基础设施抽象、融合及生态的优势,成为我们的首选技术。
  • 当然,强大的功能,灵活的可定制性自然而然就带来了使用上的复杂性,概念很多,配置参数很多,运维复杂。因此使用kubernetes相比较来说比较重,一般DIY一个kubernetes集群会比较复杂。所以大家实际在使用Kubernetes的时候,一般不会自己去DIY Kubernetes。公有云上一般都是会去买托管的K8S服务,像GKE,EKS这种,对于on-premise情况下,在自己的IDC中,一般都会去购买像轻舟容器云这样的成熟的容器服务,这类服务提供了比较友好的使用方式,而且又将运维部署的复杂性对客户进行了屏蔽,可以让客户更好的使用Kubernetes。
  • 如果用户的业务部署比较简单,规模也较小,仅仅是为了使用容器做应用交付的便利,也没有其他的功能需求的话,仅仅通过docker run/docker-compose这种方式也能管得好的话,实际上是没必要非得引入Kubernetes这样非常重的编排组件的。反而直接仅仅使用docker会更轻量,也更好运维。比如toB的软件交付的情况,如果要部署的软件的部署架构比较简单的话,仅仅涉及少量几台机器,服务进程也不多的情况下,也有不少是直接使用docker,而不引入Kubernetes的,比较轻量、简单。(当然我这里没有专门提Docker Swarm,因为实际上我们使用Docker Swarm几乎没有,也不太有啥场景非Docker Swarm不可的,除非是早期遗留)
  • 还有一个就是,使用kubernetes做编排引擎的情况下,实际开发者在日常的开发中,也会比较多地使用Docker。

影响到哪些开发者和企业

  • 对于一般的应用开发者来说,他们一般不会直接去面对Kubernetes的,因此,对于他们来说,可能压根就是无感知的 ,应用开发者甚至都不用知道他们的业务是用容器运行的。以轻舟容器云产品为例,我们提供了自动从代码编译构建,到运行上线的一条龙服务。应用开发者可以完全不知道容器,仅仅写好代码、提交代码,剩下的工作就交给轻舟容器云平台来进行了,容器云平台会按照预先定义的动作模板,完成接下来的所有工作。
  • 对于整个基于Kubernetes生态的各个解决方案提供商来说,由于当前基于Kubernetes的编排是事实标准,容器的镜像格式又是都遵守OCI的,因此可以说所有的之前的交付的构件,无论容器运行时怎样变化,实际上都不会有啥影响。
  • 对于容器平台提供商来说,可能需要一些适配和准备动作。就拿轻舟容器平台来说,我们是有比较好的准备的,实际上Kubernetes弃用docker从很早就开始讨论了,我们也一直有关注相关的信息。很早我们就开始关注和使用Containerd作为我们的容器运行时的一个选项了,目前也在网易内部的部分服务中进行了比较长时间的运行,后续也会在轻舟容器云平台中,提供相关的运行时多个选项 ,并逐步过渡到使用containerd作为运行时。
  • 当然,即使按照当前的计划,到kubernetes v1.22版本,从kubernetes中删除了dockershim的支持,我们还可以通过将dockershim从kubernetes中抠出来,独立运行,作为kubernetes的cri到docker api的适配器,实现kubernetes继续支持docker,从而保持之前的使用习惯。

迁移到containerd、CRI-O复杂度如何

参见上个问题,不同的开发人员感知上可能是不一样的。

对于一般应用开发,可能自己从来都不会去写一个Dockerfile,那么对于他们来说是没有复杂度的。

对于之前可能需要跟Docker打交道的,往往也就是在开发调试阶段打交道,主要就是制作容器镜像和本地调试的。这种情况也是不需要进行迁移的,因为使用Docker制作的镜像,在其他运行时下同样能够正常跑。所有的工作流程都可以保持不变,没有迁移复杂度。

对于容器平台提供商来说,需要做的动作会大一点,需要做一些适配、整合、测试等,需要提供kubernetes支持的容器运行时。当然也可以通过额外维护和引入一个新的不属于kubernetes项目的“dockershim”中间层来继续支持docker作为运行时。不过无论怎么做,这个也是绝大部分开发人员都感知不到的。

当然,如果开发人员有兴趣的话,去学习一下crictl的操作也是可以的。有了使用docker的基础,上手还是很快的。

主要目的分析

docker的API比较早,跟CRI不兼容,因此kubernetes中实现了docker到CRI的适配层dockershim。根据KEP,CRI已经是容器运行时标准接口了,而docker作为容器运行时也不应该享受特权。同时去除掉dockershim支持,还能实现kubernetes与docker的解耦,减少kubernetes社区的负担,也能够使得kubernetes的运行时支持上可以有更好的演进和发展。

其实类似的事情,之前在kubernetes中已经发生过,那就是把很多厂商的in-tree的Volume相关的代码移除,而改为统一的基于CSI的实现,而kubernetes就专注于CSI就行了,不用再跟很多厂商的代码耦合了。

从kubernetes运行时提供统一的接口抽象这个角度来说,移除dockershim的代码确实有其合理之处,毕竟之前dockershim是由于历史原因,属于特例的。但是毕竟Docker是容器技术的“前辈”,昨天还是“小甜甜”,今天就成“牛夫人”了,还是有点唏嘘的。

Docker会逐渐消亡吗

还是将docker项目和docker公司分开来看吧。

docker项目的未来,我认为不会消亡,会使用docker命令可能会成为一个开发人员的必备技能,毕竟技术的惯性是很强大的,太多的开发人员直到现在可能还是认为容器就是docker,docker就是容器,日常开发过程中,docker命令有比较好用,用得又比较熟,没有必要换。

docker公司的处境和未来,我自己不懂公司经营,没法给出分析。不过就算docker公司处境不乐观,还是有强大的开源社区的,应该是不影响 docker项目的。

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 1月29日

免费ETL批量调度,任务调度,作业调度自动化运维工具Taskctl Web应用版

软件获取:去公众号【taskctl】回复内容 "软件" 即可获得永久授权使用

前言

随着企业拥抱数字化程度的提高,数据是企业的发展关键。数据的需求来源于业务也服务于业务,数据的挖掘、探索、分析、个性化推荐、报表等等都依托于数据的输送、转换和写入。数据的调度就是作业的调度。批量作业调度是金融行业信息后台最为重要的技术形态。

金融行业每天会进行交易相关的结算、清算、结息、对账等生产活动。这些活动都是通过一个个相互耦合的作业来实现的。因此需要一个作业调度平台来管理这些大量的作业。

随着金融行业新系统建设以及旧系统的更新、扩展,运维部门接手运维的应用系统越来越多,每天凌晨有数十个系统需要执行日切任务,近百万的批量作业需要执行,工作量非常繁重,如果有任务出错,很难及时排除故障,导致工作效率很低,影响数据的准确性和及时性。而开源软件、系统自带任务计划、传统批量调度工具逐渐无法满足业务对批量作业调度的需求。企业需要功能更强、性能更佳的国产化产品。

批量调度现状及诉求

目前,由于金融行业内部缺乏一款专业批量产品支撑,缺乏一定的批量调度规范与标准,企业内部几十上百个系统的批量作业调度混乱,难以管理。

调度原始落后

时至今日仍然有一些系统使用人工调度或操作系统的Crontab方式调度实现作业运行的自动化。这种方式容易引起依赖关系错误对业务构成威胁,当上游作业结束时间晚于下游作业,则会影响到作业执行的及时性和准确性。耗费人力、 容易出错、难以监控已成为这类系统的致命性问题。

使用开源软件

调度系统使用开源软件,没有免费的技术支持、学习成本高、维护费用高、安全性低、bug修复不及时、生命周期不确定。

调度自主研发

调度系统伴随项目自主研发,研发成本高、成熟度低、维护成本高、严谨性和稳定性难以保证,需求扩展性差。

作业规模变大

随着金融行业分布式新核心以及大数据平台的建设,批量处理作业规模越来越大,相对应的调度场景更加多样,系统调度逻辑也会更加复杂,系统开发人员很大一部分精力花费在了调度逻辑的控制,而非业务处理本身。另外,随着作业规模的增长,对调度性能和稳定性、扩展性提出了更高要求,一些现有系统 已经逐渐不能满足要求。

系统越来越多带来管理和运维困难

企业系统越来越多,不同系统,技术要求不同,批处理作业管理越来越复杂。一个技术人员很难同时熟悉多个系统,导致需要大量的技术人员分别管理和运维。夜间值班人员同时开着十几个甚至更多监控屏幕也成为常态和痛点。这些问题显然也同时导致了运维投入的不断增加。

平台解决方案

产品介绍
image

Taskctl 批量调度平台是专业的批量作业自动化调度与监控解决方案,它能有效地规范整合、高效管理企业业务系统的批量作业,达到全企业批量作业有序、高效运行的目的,极大降低运维成本,助力企业数字化转型。

产品定位

批量调度平台解决方案定位:金融日切等生产运营活动的最终实现平台。

主要面向银行、证券、保险等金融行业,对所有应用系统(包括业务系统、渠道系统、管理系统及数据跨平台作业调度)进行总体的、统一的调度和监控。

产品特性

跨平台作业调度

支持作业跨业务系统、跨操作系统、跨网络区域的统一调度管理。

海量高效

基于事件的实时调度机制,能够支撑海量作业。

强大的调度引擎

支持各种编排调度场景(时间依赖、文件依赖、人工复核依赖等),提供丰富的人工干预能力(挂起、恢复、取消、终止等)。

多维度监控

提供业务系统、作业流、作业等多个维度进行监控。

可视化编排

提供可视化拖拽式流程编排,支持流程节点自动排版。

强大的扩展性

支持横向水平扩展、支持纵向能力扩展。

访问方便

B/S架构,用户可直接通过浏览器访问。

产品架构图

有三大功能模块:

  • 平台管理( Admin ):平台级T配W置信息管理。如网络节点管理,作业类型扩 展,工程管理,全局变量管理,调度元信息导入导出,用户及权限管理,消息接 口管理等。
  • 作业设计( Designer ):作业调度元信息设计。如作业控制容器(定时器 / 作业流)的管理,作业关系、属性编辑,变量管理,作业组织模块管理等。
  • 运行监控( Monitor ):作业运行监控维护平台。对设计好的调度元信息进行运行监控以及人工操作干预。对运行信息进行查询、统计、分析等。

Taskctl Web版批量调度平台,提供了非常强大的调度核心。

核心功能如下:

串行调度

串行调度,即作业的执行按照设定好的顺序,依次执行,当前一个作业执行完成后,后一个作业才能开始执行,作业串行调度往往是因为后面的作业运行需要使用到前一个作业的执行的结果。

并行调度

并行调度,互相之间没有依赖关系,即多个作业同时执行。

条件分支

作业执行到分支节点,需根据前一个作业的执行结果,判断后续执行分支A还是分支B。

前置命令检测

作业执行前,会检测该命令执行是否成功。

人工复合

执行到设置了人工复核的作业时,作业的状态变为待复核,用户需对作业进行复核的操作,才能继续执行。

挂起

将等待状态的作业暂停,不会继续后面的执行。

恢复

将挂起状态的作业恢复执行。

取消

将作业状态置为取消,依赖于此作业的其他作业将继续往下执行。

终止

终止后不会继续后面的执行,并且无法恢复。会强制终止此作业。

重新执行

复制一份该作业,并放入原作业流中。如果新的作业成功,那么对作业流就是成功了。

释放依赖

释放此作业的被依赖关系(包括时间依赖),作业立即执行。

强制成功

针对错误、失败状态的作业,强制设为成功。

客户价值

批量调度平台的建设,为企业带来的价值体现在以下几个方面:

For业务人员:

企业内部几十上百个系统相关批量作业采用了各种各样的调度方式,使得调度混乱,极易出错。批量调度平台的建设,可帮助业务人员规范、整合各个业务系统的批量作业,为业务人员提供一个专业的、统一的、规范化的技术平台,减少项目实施的工作量,提升各个应用系统的实施效率。

For运维人员:

Taskctl 批量调度平台,可为企业提供专业统一的批量作业调度技术平台,将企业的批量作业集中在统一的调度平台,进行统一展示、统一监控并提供统一的人工干预窗口,大幅提高企业运维管理效率,降低运营成本,减少运维管理风险。

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-12-11

批量作业调度、数据挖掘,这几款应该是今年 “最值得推荐” 的ETL工具了

ETL是数据仓库中的非常重要的一环,是承前启后的必要的一步。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

下面给大家介绍一下什么是ETL以及ETL常用的三种工具——Datastage,Taskctl,Kettle。

什么是ETL?

ETL,Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

数据仓库结构

通俗的说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的数据仓库模型中去。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。

为什么要用ETL工具?

在数据处理的时候,我们有时会遇到这些问题:

  • 当数据来自不同的物理主机,这时候如使用SQL语句去处理的话,就显得比较吃力且开销也更大。
  • 数据来源可以是各种不同的数据库或者文件,这时候需要先把他们整理成统一的格式后才可以进行数据的处理,这一过程用代码实现显然有些麻烦。
  • 在数据库中我们当然可以使用存储过程去处理数据,但是处理海量数据的时候存储过程显然比较吃力,而且会占用较多数据库的资源,这可能会导致数据资源不足,进而影响数据库的性能。

而上述遇到的问题,我们用ETL工具就可以解决。ETL工具具有以下几点优势:

  1. 支持多种异构数据源的连接。(部分)
  2. 图形化的界面操作十分方便。
  3. 处理海量数据速度快、流程更清晰等。

ETL工具介绍

1.Datastage

image

IBM公司的商业软件,专业的ETL工具,但同时价格不菲,适合大规模的ETL应用。

使用难度:★★★★

从这里获取:Datastage工具

2.Taskctl

image

商业软件,国产专业的ETL工具平台。价格上比Datastage便宜很多,适合大规模的ETL应用。

使用难度:★★★

从这里进入:Taskctl商业版

3.Taskctl Web版

免费,在商业版 Taskctl 6.0 基础上纵向扩展而来,可跨多平台适合中小企业IT自动化类系统建和数据开发人员,如数据系统批量调度自动化、系统运维自动化、企业数据资产监控等等

使用难度:★

去公众号【taskctl】回复内容 "软件" 即可

4.Kettle

免费,最著名的开源产品,是用纯java编写的ETL工具,只需要JVM环境即可部署,可跨平台,扩展性好。

使用难度:★★

从这里进入:Kettle工具

三种ETL工具的对比

Datastage、Taskctl、Kettle三个ETL工具的特点和差异介绍:

1.操作

这三种ETL工具都是属于比较简单易用的,主要看开发人员对于工具的熟练程度。

2.部署

Kettle只需要JVM环境,Taskctl 需要服务器和客户端安装,而 Datastage 的部署比较耗费时间,有一点难度。

3.数据处理的速度

大数据量下 Taskctl 与 Datastage 的处理速度是比较快的,比较稳定。Kettle的处理速度相比之下稍慢。

4.服务

Taskctl 与 Datastage 有很好的商业化的技术支持,而 Kettle 则没有。商业软件的售后服务上会比免费的开源软件好很多。

5.风险

风险与成本成反比,也与技术能力成正比。

6.扩展

Kettle的扩展性无疑是最好,因为是开源代码,可以自己开发拓展它的功能,而 Taskctl 和Datastage 由于是商业软件,基本上不支持。

7.Job的监控

三者都有监控和日志工具。

在数据的监控上,个人觉得 Taskctl 的实时监控做的更加好,可以直观看到数据抽取的情况,运行到哪一个控件上。这对于调优来说,我们可以更快的定位到处理速度太慢的控件并进行处理,而 Datastage 也有相应的功能,但是并不直观,需要通过两个界面的对比才可以定位到处理速度缓慢的控件。有时候还需要通过一些方法去查找。

8.网上的技术服务支持

Kettle< Datastage < Taskctl 相对来说,Kettle 在遇到问题去网上快速找到解决方法的概率比较低,只有通过网上翻阅技术文档和加入社群询问,效率比较低;而相比 Datastage 和 Taskctl 则比较完善、由于是商业软件,网上不仅有完善的技术文档,24小时线上还有技术远程支持答疑人员。

项目经验分享

在项目中,很多时候我们都需要同步生产库的表到数据仓库中。一百多张表同步、重复的操作,对开发人员来说是细心和耐心的考验。在这种情况下,开发人员最喜欢的工具无疑是 kettle,多个表的同步都可以用同一个程序运行,不必每一张表的同步都建一个程序,而 Taskctl 虽然有提供工具去批量设计,但还是需要生成多个程序进行一一配置,而 datastage 在这方面就显得比较笨拙。

在做增量表的时候,每次运行后都需要把将最新的一条数据操作时间存到数据库中,下次运行我们就取大于这个时间的数据。Kettle 和 Taskctl 有控件可以直接读取数据库中的这个时间置为变量。

有一句话说的好:世上没有最好的,只有适合的!

每一款ETL工具都有它的优缺点,我们需要根据实际项目,权衡利弊选择适合的ETL工具,合适的就是最好的。当下越来越多公司及其客户更重视最新的数据(实时数据)展现,传统的ETL工具可能满足不了这样的需求,而实时流数据处理和云计算技术更符合。所以我们也需要与时俱进,学习大数据时代下的ETL工具。

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-12-03

批量作业调度工具 Taskctl 定时器及模块之间的区别

软件获取:去公众号 "taskctl" 回复内容 "领取""软件" 即可

主流程、子流程、定时器都属于控制容器;而每个控制容器,包含一个或多个模块;在模块中定义具体的作业。

一 主流程、子流程、定时器、模块之间的关系

主流程、子流程、定时器、模块在资源树中的表达:

  • 控制容器:是作业的最大组织单位,是一个独立完整的调度控制主体。在实际运行过程中,每个控制容器也相当于一个程序,在服务端都有一个对应的进程。因此,每个控制容器在Monitor中,都具有独立启停(激活)操作的特性。
  • 模块:在TASKCTL中, 流程、定时器的作业定义信息是通过xml格式代码组织的,而具体代码信息是又存放在每一个模块文件中。同时,为了方便管理,一个流程或定时器也可以由多个模块代码信息构成。其次,像程序一样。每个程序都有一个入口main函数类,而TASKCTL流程也有一个主模块入口。
  • 流程与定时器:流程与定时器是不同的控制容器, 有一个明显的概念区分。流程对作业的组织是有序的,而定时器是无序的,作业之间不存在关系。TASKCTL,就是通过有序与无序这两种组织形式,形成了一个相对完整的控制器体系。
  • 主流程与子流程:从技术的角度,主流程相当于一个守护进程,一旦运行,除非人为或异常退出,它就常驻内存,其流程内部是一个死循环,从开始运行到结束,又再次循环;而子流程,就相对于一个普通程序,运行结束后,相应的进程也会自动退出。

二 主流程、子流程、定时器的主要用途与应用场景。

1 总体上讲,具有先后逻辑关系的作业用流程来组织,而不具有逻辑关系且离散的作业(只具有不同时间频度的作业)用定时器来组织。

2 子流程,主要用于业务逻辑作业流的组织;主流程,一般用于逻辑触发控制,用于触发子流程的调用

三 用几个例子,加深对主流程、子流程、定时器的主要用途与应用场景的理解

1离散调用处理用定时器

2业务子流程

用子流程来组织具体的业务处理流程

3触发控制主流程

主流程主要用于流程的触发控制,本例是文件达到触发控制。

实际上,业务子流程的触发控制,如果是简单的定时触发,建议采用定时器;但如果是一些比较复杂的流程触发控制,就得采用主流程来触发控制。

4一个复杂的主流程触发控制例子

对应代码

该例子为每周1,3,4的8,10,16点阶段运行调用 “我的业务处理流程”

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-12-01

10万级etl批量作业调度工具Taskctl之轻量级Web应用版

什么是批量作业:

批量处理是银行业整个信息后台最为重要的技术形态,也是银行核心信息资产数据的分享、传输、演化的重要技术手段。有调查指出,全球70%的数据是经过批量处理得以再次使用,可见批量处理在整个信息生态中的技术占比与重要性。

银行业经过多年的信息化建设,逐步建立起几十甚至几百个信息系统,其中,绝大多数系统后台都具备有不同规模的作业批量处理,总体批量作业数已发展成几千到几万这样的一个庞大规模。随着大数据时代的到来,特别是在数据仓库、大数据平台的带动下,这样的规模还将快速发展,其批量作业数规模也必将产生数量级的增长变化。

银行面对如此多的系统、批量作业数以及可期的快速增长未来,让批量处理最为重要的技术-批量调度走向独立化、系统化、专业化以及平台化,是非常有必要的。批量调度不仅是批量处理的动力中枢,也是整个批量处理的管理入口,因此,建立一个规范专业的批量作业调度技术平台,建立一个统一的批量作业调度运维管理平台,不仅可以从架构层面优化企业整个后台批量体系,减少IT技术异构风险,为数据安全提供更可靠的技术保障,还可以加快具体系统构建速度,提升系统运维效率,降低运维风险。批量调度技术体系的专业化、平台化、统一化,不仅是一个系统建设,更是银行IT基础设施平台的建设,为银行整个IT建设健康高效发展提供坚实的基础。

目前主要实现方式:

目前,由于银行内部缺乏一款专业批量产品支撑,缺乏一定的批量调度规范与标准,使银行内部几十上百个系统相关批量调度实时混乱。这种现象不仅体现在银行不同系统之间,甚至体现在同一系统的不同建设周期之间。

应用系统内置,手工调度调度:

目前,在银行内有很多系统的后台批量处理,无论从后台调度层面,还是前台应用层面,都与业务系统本身高度耦合,而且调度触发启动主要是靠人工发起。造成这种局面的原因一方面是银行缺乏统一的调度规范体系,另一方面,站在整个应用系统的角度,批量调度本身比重不大。这种方案带来的直接后果体现在两个方面:

1.因高度耦合,扩展不易;

2.主要靠人工调度,相对较耗人力资源,而且因人工操作,可能会引入更多人为误操作的风险;

利用现有ETL工具的调度功能

随着银行信息化发展,特别是数据仓库的建立,并以此为基础建立的更多数据类、管理类系统,或多或少都在采用一些专业的ETL工具来实现批量处理,并结合工具本身的调度组件完成相应批量调度处理工作。

关于Taskctl Web应用版

=================

适合中小企业IT自动化类系统建设,如数据系统批量调度自动化、系统运维自动化、企业数据资产监控等等。

适合数据开发人员,大数据从业人员,运维人员学习了解批量作业调度技术

功能特性与授权

是TASKCTL 6.0下一个版本的预览版,具备TASKCTL6.0(官网最新发布版)功能和一些新特性(如工程级变量管理,作业分片执行,微批循环等)。免费授权规格如下表:

备注:软件未注册,不能实现7*24h连续自动化运行,因此不能用于生产环境。)

应用简介

Taskctl在线应用版V1.2相比C/S应用端功能完整,并精简部分操作逻辑,适合初学者体验taskctl产品,也能作为中小项目生产应用。

安装环境

初识Taskctl-Web版

Taskctl Free应用版原型是在原有商用版Taskctl 6.0衍生扩展开发出的专门为批量作业调度自动化打造的一款完全免费的轻便型敏捷调度工具。可为批量作业自动化调度者提供简单的方法来管理各类复杂作业的调度和监控管理。

Taskctl通过将企业内部复杂的作业调度依赖关系,进行灵活的统一编排和管理,带来前所未有的简单性。Taskctl采用全内存计算,基于全事件技术驱动,可简单、快速地对作业进行定义、编排和执行,并生成优化调度执行建议,从而负载均衡执行作业调度。

Taskctl作为敏捷批量调度的开拓者,产品设计从一开始就专门为整洁的体验而设计,并提供丰富、直观的用户界面,以简化常见的作业调度执行编排流程。

Taskctl-Web应用版遵循软件产品标准化的原则,以“专业、专注”为设计理念,结合 ETL 调度领域自身的特点,构建了一套直观易用的 ETL 控制容器调度设计、监控 、维护、管理平台 Taskctl-Web-Application 。

功能框架

通过上图可以了解到,Taskctl-Web版 是Taskctl 中客户端应用软件家族的重要一员。

有三大功能模块:

平台管理( Admin ):平台级T配W置信息管理。如网络节点管理,作业类型扩 展,工程管理,全局变量管理,调度元信息导入导出,用户及权限管理,消息接 口管理等。

作业设计( Designer ):作业调度元信息设计。如作业控制容器(定时器 / 作业流)的管理,作业关系、属性编辑,变量管理,作业组织模块管理等。

运行监控( Monitor ):作业运行监控维护平台。对设计好的调度元信息进行运行监控以及人工操作干预。对运行信息进行查询、统计、分析等。

软件获取方式

  1. 去公众号: taskctl 回复内容 "领取""软件" 即可;
  2. 百度网盘---提取码(97mk);
  3. 官网网站;
  4. Taskctl Web应用版;

系统特性

在 Windows 桌面客户端的基础上, TASKCTL 重新构建了一套基于 web 浏览器的应用 taskctl-web-application 。它具有如下特性:

功能完整:实现了桌面客户端 Admin,Designer,Monitor 所有的功能(包括高级分析功能)

部署简单:采用安装程序一键部署应用,不需要部署额外的 web 容器

体验简介:重新优化图形操作体验,简化操作步骤

合理导向:重新组织了页面 UE,让每个操作自然流畅

性能卓越:200k 带宽、单核处理器即可实现 10 个用户同时应用

稳定可靠:直接与调度服务核心通讯,信息更直接可靠。

登录界面

平台部署的时候,已经确定了调度服务端信息。因此不必再像桌面客户端一样需要输入调度服务端地址。

如上图所示:输入正确的用户名、密码点击“登录”按钮,登录成功后, Taskctl-Web-Application 将根据登录用户进行一系列的初始化操作,加载基本的运 行信息。

主界面

成功登录后,即可进入 taskctl-web-application 平台主界面。系统对各个组件进行了合理的初始化布局,如下图所示:

通过上图,我们可以直观的看到 Taskctl-web-application 具备了传统 web 应用软件的 “街头 banner 、 “顶部导航”,以及主框架区域。

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-11-27

国内外6款主流ETL调度工具综合对比

工具下载: 去公众号 "taskctl" 回复内容 "领取""软件" 即可

介绍:

ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成, 最后加载到数据仓库或数据集市中,成为联机分析处理、 数据挖掘的基础。 ETL是数据仓库中的非常重要的一环。

它是承前启后的必要的一步。相对于关系数据库, 数据仓库技术没有严格的数学理论基础,它更面向实际工程应用。 所以从工程应用的角度来考虑, 按照物理数据模型的要求加载数据并对数据进行一些系列处理, 处理过程与经验直接相关, 同时这部分的工作直接关系数据仓库中数据的质量, 从而影响到联机分析处理和数据挖掘的结果的质量。

ETL中的关键技术

ETL过程中的主要环节就是数据抽取、数据转换和加工、数据装载。为了实现这些功能,各个ETL工具一般会进行一些功能上的扩充,例如:工作流、调度引擎、规则引擎、脚本支持、统计信息等。

数据抽取

数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一般有以下几种方式。

(1)全量抽取

全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。全量抽取比较简单。

(2)增量抽取

增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。

在ETL使用过程中。增量抽取应用较全量抽取应用更广泛。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;性能,不能对业务系统造成太大的压力,影响现有业务。

目前增量数据抽取中常用的捕获变化数据的方法有:

a.触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。

b.时间戳:它是一种基于快照比较的变化数据捕获方式,在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。

同触发器方式一样,时间戳方式的性能也比较好,数据抽取相对清楚简单,但对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作。另外,无法捕获对时间戳以前数据的delete和update操作,在数据准确性上受到了一定的限制。

c.全表比对:典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。

MD5方式的优点是对源系统的倾入性较小(仅需要建立一个MD5临时表),但缺点也是显而易见的,与触发器和时间戳方式中的主动通知不同,MD5方式是被动的进行全表数据的比对,性能较差。当表中没有主键或唯一列且含有重复记录时,MD5方式的准确性较差。

d.日志对比:通过分析数据库自身的日志来判断变化的数据。Oracle的数据捕获(CDC,Changed Data Capture)技术是这方面的代表。CDC 特性是在Oracle9i数据库中引入的。CDC能够帮助你识别从上次抽取之后发生变化的数据。

利用CDC,在对源表进行insert、update或 delete等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统。CDC体系结构基于发布者/订阅者模型。发布者捕捉变化数据并提供给订阅者。订阅者使用从发布者那里获得的变化数据。

通常,CDC系统拥有一个发布者和多个订阅者。发布者首先需要识别捕获变化数据所需的源表。然后,它捕捉变化的数据并将其保存在特别创建的变化表中。它还使订阅者能够控制对变化数据的访问。订阅者需要清楚自己感兴趣的是哪些变化数据。一个订阅者可能不会对发布者发布的所有数据都感兴趣。订阅者需要创建一个订阅者视图来访问经发布者授权可以访问的变化数据。CDC分为同步模式和异步模式,同步模式实时的捕获变化数据并存储到变化表中,发布者与订阅都位于同一数据库中。异步模式则是基于Oracle的流复制技术。

ETL处理的数据源除了关系数据库外,还可能是文件,例如txt文件、excel文件、xml文件等。对文件数据的抽取一般是进行全量抽取,一次抽取前可保存文件的时间戳或计算文件的MD5校验码,下次抽取时进行比对,如果相同则可忽略本次抽取。

数据转换和加工

从数据源中抽取的数据不一定完全满足目的库的要求,例如数据格式的不一致、数据输入错误、数据不完整等等,因此有必要对抽取出的数据进行数据转换和加工。

数据的转换和加工可以在ETL引擎中进行,也可以在数据抽取过程中利用关系数据库的特性同时进行。

(1)ETL引擎中的数据转换和加工

ETL引擎中一般以组件化的方式实现数据转换。常用的数据转换组件有字段映射、数据过滤、数据清洗、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分等。这些组件如同一条流水线上的一道道工序,它们是可插拔的,且可以任意组装,各组件之间通过数据总线共享数据。

有些ETL工具还提供了脚本支持,使得用户可以以一种编程的方式定制数据的转换和加工行为。

(2)在数据库中进行数据加工

关系数据库本身已经提供了强大的SQL、函数来支持数据的加工,如在SQL查询语句中添加where条件进行过滤,查询中重命名字段名与目的表进行映射,substr函数,case条件判断等等。下面是一个SQL查询的例子。

select ID as USERID, substr(TITLE, 1, 20) as TITLE, case when REMARK is null then ' ' else REMARK end as CONTENT from TB_REMARK where ID > 100;

相比在ETL引擎中进行数据转换和加工,直接在SQL语句中进行转换和加工更加简单清晰,性能更高。对于SQL语句无法处理的可以交由ETL引擎处理。

数据装载

将转换和加工后的数据装载到目的库中通常是ETL过程的最后步骤。装载数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种装载方式:

  1. 直接SQL语句进行insert、update、delete操作。
  2. 采用批量装载方法,如bcp、bulk、关系数据库特有的批量装载工具或api。

大多数情况下会使用第一种方法,因为它们进行了日志记录并且是可恢复的。但是,批量装载操作易于使用,并且在装入大量数据时效率较高。使用哪种数据装载方法取决于业务系统的需要。

ETL工具综合对比表:

image

工具链接:关注公众号 "taskctl" 回复内容 "领取""软件" 即可

最后

现在有很多成熟的工具提供ETL功能,且不说他们的好坏。

从应用角度来说,ETL的过程其实不是非常复杂,这些工具给数据仓库工程带来了很大的便利性,特别是开发的便利和维护的便利。但另一方面,开发人员容易迷失在这些工具中。举个例子,VB是一种非常简单的语言并且也是非常易用的编程工具,上手特别快,但是真正VB的高手有多少?

微软设计的产品通常有个原则是“将使用者当作傻瓜”,在这个原则下,微软的东西确实非常好用,但是对于开发者,如果你自己也将自己当作傻瓜,那就真的傻了。ETL工具也是一样,这些工具为我们提供图形化界面,让我们将主要的精力放在规则上,以期提高开发效率。从使用效果来说,确实使用这些工具能够非常快速地构建一个job来处理某个数据,不过从整体来看,并不见得他的整体效率会高多少。

问题主要不是出在工具上,而是在设计、开发人员上。他们迷失在工具中,没有去探求ETL的本质。可以说这些工具应用了这么长时间,在这么多项目、环境中应用,它必然有它成功之处,它必定体现了ETL的本质。

如果我们不透过表面这些工具的简单使用去看它背后蕴涵的思想,最终我们作出来的东西也就是一个个独立的job,将他们整合起来仍然有巨大的工作量。大家都知道“理论与实践相结合”,如果在一个领域有所超越,必须要在理论水平上达到一定的高度.人一定要靠自己!

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-11-23

免费etl调度工具Taskctl-Web应用版【作业设计】

软件下载地址:去公众号 "Taskctl" 关键字回复 "领取" 即可获得永久授权并使用

认识Taskctl-web

TASKCTL 遵循软件产品标准化的原则,以“专业、专注”为设计理念,结合ETL 调度领域自身的特点,构建了一套直观易 用的 ETL 控制容器调度设计、监控 维护、管理平台 taskctl-web-application。

功能架构

=========

通过上图了解到,taskctl-web-application 是 TASKCTL 中客户端应用软件家族 的重要一员。有三大功能模块:

  • 平台管理(Admin):平台级配置信息管理。如网络节点管理,作业类型扩 展,工程管理,全局变量管理,调度元信息导入导出,用户及权限管理,消息接 口管理等。
  • 作业设计(Designer:作业调度元信息设计。如作业控制容器(定时器/作 业流)的管理,作业关系、属性编辑,变量管理,作业组织模块管理等。
  • 运行监控(Monitor:作业运行监控维护平台。对设计好的调度元信息进行 运行监控以及人工操作干预。对运行信息进行查询、统计、分析等。

系统特性

=========

在 Windows 桌面客户端的基础上,TASKCTL 重新构建了一套基于 web 浏览 器的应用 taskctl-web-application。它具有如下特性:

  1. 功能完整:实现了桌面客户端 Admin,Designer,Monitor 所有的功能(包括高级分析功能)
  2. 部署简单:采用安装程序一键部署应用,不需要部署额外的 web 容器
  3. 体验简洁:重新优化图形操作体验,简化操作步骤
  4. 合理导向:重新组织了页面 UE,让每个操作自然流畅
  5. 性能卓越:200k 带宽、单核处理器即可实现 10 个用户同时应用
  6. 稳定可靠:直接与调度服务核心通讯,信息更直接可靠。

登录界面

=========

平台部署的时候,已经确定了调度服务端信息。因此不必再像桌面客户端一样需要输入调度服务端地址。

如上图所示:输入正确的用户名、密码点击 “登录” 按钮,登录成功后,taskctl-web-application 将根据登录用户进行一系列的初始化操作,加载基本的运行信息。

主界面

========

成功登录后,即进入 taskctl-web-application 平台主界面。系统对各个组件进行了合理的初始化布局,如下图所示:

通过上图,我们可以直观的看到 Taskctl-web-application 具备了传统 web 应用软件的 “页头 banner“顶部导航”,以及主框架区域。

页面框架介绍

页头Banner与导航

提供了资源快速定位搜索框,消息提醒小红点以及当前登录用户信息。如下图所示:

消息提醒框

当 taskctl-web-application 检测到有最新未读的消息数目变化时,将在当前页面自动弹出系统消息提醒窗口。建议第一时间查看最新的消息详情

  • 单击消息框,自动跳转到 “我的消息” 页面
  • 若点击 “叉” 关闭消息提醒框后,系统将稍后再次提醒

作业设计Designer

作业设计


在作业设计功能模块的首页,您可以看到资源视图,工程视图以及控制容器,切换到资源视图查看全部控制容器,切换到工程视图可以选择项目筛选其对应的控制容器。如下图所示:

资源视图

通过资源视图,可以快速的打开模块代码、树节点属性、流程变量等设计窗口。并直观的展示了工程到流程,流程到模块的树形结构。如下图所示:

资源视图拥有自身特有的工具栏,通过其工具栏按钮,可以方便地对资源树及其选中节点进行相关操作。

工程视图

工程视图与资源视图,唯一不同的是聚焦到某个选中的工程。

控制容器设计

TASKCTL 通过作业控制器来组织管理作业。作业控制器分为作业流和定时器。如果作业之间存在复杂的关系,如依赖、并行关系。请使用作业流来组织作业集。否则通过定时器来组织管理作业更方便。

小提示:通过定时器来调用子作业流实现作业调度自动化。

下面通过设计一个简单的作业流控制容器(以下简称 “作业流” )来了解下Designer 的操作和 TASKCTL 的一些功能特性。

-

设计案例描述


(一)作业程序清单

(二)依赖关系

(三)驱动方式

文件到达驱动。

新建作业流


通过在控制容器中点击 “创建作业流” ,跳转 “创建作业流”,如下图所示 (也可通过单击工程视图/资源视图下的“作业流”工具栏按钮 ,创建作业流)

  • 关注微信公众号 TASKCTL 回复:3200,了解更多 “主控流程” 的信息
  • 更改作业流名称为 myflow1” ,单击保存
  • 单击 “跳转到私有变量”

私有变量设计


私有变量可通过已创建 “作业流/定时器管理” 中的跳转私有变量,也可通过工程/资源视图中的作业流/定时器等工具栏按钮单击 跳转。

  • 创建如上图所示的私有变量
  • 单击工程变量,可以跳转工程变量设计
  • 关注微信公众号 TASKCTL 回复:3341,了解更多变量信息

工程下所有控制容器都可以引用工程变量。通过合理的变量设计,能够让调度更灵活,更易迁移。

图形方式设计


作业流由一个启动模块或者再嵌套多个子模块组成,作业的开发设计主要通过模块设计器进行,而模块设计器提供了图形方式设计与模块代码方式设计。图形方式对新手用户更加友好,模块代码设计方式能提高进阶用户的设计效率。

图形方式设计布局


提供了切换图形方式设计与模块代码设计、作业节点搜索框、容器设计工具栏,组件工具箱、作业节点资源树,以及作业属性面板。

  • 容器设计工具栏 -> 容器设计过程中常用的功能,如重新转载、编译、私有变量、容器签入/签出
  • 作业节点树 -> 提供快速拖拽变更作业节点之间的 “串并” 关系,关注微信公众号TASKCTL 回复:3390,了解更多作业(组)节点类型信息

拖拽添加作业节点


给作业流添加作业节点时,从工具箱直接向右边的流程图中拖拽相应类型的作业。(注:拖拽到节点上时,绿色箭头提示可放置的方向),如下图所示

编辑作业节点属性

由于作业的属性相对较多,为了方便我们熟悉作业属性的操作,TASKCTL 根据作业属性特征,按用途分为 “What --基本属性”How --控制属性”Where -- 目标主机属性”Misc --杂项属性” 等。另外某些属性还具有复合(继承 -inherit、缺省-default、自定义-self特征。

  • 在定义作业节点属性时,需要理解普通属性与复合属性的区别,关注微信公众号TASKCTL 回复:3504,了解更多 “复合属性” 信息
  • 分别定义’myflow’流程的各个作业节点。定义如下:

通过以上定义后,模块作业关系图与节点树如下图所示:

说明

  1. 作业串并关系图中关系通过线条表达,且图中不出现串并节点
  2. 节点树中包含串并节点,且作业的串并关系通过上级串并组节点决定

关系定义


设计案列描述中的关系定义

调整串行组(dsjob1 > oraproc1)与 dsjob2 形成并行关系,操作如下步骤:

  1. 拖拽 dsjob2 到 dsjob1 下方,弹出并行关系确认对话框
  2. 选择 oraproc1 为并行关系结束点

3.单击确定,完成关系定义如下图:

上述步骤也可通过作业资源树完成,作业节点资源树能辅助流程图,选中串并组作业节点,拖拽整组调整串并关系,如下图所示

模块代码方式设计

设计布局

在上述图形方式设计时,可以通过单击模块代码按钮进入代码编辑模式。

  • 控制台输出,可以通过拖拽改变高度,也可单击右方的箭头按钮改变内置高度
  • 代码编辑区,右键打开代码编辑区上下文菜单

注意

  1. 快捷命令有时无效时:
  2. 请先单击代码编辑区,让其获取焦点,再重试快捷命令

作业节点定义

串并关系定义

定时器设计

定时器的设计步骤与作业流类似。在创建好定时器后,进入其主模块视图设计窗口。

在定时器中通过 parallel 并行组,来实现不同运行频率作业的分组。点击分组框中的+号创建分组。

创建好分组后,需要事先对分组的运行频率进行设置。然后参考之前章节设计作业流的方式,设置各个作业的属性即可。

编译


在控制容器设计后,需先提交本地更改,才能执行远程编译。(注意: 在资源视图/工程视图中工具栏中单击编译, 都是编译最近一次提交,本地如有更改,请先提交。)

提交


查看本地是否有变动(本地可提交状态),如下图所示:​​​​​​​

编译

单击提交后,编译按钮变为可点击状态。单击编译按钮,进行服务远程编译并结果输出,如下图所示:

调试

当控制容器编译成功后,可以选中作业节点进行运行调试。

请注意:在 Designer 只能对单个作业进行调试,如果要实现对整个作业流进行从头到尾运行测试,请发布作业流到运行监控环境再执行启动操作。

发布


把编译成功的作业流发布到运行监控区,才能对作业流进行调度监控,如下图所示:

发布成功后,将形成历史归档,如下图所示:

小提示:通过历史归档,可以回退到之前发布的版本。

签入与签出


为了实现团队协同,Designer 采用签入签出机制来保障调度元数据的原子性。在需要操作的时候,软件会自动提示用户是否需要签出以获取编辑权限。

签出成功后,资源信息以绿色字体表示可以进行编辑操作。

当被其它用户签出后,资源信息以黄色字体表示不能进行编辑操作。

需要待其它用户签入后,当前用户才能获取编辑权限。请注意:如果在线平台被非法关闭(如浏览器崩溃),当前签出的资源将丢失编辑权限,系统将在 30 分钟后自动签入,届时才能再次签出。

软件下载地址:去公众号 "Taskctl" 关键字回复 "领取" 即可获得永久授权并使用
查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-11-16

10万级etl调度软件Taskctl-web版免费授权及产品功能特性

初识Taskctl-Web版

Taskctl Free应用版原型是在原有商用版Taskctl 6.0衍生扩展开发出的专门为批量作业调度自动化打造的一款轻便型敏捷调度工具。可为批量作业自动化调度者提供简单的方法来管理各类复杂作业的调度和监控管理。

Taskctl通过将企业内部复杂的作业调度依赖关系,进行灵活的统一编排和管理,带来前所未有的简单性。Taskctl采用全内存计算,基于全事件技术驱动,可简单、快速地对作业进行定义、编排和执行,并生成优化调度执行建议,从而负载均衡执行作业调度。

Taskctl作为敏捷批量调度的开拓者,产品设计从一开始就专门为整洁的体验而设计,并提供丰富、直观的用户界面,以简化常见的作业调度执行编排流程。

Taskctl-Web应用版遵循软件产品标准化的原则,以“专业、专注”为设计理念,结合 ETL 调度领域自身的特点,构建了一套直观易用的 ETL 控制容器调度设计、监控 、维护、管理平台 Taskctl-Web-Application 。

功能框架

通过上图了解到,Taskctl-Web 是Taskctl 中客户端应用软件家族的重要一员。

有三大功能模块:

平台管理( Admin ):平台级T配W置信息管理。如网络节点管理,作业类型扩 展,工程管理,全局变量管理,调度元信息导入导出,用户及权限管理,消息接 口管理等。

作业设计( Designer ):作业调度元信息设计。如作业控制容器(定时器/作业流)的管理,作业关系、属性编辑,变量管理,作业组织模块管理等。

运行监控( Monitor ):作业运行监控维护平台。对设计好的调度元信息进行运行监控以及人工操作干预。对运行信息进行查询、统计、分析等。

系统特性

在 Windows 桌面客户端的基础上, TASKCTL 重新构建了一套基于 web 浏览器的应用 taskctl-web-application 。它具有如下特性:

  • 功能完整:实现了桌面客户端 Admin,Designer,Monitor 所有的功能(包括高级分析功能)
  • 部署简单:采用安装程序一键部署应用,不需要部署额外的 web 容器
  • 体验简介:重新优化图形操作体验,简化操作步骤
  • 合理导向:重新组织了页面 UE,让每个操作自然流畅
  • 性能卓越:200k 带宽、单核处理器即可实现 10 个用户同时应用
  • 稳定可靠:直接与调度服务核心通讯,信息更直接可靠。

登录界面

平台部署的时候,已经确定了调度服务端信息。因此不必再像桌面客户端一样需要输入调度服务端地址。

如上图所示:输入正确的用户名、密码点击“登录”按钮,登录成功后, Taskctl-Web-Application 将根据登录用户进行一系列的初始化操作,加载基本的运 行信息。

下载方式

提取码(97mk)

安装环境准备

因为在线应用端基于java开发,因此需要安装java1.8及以上版本。可以通过

java – version 命令查看具体,如下图所示:

安装步骤

  1. 上传并解压安装包taskctl-web-1.2.0.tar.gz

  1. 进入解压后的taskctl-web-1.2.0目录。执行sh install.sh命令

3.确定web应用的IP/端口及调度服务端的IP/端口信息。

4.执行startup.sh启动web应用及调度服务

  1. 建议通过Webkit内核的浏览器(如:360,chrome等)访问如下地址:

http://[web应用ip]:[端口]/

  1. 安装过程完毕!

如何0元获取永久使用授权

如下图所示:

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-11-13

【0元购买,永久授权】基于web端的etl调度必备工具——Taskctl free应用版

写在前面

2020年疫情席卷全球,更是对整个市场经济造成了严重影响,年初疫情肆虐,西方世界单方面的科技、经济封锁,国际关系吃紧.....导致很多中小型企业业务链受阻,大型企业经费资金吃紧,轮班制导致公司运维人员工作量大幅增加;塔斯克信息技术公司经领导研究决定为了履行社会责任,积极回报社会,帮助在此疫情期间受影响的企业减少运维资金支出、提升工作效率、保证后台数据安全,工作需求场景能够应用到的ETL批量作业调度工具的,为此公司技术团队集中人力耗时6个月在原有商用版Taskctl 6.0衍生出现有的web端Taskctl Free应用版

Taskctl Free应用版是专门为批量作业调度自动化打造的一款轻便型敏捷调度工具。可为批量作业自动化调度者提供简单的方法来管理各类复杂作业的调度和监控管理。

Taskctl通过将企业内部复杂的作业调度依赖关系,进行灵活的统一编排和管理,带来前所未有的简单性。Taskctl采用全内存计算,基于全事件技术驱动,可简单、快速地对作业进行定义、编排和执行,并生成优化调度执行建议,从而负载均衡执行作业调度。

Taskctl作为敏捷批量调度的开拓者,产品设计从一开始就专门为整洁的体验而设计,并提供丰富、直观的用户界面,以简化常见的作业调度执行编排流程。

关于taskctl Free应用版

  1. 适合中小企业IT自动化类系统建设,如数据系统批量调度自动化、系统运维自动化、企业数据资产监控等等。
  2. 适合数据开发人员,大数据从业人员,运维人员学习了解批量作业调度技术

功能特性与授权

是TASKCTL 6.0下一个版本的预览版,具备TASKCTL6.0(官网最新发布版)功能和一些新特性(如工程级变量管理,作业分片执行,微批循环等)。免费授权规格如下表:

0元永久授权,ETL调度软件 Taskctl Free应用版

(请注意:软件未注册,不能实现7*24h连续自动化运行,因此不能用于生产环境。)

Taskctl在线应用简介

Taskctl在线应用版V1.2相比C/S应用端功能完整,并精简部分操作逻辑,适合初学者体验taskctl产品,也能作为中小项目生产应用。

安装环境

0元永久授权,ETL调度软件 Taskctl Free应用版

安装方法与步骤

1.下载地址:

提取码(97mk)

2.环境准备(Java环境)

因为在线应用端基于java开发,因此需要安装java1.8及以上版本。可以通过

java – version 命令查看具体,如下图所示:

0元永久授权,ETL调度软件 Taskctl Free应用版

3.安装步骤

  1. 上传并解压安装包taskctl-web-1.2.0.tar.gz

0元永久授权,ETL调度软件 Taskctl Free应用版

  1. 进入解压后的taskctl-web-1.2.0目录。执行sh install.sh命令

3.确定web应用的IP/端口及调度服务端的IP/端口信息。
image

4.执行startup.sh启动web应用及调度服务
image

  1. 建议通过Webkit内核的浏览器(如:360,chrome等)

访问如下地址:http://[web应用ip]:[端口]/

  1. 安装过程完毕!

0元授权

  1. 公众号搜索 ”taskctl” 并关注
  2. 获取授权0元活动完成授权

如下图所示:

0元永久授权,ETL调度软件 Taskctl Free应用版

查看原文

赞 0 收藏 0 评论 0

taskctl 发布了文章 · 2020-08-27

什么是ETL?算了,你可能不懂

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

ETL是BI项目重要的一个环节。通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。

ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS (Operational Data Store,操作型数据存储) 中——这个过程也可以做一些数据的清洗和转换,在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。

ETL三个部分中,花费时间最长的是“T”(Transform,清洗、转换) 的部分,一般情况下这部分工作量是整个ETL的2/3。数据的加载一般在数据清洗完了之后直接写入DW (Data Warehousing,数据仓库) 中去。

ETL的实现有多种方法,常用的有三种。一种是借助ETL工具 (如:Oracle的OWB、SQL Server 2000 的 DTS、SQL Server2005 的SSIS服务、Informatic等) 实现,一种是SQL方式实现,另外一种是ETL工具和SQL相结合。

前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。

数据的抽取(Extract)

这一部分需要在调研阶段做大量的工作,首先要搞清楚数据是从几个业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在手工数据,手工数据量有多大,是否存在非结构化的数据等等,当收集完这些信息之后才可以进行数据抽取的设计。

对于与存放DW的数据库系统相同的数据源处理方法

这一类数据源在设计上比较容易。一般情况下,DBMS (SQLServer、Oracle) 都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select 语句直接访问。

对于与DW数据库系统不同的数据源的处理方法

对于这一类数据源,一般情况下也可以通过ODBC的方式建立数据库链接——如SQL Server和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再将这些源系统文件导入到ODS中。另外一种方法是通过程序接口来完成。

对于文件类型数据源(.txt,.xls),可以培训业务人员利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库中抽取。或者还可以借助工具实现。

增量更新的问题

对于数据量大的系统,必须考虑增量抽取。一般情况下,业务系统会记录业务发生的时间,我们可以用来做增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间所有的记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。

数据的清洗转换(Cleaning、Transform)

一般情况下,数据仓库分为ODS、DW两部分。通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODS到DW的过程中转换,进行一些业务规则的计算和聚合。

数据清洗

数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。

不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。

(1)不完整的数据:这一类数据主要是一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。

(2)错误的数据:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。

(3)重复的数据:对于这一类数据——特别是维表中会出现这种情况——将重复数据记录的所有字段导出来,让客户确认并整理。

数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤,是否修正一般要求客户确认,对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快地修正错误,同时也可以做为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉,对于每个过滤规则认真进行验证,并要用户确认。

数据转换

数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。

(1)不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。

(2)数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合

(3)商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。

ETL日志、警告发送

ETL日志

ETL日志分为三类:

一类是执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。

一类是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。

第三类日志是总体日志,只记录ETL开始时间、结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。

记录日志的目的是随时可以知道ETL运行情况,如果出错了,可以知道哪里出错。

警告发送

如果ETL出错了,不仅要形成ETL出错日志,而且要向系统管理员发送警告。发送警告的方式多种,一般常用的就是给系统管理员发送邮件,并附上出错的信息,方便管理员排查错误。

ETL是BI项目的关键部分,也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为BI项目后期开发提供准确与高效的数据。

后记

做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么长时间以来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒数据的过程分成3个步骤,E、T、L分别代表抽取、转换和装载。

其实ETL过程就是数据流动的过程,从不同的数据源流向不同的目标数据。但在数据仓库中,

ETL有几个特点:

一是数据同步,它不是一次性倒完数据就拉到,它是经常性的活动,按照固定周期运行的,甚至现在还有人提出了实时ETL的概念。

二是数据量,一般都是巨大的,值得你将数据流动的过程拆分成E、T和L。

现在有很多成熟的工具提供ETL功能,且不说他们的好坏。从应用角度来说,ETL的过程其实不是非常复杂,这些工具给数据仓库工程带来和很大的便利性,特别是开发的便利和维护的便利。但另一方面,开发人员容易迷失在这些工具中。

举个例子,VB是一种非常简单的语言并且也是非常易用的编程工具,上手特别快,但是真正VB的高手有多少?微软设计的产品通常有个原则是“将使用者当作傻瓜”,在这个原则下,微软的东西确实非常好用,但是对于开发者,如果你自己也将自己当作傻瓜,那就真的傻了。

ETL工具也是一样,这些工具为我们提供图形化界面,让我们将主要的精力放在规则上,以期提高开发效率。从使用效果来说,确实使用这些工具能够非常快速地构建一个job来处理某个数据,不过从整体来看,并不见得他的整体效率会高多少。

问题主要不是出在工具上,而是在设计、开发人员上。他们迷失在工具中,没有去探求ETL的本质。可以说这些工具应用了这么长时间,在这么多项目、环境中应用,它必然有它成功之处,它必定体现了ETL的本质。

如果我们不透过表面这些工具的简单使用去看它背后蕴涵的思想,最终我们作出来的东西也就是一个个独立的job,将他们整合起来仍然有巨大的工作量。大家都知道“理论与实践相结合”,如果在一个领域有所超越,必须要在理论水平上达到一定的高度.

查看原文

赞 0 收藏 0 评论 0

认证与成就

  • 获得 2 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2020-06-10
个人主页被 957 人浏览