共计 1833 个字符,预计需要花费 5 分钟才能阅读完成。
前言: 大数据畛域对多种工作都有调度需要,以离线数仓的工作利用最多,许多团队在调研开源产品后,抉择 Apache DolphinScheduler(以下简称 DS)作为调度场景的技术选型。得益于 DS 优良的个性,在对数仓工作做运维和治理的时候,往往比拟随便,或将所有工作节点写到一个工作流里,或将每个逻辑节点独自定义一个工作流,短少与数仓建模对应的工作治理标准;
这造成了数据管理艰难和异样容错繁琐等痛点,本文基于数仓建模规范的方法论,构建一套用于 DS 治理数仓工作的标准,防止以上痛点。
海豚调度数仓工作现状剖析
本文缘起社区负责人的痛点定位;在应用 DS 做数仓工作治理时,数据建模分层落地到调度上短少标准,社区用户用起来比拟乱,基于这个起因,写了这篇文章。
在应用调度能力的时候,一些常见的场景如下:
一个工作流构建数仓所有的逻辑节点
Apache DolphinScheduler 里有工作血统的概念,这个概念和数据血统有许多相似的中央;在构建调度工作的时候,用户容易将工作血统和数据血统混同,心愿在构建数仓生命周期的时候,通过工作血统呈现出数据血统的关系,这导致失落了数据建模标准的分层治理。
相似例子如下:
单个工作流:
蕴含所有计算逻辑:
长处:这样做的益处是能够在一个工作流里直观的复现数据建模;
毛病:对于数据管理艰难,只能人为的察看定位数据状况;
工作运行异样后,容错艰难,要排查所有逻辑节点,并将计算逻辑回滚,这是特地繁琐的过程;
每个逻辑节点构建一个工作流
除了将整个数仓的逻辑包装到一个工作流,还有另外一种形式:将每个逻辑节点包装成一个工作流;这种能很好的将计算逻辑解耦,工作运行异样的时候逻辑回归也清晰简略;然而仍旧没有做到正当的数仓建模分层治理,且操作繁琐,面对超大量工作时,创立工作流将成为一种累赘。
相似例子如下:
长处:优良的异样容错,工作出现异常计算的时候,前后工作逻辑就能异样回滚重跑;
毛病:工作流创立繁琐,且没有做好数仓标准的数据分层治理。
数仓工作治理调度 需要剖析
从数仓的视角,任务调度外围需要是:工作类型、依赖关系、定时调度、工作优先级,以及数仓分层治理,层级依赖(调度零碎的视角,还有高可用、告警、资源管理、用户平安、易用性、可扩大等能力)。
工作类型、依赖关系、定时调度、工作优先级是零碎提供的能力,数仓分层治理和层级依赖是调度能力之上的工作治理标准。这里参考数据建模标准构建与之对应的工作治理标准。
数据建模架构如下:
数据建模到数仓开发过程中须要关注 4 点:
- 逻辑开发:数据需要的实现;
- 数据管理:各层级数据划分;
- 开发依赖:数据层级依赖实现;
- 异样容错:异样工作定位和数据还原重跑。
构建在调度零碎之上的数仓工作编排标准,须要满足以上要求。
数仓开发工作治理标准
为了和数据建模标准保持一致,咱们依照数据建模的分层实践,设计调度工作的编排标准。
从顶层设计上将工作流定义为 3 类:
- 数仓分层工作流:ODS、DIM、DW、ADS 每层一个工作流;DW 层能够依据业务需要,细分出三个 DWD、DWM、DWS 等好实现业务需要的独自工作流治理;
- 数仓工作 Master 管理工作流:将数仓分层,依照开发依赖串联到一个工作流中对立治理;
- 异样容错工作流:数仓运行过程中,中途出错或者后果异样,须要数据环境还原,就能够将两头表清理逻辑包装在异样容错工作流,做对立数据清理,而后再从头跑数仓工作。
数仓开发工作流标准如下:
数仓每层工作流只关注每层的逻辑;以 ODS 层为例,该层提供多个数据利用方数据反对,所以在这个工作工作流里,构建这一层的所有逻辑节点:
运行工作治理 Master 工作流,节点布局标准如下:
异样容错工作流:
这一个工作流,次要是为了在工作运行异样时,删除两头表计算的新增后果;
根据数据模型的表设计,想将 DS 的工作血统当简略数据血统应用需要的,能够在这一个工作流里将节点关联,数据清理和工作血统不抵触,还能够顺便检测数据清理状况。
结语
除此之外,数仓还有一些部分概念须要在工作编排上做标准,比方须要将 DS 我的项目和数仓映射,一个 DS 项目管理一个数仓;须要将数据集市和工作流映射,ADS 层有多种数据利用场景就拆分成多个工作流等;本文的标准是以数仓规范数据模型构建的,如果有非凡需要,能够在这个工作治理标准根底上做相应调整。
如果这份博客对大家有帮忙,心愿各位给 i7 杨一个收费的点赞👍作为激励,并评论珍藏一下⭐,谢谢大家!!!
制作不易,如果大家有什么疑难或给 i7 杨的意见,欢送评论区留言。
本文由 白鲸开源科技 提供公布反对!