DAG:全称为 Directed Acyclic Graph,指有向无环图,具备严密的拓扑性质,有很强的流程表达能力。
DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成、开发、运维、治理、资产管理能力于一身的大数据研发治理套件。在平台中,一个核心的功能为任务的调度,会根据任务设置的调度频率(月级,日级,小时级等)运行任务,从而生成对应的实例。
在数仓研发中,不同的表之间会存在依赖关系,而产生表数据的任务实例,也会因此存在依赖关系。只有在上游实例运行成功、下游实例到达设定的运行时间且资源充足的情况下,下游实例才会开始执行。所以,在日常的任务运维中,常常需要分析实例上下游的运行情况,根据具体的情况对实例进行置成功、重跑等操作。
而如何清晰地展示实例之间的关系,帮助用户快速地分析整个链路的运行情况,并完成问题定位和运维操作,则是实例 DAG 需要解决的问题。下面对比下优化前后的效果。
优化前:
可以看到在复杂链路中,将所有节点的关系全部展示出来,导致连线混乱,需要通过不停的拖拽、缩放,才能找到没有执行的上游节点。
优化后:
通过采用了将节点聚合的形式,简洁地展示上下游关系。同时,采用了将实例状态进行分类的形式,提供快捷操作的按钮,让用户可以只关注特定状态的实例,减少了无用信息对用户运维操作的干扰。
这里会涉及如下概念:
  1. 任务:在 火山引擎DataLeap 数据研发平台中,对数据执行一系列操作的定义。
  2. 实例:通过任务配置的执行频率(月级、天级等)而创建的一个任务的快照。
  3. DAG 布局:指根据有向无环图中边的方向,自动计算节点层级和位置的布局算法。
 
在当前的实例 DAG 图中,用户在实际使用中会碰到如下问题:
  1. 复杂的实例 DAG 图无法渲染。
      在一些业务方向中,会出现 DAG 图中有几千节点。由于数据处理的复杂和采用了 svg 的渲染方案,常常会导致前端浏览器的崩溃。
  2. 同层级节点过多,操作困难。
      以下图为例,在分析上游实例中,是哪个实例没有运行,导致当前实例没有执行时,需要通过连续拖拽,才能定位到关注的上游实例。
  3. 查看节点依赖时,只能不断展开,在对不同的上游依赖进行展开时,会导致图展示混乱。
 
在通过用户调研及使用过程中发现,使用 DAG 进行分析时主要有以下场景:
  1. 当前实例已经到达指定运行时间,但是没有运行。
      在这种情况下,用户关注的是上游没有运行的实例 / 运行失败的实例,联系上游实例的责任人进行问题定位。
  2. 当实例已经运行成功,但是完成时间比正常情况下有延迟。
      在这种情况下,用户关注的是上游实例中,最晚完成的实例。从而判断是否对链路进行治理优化。
  3. 当实例运行失败,导致下游没有运行。
      在这种情况下,用户关注的是依赖当前实例的所有下游实例,同时需要对下游实例进行聚合筛选,比如任务的优先级(代表任务的核心程度),以通知下游实例进行重跑等操作。
结合上面存在的问题可得到,主要原因是由于在复杂链路情况下,上述需求比较难满足。而在旧版的 DAG 中,针对简单链路和复杂链路的处理是一致的,为此,需要设计解决复杂链路场景下的方案。

