ETL作业调度工具TASKCTL

批量作业调度在技术上的两大问题解析

2020-06-16  本文已影响0人  TASKCTL

批量调度技术的应用,能够完成什么样的调度控制核心功能固然重要,但对于使用者来说,我们怎么友好使用也非常重要。其中流程图可视化展示与作业流程的定义功能,可以说是调度使用最为重要的两大场景。很遗憾的是,这两大场景,在实际使用中,普遍都不太理想,业界甚至还出现流程图无用论、作业流定义Excel优先论这样的奇葩观点。这两种重要的应用场景,为什么不理想,为什么有这样的奇葩观点,而背后深层次原因又是什么,我们今天就来逐一探讨探讨。

什么是流程图无用论

客观讲,作业流图的意义十分重大。一图胜千言,整个调度自动化就是围绕作业流关系有序展开的,而作业流图也是软件可视化的重要保证。同时,我们要清楚,流程图的真实目的,是为了能通过一张图,清晰、直观的看到作业之间的前后依赖关系与并发关系。但如果你的像下图一样,你认为有用吗?

图片来自taskctl官网

到处线条交叉、排版也混乱,看起来让人头晕目眩。图是有了,但清晰与直观何在。你可能不会怀疑,图如果都是这样,有等于没有。

但你可能要说,这只是特例,我的流程图不是这样的,我在ETL工具当中的流程图也不是这样的,比这个清晰多了,而且,不清晰也是因为你没画好罢了。的确,你如果采用手工绘图,确实可以把一张图画得更清晰。但是,你能画多大一张图呢,在不断的增删改过程当中,谁能保证排版依然清晰呢?而且,图清不清楚,也不会影响你的调度,在高强度的工作环境下,谁又能保证你会用多少精力认真地绘一张图呢?其次,靠人工绘图的设计方式,作业数少还可以,如果作业数一多,这种方式的效率就变得非常低下。这也是在大作业量的情况下,我们放弃ETL工具自身调度,而去寻求独立专业调度解决方案的主要原因之一。

实际上,作业数少,图形清不清晰意义都不大,因为,就那么几个节点,关系了然于胸,反而是因为批量调度作业多了,客观上我才需要关系清晰的流程图来做指导。但事与愿违,作业数多了,又难以保证清晰,这很纠结,很矛盾。因此,才有业界批量调度流程图无用论的出现。实际上,国内外很多独立专业的批量调度解决方案,追寻实用主义,干脆放弃流程图的表达,补充一个作业血源分析的概念,便于理清作业上下依赖关系。

什么是作业流程设计Excel优先论

作业流程设计,不管你采用什么调度,都是一个绕不开的话题,也是一个高频且最为重要的应用场景。毕竟,你只有通过作业流设计,将需要的调度信息告诉调度软件,它才可以根据你的要求,进行相应的调度。

对于作业(流)的定义与设计方式,整个业界,基本上都采用一种方式,即属性对话框的方式(大数据领域OOZIE除外,它只有xml格式文本,不提供配置对话框)。这种方式,首先将一个作业属性化,比如作业名称,作业实际运行实体(可能是一个shell、etl作业、大数据作业、存储过程或者一段行命令等)以及各种控制参数等,然后通过设计一系列对话框填写这些属性,从而到达作业定义的目的。比如下图:

图片来自taskctl官网

对于这种方式,从理论上没有任何问题,但在实际使用过程当中,特别是在作业数多的情况下,用户发现,在对话框中来回切换,不断点击保存,非常麻烦,干脆设计与之对应的excel表,并直接在excel中填写作业相关属性,然后导入到相应作业定义数据库表当中。这种方式表面看虽然简单粗暴,但比看似专业的属性框来得更简单、更快捷。

这就是所谓的Excel优先论。有很多调度软件,都纷纷推出相应批量(大量)作业设计Excel方案,造成很多用户在实际使用中,只知Excel,而不知原有软件配置为何物。

这两种观点背后的现象,造成业界很多用户很困惑

这两种观点背后的现象,不是所有现象。特别是在作业数少的情况下,不是太明显,但随着作业数的不断增多,这种现象特征越来越明显。但是,用户寻求专业独立调度解决方案,不正是量大了才需要吗,不正是希望专业的软件来解决用户的可管理性吗?要的绝对不仅仅是调度。但偏偏随着作业量越来越大,原本希望的可管理性、易用性、直观性越来越失效。这种难以协调的矛盾确实让用户越来越迷惑。

你想想这样一种场景,当你花了很大的精力去做了一款调度软件,实现了流程图可视化,实现了作业的复杂控制定义。但最后使用时,你的流程图不用了,设计功能不用了,别人更愿意用Excel来设计,你是不是有种强烈的挫败感。如果说你是花重金购买一款软件,在购买之初,销售人员给你演示多么直观的流程图,多么标准的设计功能时,你可能不住地点头,但实际派上用场时,这也不适用,那也不适用,你是不是有种强烈的被欺骗感?

两种困惑的深层次原因

也许,我们都听过一句话,功能有是一会事,但是否适用是另一回事。功能有无很好判断,一目了然。但是否适用,就要放在具体真实的环境当中,亲自检验了才知道。就批量调度的这两种问题,在实际应用场景当中,的确大量存在。那么,我们是否该多多思考一下背后真正的原因,只有认真思考了,才知道这种问题是可以解决的,还是不可避免的。

其实,无论是流图的展示、还是作业定义方式,我们还是可以发现问题的相关规律,那就是作业量越大,问题就变得越突出。从这规律出发,我们是不是很容易想到一个哲学概念--量变到质变。在批量调度技术领域里,我们寻求专业调度解决方案,根本不是解决十个,几十个作业的管理问题,而是要怎么解决成百上千甚至上万作业的问题。对于几个节点的定义与关系图处理,我们很容易想到对话框以及传统拖拽的方式。但针对作业量大的情况,是不是又该换种思路呢?在生活当中,这种例子很多,就像你要讲一个故事给人听,如果是几个人,你可以一个个去讲;如果想讲给几十个人听,你可以把他们召集起来,一次性讲;如果想讲给成千上万的人听,那你就写本书吧。

对于批量调度面对成千上万作业,怎么解决流程图可视化、作业设计的适用性问题,我们在此就不再讨论。你只要想到要换种思路,说不定豁然开朗,脑海中一下呈现更多的方法。我们最怕的就是固定惯性思维,换个角度,风景更好,不是吗?

上一篇下一篇

猜你喜欢

热点阅读