Apache DolphinScheduler数仓任务管理规范

这篇具有很好参考价值的文章主要介绍了Apache DolphinScheduler数仓任务管理规范。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言: 大数据领域对多种任务都有调度需求,以离线数仓的任务应用最多,许多团队在调研开源产品后,选择Apache DolphinScheduler(以下简称DS)作为调度场景的技术选型。得益于DS优秀的特性,在对数仓任务做运维和管理的时候,往往比较随意,或将所有任务节点写到一个工作流里,或将每个逻辑节点单独定义一个工作流, 缺少与数仓建模对应的任务管理规范;

这造成了数据管理困难和异常容错繁琐等痛点,本文基于数仓建模标准的方法论,构建一套用于DS管理数仓任务的规范,避免以上痛点。

海豚调度数仓任务现状分析

本文缘起社区负责人的痛点定位;在使用DS做数仓任务管理时,数据建模分层落地到调度上缺少规范,社区用户用起来比较乱,基于这个原因,写了这篇文章。

在使用调度能力的时候,一些常见的场景如下:

一个任务流构建数仓所有的逻辑节点

Apache DolphinScheduler里有任务血缘的概念,这个概念和数据血缘有许多类似的地方;在构建调度任务的时候,用户容易将任务血缘和数据血缘混淆,希望在构建数仓生命周期的时候,通过任务血缘呈现出数据血缘的关系,这导致丢失了数据建模规范的分层管理。

类似例子如下:

单个工作流:

包含所有计算逻辑:

优点:这样做的好处是可以在一个工作流里直观的复现数据建模;

缺点:对于数据管理困难,只能人为的观察定位数据情况;

任务运行异常后,容错困难,要排查所有逻辑节点,并将计算逻辑回滚,这是特别繁琐的过程;

每个逻辑节点构建一个任务流

除了将整个数仓的逻辑包装到一个工作流,还有另外一种方式:将每个逻辑节点包装成一个工作流;这种能很好的将计算逻辑解耦,任务运行异常的时候逻辑回归也清晰简单;但是依旧没有做到合理的数仓建模分层管理,且操作繁琐,面对超大量任务时,创建工作流将成为一种负担。

类似例子如下:

优点:优秀的异常容错,任务出现异常计算的时候,前后任务逻辑就能异常回滚重跑;

缺点:任务流创建繁琐,且没有做好数仓规范的数据分层管理。

数仓任务管理调度****需求分析

从数仓的视角,任务调度核心需求是:任务类型、依赖关系、定时调度、任务优先级,以及数仓分层管理,层级依赖(调度系统的视角,还有高可用、告警、资源管理、用户安全、易用性、可扩展等能力)。

任务类型、依赖关系、定时调度、任务优先级是系统提供的能力,数仓分层管理和层级依赖是调度能力之上的任务管理规范。这里参考数据建模规范构建与之对应的任务管理规范。

数据建模架构如下:

数据建模到数仓开发过程中需要关注4点:

  1. 逻辑开发:数据需求的实现;

  2. 数据管理:各层级数据划分;

  3. 开发依赖:数据层级依赖实现;

  4. 异常容错:异常任务定位和数据复原重跑。

构建在调度系统之上的数仓任务编排规范,需要满足以上要求。

数仓开发任务管理规范

为了和数据建模规范保持一致,我们按照数据建模的分层理论,设计调度任务的编排规范。

从顶层设计上将工作流定义为3类:

  • 数仓分层工作流:ODS、DIM、DW、ADS每层一个工作流;DW层可以根据业务需求,细分出三个DWD、DWM、DWS等好实现业务需求的单独任务流管理;

  • 数仓任务Master管理工作流:将数仓分层,按照开发依赖串联到一个工作流中统一管理;

  • 异常容错工作流:数仓运行过程中,中途出错或者结果异常,需要数据环境复原,就可以将中间表清理逻辑包装在异常容错工作流,做统一数据清理,然后再从头跑数仓任务。

数仓开发工作流规范如下:

数仓每层工作流只关注每层的逻辑;以ODS层为例,该层提供多个数据应用方数据支持,所以在这个任务工作流里,构建这一层的所有逻辑节点:

运行任务管理Master工作流,节点布局规范如下:

异常容错工作流:

这一个工作流,主要是为了在任务运行异常时,删除中间表计算的新增结果;

依据数据模型的表设计,想将DS的任务血缘当简单数据血缘使用需求的,可以在这一个工作流里将节点关联,数据清理和任务血缘不冲突,还可以顺便检测数据清理情况。

结语

除此之外,数仓还有一些局部概念需要在任务编排上做规范,比如需要将DS项目和数仓映射,一个DS项目管理一个数仓;需要将数据集市和工作流映射,ADS层有多种数据应用场景就拆分成多个工作流等;本文的规范是以数仓标准数据模型构建的,如果有特殊需求,可以在这个任务管理规范基础上做相应调整。

