图片来自taskctl官网
到处线条交叉、排版也混乱,看起来让人头晕目眩。图是有了,但清晰与直观何在。你可能不会怀疑,图如果都是这样,有等于没有。
但你可能要说,这只是特例,我的流程图不是这样的,我在ETL工具当中的流程图也不是这样的,比这个清晰多了,而且,不清晰也是因为你没画好罢了。的确,你如果采用手工绘图,确实可以把一张图画得更清晰。但是,你能画多大一张图呢,在不断的增删改过程当中,谁能保证排版依然清晰呢?而且,图清不清楚,也不会影响你的调度,在高强度的工作环境下,谁又能保证你会用多少精力认真地绘一张图呢?其次,靠人工绘图的设计方式,作业数少还可以,如果作业数一多,这种方式的效率就变得非常低下。这也是在大作业量的情况下,我们放弃ETL工具自身调度,而去寻求独立专业调度解决方案的主要原因之一。
实际上,作业数少,图形清不清晰意义都不大,因为,就那么几个节点,关系了然于胸,反而是因为批量调度作业多了,客观上我才需要关系清晰的流程图来做指导。但事与愿违,作业数多了,又难以保证清晰,这很纠结,很矛盾。因此,才有业界批量调度流程图无用论的出现。实际上,国内外很多独立专业的批量调度解决方案,追寻实用主义,干脆放弃流程图的表达,补充一个作业血源分析的概念,便于理清作业上下依赖关系。
什么是作业流程设计Excel优先论
作业流程设计,不管你采用什么调度,都是一个绕不开的话题,也是一个高频且最为重要的应用场景。毕竟,你只有通过作业流设计,将需要的调度信息告诉调度软件,它才可以根据你的要求,进行相应的调度。
对于作业(流)的定义与设计方式,整个业界,基本上都采用一种方式,即属性对话框的方式(大数据领域OOZIE除外,它只有xml格式文本,不提供配置对话框)。这种方式,首先将一个作业属性化,比如作业名称,作业实际运行实体(可能是一个shell、etl作业、大数据作业、存储过程或者一段行命令等)以及各种控制参数等,然后通过设计一系列对话框填写这些属性,从而到达作业定义的目的。比如下图: