摘要:数据治理中常常要遇表或者字段级“血统剖析”和“影响剖析”,然而真正在数据 ETL 调度操作过程中应用影响和血统剖析频繁,看白鲸开源的 WhaleStudio 如何解决这个难题。
提到“血统剖析”和“影响剖析”,一般开发者第一印象就是数据治理当中的表剖析或者字段级剖析,用于剖析表某一个字段或者某一个指标呈现问题的时候数据品质的溯源。这是一个十分广泛的性能,然而发现数据品质有问题的表之后,如何解决呢?肯定会回到数据处理系统当中进行重跑或者批改跑解决相干的数据,而哪些作业波及到这个表的数据处理呢?这其实就须要用到调度零碎中的“血统剖析”和“影响剖析”了。
所以,咱们往往说,数据治理的“血统剖析”和“影响剖析”是给业务人员和数据分析师应用的,而数据调度中的“血统剖析”和“影响剖析”是给数据工程师应用的。
在白鲸开源的 WhaleScheduler 2.4.6 版本当中提供的“血统剖析”和“影响剖析”就充分考虑到这一点。同时,大家晓得 WhaleScheduler 是白鲸开源次要保护的 Apache DolphinScheduler 的商业版本,它继承了开源 DolphinScheduler 弱小的工作流和任务调度体系。其中有两种简单的工作类型,依赖(Dependent)和子工作流(SubWorkflow):
- 依赖工作(Dependent):在一个工作流(Workflow)当中,能够跨我的项目依赖另外的另外一个工作流的实现或者另外一个工作的实现。同时,这种依赖能够反对简单依赖关系,例如,日依赖 24 个小时工作,月依赖 31 个日工作,几个工作之间存在与或非的各种关系等。
- 子工作流工作(SubWorkflow):顾名思义就是一个工作能够间接援用另外的我的项目中的一个工作流成为一个子工作,并且能够把当前工作流当中的变量和状况,间接传递给另外一个工作流当中。
这两个工作类型对于调度零碎的灵活性十分重要,也失去了开源社区的宽泛应用。不过对于工作流的“血统剖析”和“影响剖析”则是复杂性十分高。因为这意味着,通过这两个工作,一个工作流能够有限的扩大到其它工作流和工作之间的关系,而其它工作波及到的工作流又可能依赖更多的其它工作或者有其余子工作流,所以,调度零碎中整体的“血统剖析”和“影响剖析”是比数据治理中的简单的多的。
而调度的“血统剖析”和“影响剖析”实用性和应用频繁度也是比数据治理中的频繁得多, 因为工作流和工作每天都要跑,如果出错,解决的时候都要看下这个工作的上下游,从而进行更好的运行态的解决。所以,白鲸开源在设计调度零碎的“血统剖析”和“影响剖析”时不仅仅提供一个动态的模板级别工作流设计外面的依赖和影响,更是能够针对工作流实例和工作实例来进行运行态中的“血统剖析”和“影响剖析”,同时运行用户间接在剖析的 DAG 图中,依据实例的状态间接邮件就行运行操作,从而真正帮忙到数据工程师进步调试和运维效率。当然因为 DolphinScheduler 外围十分弱小,反对有限子工作和依赖(目前在白鲸开源的商业客户中已有嵌套 20 层的客户),WhaleScheduler 默认会开展高低 5 层 Workflow 的依赖和影响剖析,用户能够自行上钻和下钻到本人须要的节点。
在企业真正应用过程当中,个别一个工作都解决一个表,而工作命名往往也和指标表命名相似,例如,表明 DWD_Customer_Info,那么工作名称就是 t_DWD_Customer_Info,所以,在表级别数据品质自身呈现问题的时候,也能够利用工作的血统剖析来剖析表技术品质,同时利用 WhaleScheduler 弱小的运行态治理来工作重跑、工作流重跑、补数、依赖链重跑等多种形式快捷不便的实现数据问题的整顿。
综上,调度也须要“血统剖析”和“影响剖析”,而且应用频次和不便水平更间接关系到数据工程师的“幸福指数”,到底无论是 DolphinScheduler 还是白鲸开源的 WhaleScheduler,咱们的指标都是让数据工程师们 “工具选的好,上班回家早;调度用的对,中午安心睡”!
本文由 白鲸开源科技 提供公布反对!