如果这份博客对大家有帮助,希望各位给i7杨一个免费的点赞👍作为鼓励,并评论收藏一下⭐,谢谢大家!!!

制作不易,如果大家有什么疑问或给i7杨的意见,欢迎评论区留言。
本文由 白鲸开源 提供发布支持!文章来源地址https://www.toymoban.com/news/detail-827068.html

到了这里,关于Apache DolphinScheduler数仓任务管理规范的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 分支管理及规范

    1. 分支管理 代码提交在应该提交的分支 随时可以切换到线上稳定版本代码 多个版本的开发工作同时进行 2. 提交记录的可读性 准确的提交描述,具备可检索性 合理的提交范围,避免一个功能就一笔提交 分支间的合并保有提交历史,且合并后结果清晰明了 避免出现过多的分

    2024年02月15日
    浏览(27)
  • 新能源动力电池安全存放管理规范

    存放信息确认 电池存放方应向电池托运方获取动力电池运输需求信息单,信息单上至少应包括电池编码、电池类 型、电池SOC(电池荷电状态)、规格尺寸、电池数量、电池来源、电池去向企业等信息,保留信息单 三年备查。如属于故障电池包,还应包括电池包故障等级、故

    2024年02月07日
    浏览(47)
  • 如何保证测试质量之Bug管理规范及流程

    目录 Bug 属性规范及流程  1 1.   目的  2 2.   范围  3 3.   工具  3 4.   角色和职责  3 5.   Bug 属性定义  3 5.1 . bug 类型  4 5.2 . bug 严重性  4 5.3   bug 优先级  5 6.   Bug 管理流程  6 6.1 提交 bug  6 6.2 分配 bug  6 6.3 解决 bug  7 6.4 验证 bug  7 6.5 遗留 bug  7 6.5.1 跟踪遗留 bug  

    2023年04月13日
    浏览(25)
  • 前端开发规范(二)-Git分支管理及命名

    Git 是目前最流行的源代码管理工具。为规范开发,保持代码提交记录以及 git分支结构清晰,方便后续维护,总结了如下规范。 Git主分支(保留分支):master、dev 主要分支:Master和Dev。前者用于正式发布,后者用于日常开发。 Git辅助分支(临时分支):feature、release、fix 除

    2024年02月16日
    浏览(29)
  • 电子作业票如何实现特殊作业审批规范管理?

    电子作业票系统是针对传统作业许可管理存在的问题和缺陷,结合物联网、云计算和大数据等新一代信息技术,以企业作业安全为主线,现场作业与安全监控相结合,通过识别、分析与控制非常规作业过程中的危险及隐患,智能化调度和协调相关区域作业,直观显示属地作业

    2024年02月13日
    浏览(30)
  • 如何规范综合布线光纤跳线管理的具体事项

    光纤跳线概念 光纤跳线用来做从设备到光纤布线链路的跳接线。有较厚的保护层,一般用在光端机和终端盒之间的连接。 对于综合布线来说,电信间及设备间是数据、语音、图像三类业务的汇聚地,其重要性不言而喻。但是对于它们的整体设计、设备定型、硬件配置、施工

    2024年02月07日
    浏览(26)
  • 采购仪器预约管理系统开发规范,石油管螺纹刀具

    一、主机(仪器预约管理系统) 1、成员目录 1.1采用中心授权管理,具备统一身份验证后台,实现校园数字化单点登录,一次性取得人员信息,无需二次注册。 1.2人员归属于课题组,经课题组管理员审核后激活用户,课题组负责人可自行添加本课题组用户。 1.3可以随时查看

    2024年02月06日
    浏览(30)
  • Git 的标准提交规范(Conventional Commits)& Git 分支管理

    其中,type 表示本次提交的类型,应该从以下几个类型中选择: feat:新功能 fix:修复问题 docs:文档更新 style:代码风格更新 refactor:重构代码 test:增加测试用例 chore:修改项目配置 [optional scope] 表示本次提交的影响范围,可以根据需要添加。 表示本次提交的描述信息,应

    2024年02月09日
    浏览(37)
  • Git 与 Maven:企业级版本管理与版本控制规范设计

    当今,许多开发人员熟悉 GitFlow 工作流程,但往往忽略了 GitFlow 如何与 Maven 版本控制结合,尤其是在管理 snapshot 和 release 版本时的最佳实践。本文旨在整合 GitFlow 工作流程与 Maven 版本管理,提出一个统一的企业级规范,以供开发人员参考。 GitFlow 是一种流行的分支管理模型

    2024年02月04日
    浏览(37)
  • OCP NVME SSD规范解读-3.NVMe管理命令-part1

    4.4 NVMe Admin Command Set章节详细介绍了设备应支持的NVMe管理命令集,包括必需的和可选的命令。以下是一些关键要求和描述: NVMe-AD-2:识别命令除了支持所有必需的CNS值和相关的必需字段外,还应支持以下可选字段: 格式进度指示器(FPI),更新粒度为1%。 I/O性能和耐久性提

    2024年02月04日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包