火山引擎DataLeap数据调度实例的 DAG 优化方案 (一):问题与需求分析的更多相关文章

  1. 火山引擎DataLeap数据调度实例的 DAG 优化方案

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成.开发.运维.治理.资产管理能力 ...

  2. 火山引擎 DataLeap:揭秘字节跳动数据血缘架构演进之路

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...

  3. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  4. 火山引擎 DataLeap:一家企业,数据体系要怎么搭建?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 导读:经过十多年的发展,数据治理在传统行业以及新兴互联网公司都已经产生落地实践.字节跳动也在探索一种分布式的数据治 ...

  5. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...

  6. 火山引擎 DataLeap 的 Data Catalog 系统公有云实践

      Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景.本篇内容源自于火山引擎大数据研发治理套件 DataLeap 中的 Data Ca ...

  7. 大数据量数据库设计与优化方案(SQL优化)

    转自:http://blog.sina.com.cn/s/blog_6c0541d50102wxen.html 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的 ...

  8. 8月Meetup | “数据调度+分析引擎”解锁企业数字化转型之路

    ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选)   大数据是一种规模大到在获取.存储.管理.分析方面大大超出了传统数据库软件工具能力范围的数据集合,而大数据作为企业运转的基础,只有经过提 ...

  9. DataLeap 数据资产实战:如何实现存储优化?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 DataLeap 作为一站式数据中台套件,汇集了字节内部多年积累的数据集成.开发.运维.治理.资产.安全等全 ...

  10. JuiceFS 在火山引擎边缘计算的应用实践

    火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...

随机推荐

  1. JavaScript(ES6):变量的解构赋值

    解构赋值定义: 允许按照一定模式从数组或对象中提取值,然后对变量进行赋值. 数组的解构赋值 注:数组的元素要一次排序的,变量的值由他的位置决定. 基本用法 // ES6 解构赋值 let [a, b, ...

  2. 滚动更新和回滚部署在 Kubernetes 中的工作原理

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 在过去的几年中,Kubernetes 在生产环境中被广泛使用,它通过其声明式 API 提供了大量解决方案,用于编排容器. ...

  3. Reflect API:每个 JavaScript 开发人员都需要的瑞士军刀

    前言 您是否曾经希望拥有一个神奇的工具包,可以让您像超级英雄一样控制 JavaScript 对象?向ReflectAPI 打个招呼吧,它是 ES6 中引入的一个新的全局对象 ,它能够处理简单的代码操作 ...

  4. Linux机器在命令行操作时开启/关闭代理

    命令行操作时,如果需要连接通过代理才能访问的地址,可以通过配置当前shell的配置文件来手动开启/关闭代理 注意:代理只对当前用户当前shell生效,切换用户或者重新连接需要重新开启代理 修改当前用户 ...

  5. 🔥🔥通过访问URL地址,5分钟内渗透你的网站!很刑很可拷!

    今天我来带大家简单渗透一个小破站,通过这个案例,让你深入了解为什么很多公司都需要紧急修复各个中间件的漏洞以及进行URL解析拦截等重要操作.这些措施的目的是为了保护网站和系统的安全性.如果不及时升级和修 ...

  6. 运维初级实践——Linux系统命令教程

    区块链运维工程师在Linux环境中常用的命令.快捷键,以及安装软件和文件管理的最佳实践. 1. 常用Linux命令 1.1 文件和目录操作 ls:列出目录内容 cd:更改目录 mkdir:创建新目录 ...

  7. JAVAweek7

    本周学习[函数][数组] 什么是函数: 函数就是定义在类中的具有特定功能的一段独立小程序.函数也称为方法. 函数的格式: ·修饰符 返回值类型 函数名(参数类型 形式参数) { 执行语句: retur ...

  8. 【Javaweb】瑞吉外卖你冲不冲?冲冲!冲!冲冲!(数据库环境搭建)(maven项目搭建)一

    图形界面创建数据库(Navicat) 命令行方式创建 瑞吉项目一共涉及到十一张表 导入表结构,既可以使用上面的图形界面,也可以使用MySQL命令: 通过命令导入表结构时,注意sql文件不要放在中文目录 ...

  9. @Async实现异步任务

    1.@Async是SpringBoot自带的一个执行步任务注解 @EnableAsync // 开启异步 @SpringBootApplication public class Application ...

  10. 微服务项目-小Q视频网

    1.后台管理系统(更新中...) (1)讲师列表 (2)添加讲师 (3)导入课程分类 (4)课程分类列表 其他功能就不一一截图了,后台详细功能如下 2.前台会员系统(更新中...) (1)前台的技术栈 ...