1 .实例DAG介绍了DataLeap是火山发动机自研一站式大数据中台解决方案,是集数据集成、开发、运维、管理、资产管理能力于一身的大数据研发管理工具包。 在平台上,一个核心的功能是任务的调度,根据任务设置的调度频率(月级、日级、小时级等)执行任务,并生成相应的实例。 在数仓研究开发中,不同的表之间存在依存关系,生成表数据的任务实例也存在依存关系。 只有上游实例运行成功,下游实例达到设置的运行时间且资源充足时,下游实例才会开始运行。 因此,在日常的任务运输中,往往需要分析实例上下游的运行情况,并根据情况进行实例成功或重走等操作。 如何明确实例之间的关系,使用户能够快速分析整个链路的运行状况,定位问题并完成运输操作,是实例DAG要解决的问题。 比较一下优化前后的效果吧。 优化前:

在复杂的链路上,所有节点的关系都显示出来,表明连接很混乱。 要查找未运行的上游节点,请拖动&; 必须继续变焦。 优化后:
通过采用集约节点的形式,简洁地展示了上下游关系。 另外,采用实例状态分类的形式,提供快捷操作的按钮,使用户只关注特定状态的实例,减少了不必要的信息对用户运维操作的干扰。 详细介绍了优化的总体过程。
1.1概念
任务:在DataLeap数据开发平台上对数据执行一系列操作的定义。 实例:根据任务配置的执行频率(例如,月级别或日级别)创建的任务快照。 DAG :均称为Directed Acyclic Graph,指有向无环图,具有严密的拓扑性质,具有较强的过程表达能力。 DAG布局:一种基于有向图中边的方向自动计算节点级别和位置的布局算法。 1.2以业务场景中的一个场景为例,通过分析任务test_3在2022-09-29的实例可以看出。 当前实例未运行是因为上游任务test_2在2022-09-29的实例上执行失败。 在这种情况下,您可以联系上游实例对应任务的负责人来处理该实例。 这包括但不限于重新运行、设置成功等操作。
2 .问题在当前实例DAG图中,用户在实际使用中会遇到以下问题:
无法渲染复杂的实例DAG贴图。 在某些业务方向上,DAG地图会显示数千个节点。 由于数据处理的复杂性和采用svg的渲染方案,前端浏览器经常崩溃。 同级节点过多,操作困难。 以下示例显示了分析的上游实例中,如果没有哪个实例正在运行,当前实例没有运行,则必须连续拖动才能定位到感兴趣的上游实例。 3 .看节点依赖,只能不断展开,如果展开不同的上游依赖,图的展示就会混乱。
3 .需求分析在用户调查和使用过程中,发现在使用DAG进行分析时,主要有以下场景:
当前实例已达到指定的运行时间,但尚未运行。 在这种情况下,用户关注未在上游运行的实例/运行失败的实例,并联系上游实例的负责人定位问题。 实例已成功运行,但完成时间晚于正常时间。 在这种情况下,用户关注的是上游实例中最晚完成的实例。 确定是否优化链路治理。 实例执行失败,下游未执行。 在这种情况下,用户必须关注所有依赖于当前实例的下游实例,并对下游实例进行聚合过滤,如任务优先级(表示任务的核心级别),以便通知下游实例重新启动等操作。 结合上述问题,可以得出主要原因,因为对于复杂的链路,很难满足上述需求。 由于旧版本的DAG在简单链路和复杂链路上具有一致性,因此需要设计解决复杂链路的方案。
4 .功能设计针对上述问题和需求的分析,可以进行以下功能的实现和设计:
4.1替换渲染方案将svg渲染方案替换为canvas渲染,通过减少页面中的DOM数量来提高前端渲染性能。
4.2不同场景的功能设计通过上述需求分析,设计了不同的功能模式以满足不同的需求。
4.2.1公共模式公共模式下,用户关注节点上下游的关系,通过复杂的链路快速找到阻塞节点,同时关注阻塞节点的信息。 针对复杂的链路,设计了几种优化形式。 首先,当同一层次结构中的节点超过一定数量(可自定义)时,将聚合所有节点。 这称为聚合节点。 通过这种优化,可以解决同层节点过多,不便查找特定状态节点的上述问题。 它还支持单击聚合详细信息以显示列表形式聚合的所有节点。 支持过滤,通过快速找到并展开感兴趣的节点,恢复与当前节点的依赖关系。
接着,根据用户最关注的实例的状态对汇总的节点进行分类,追加快捷方式展开操作。 下图显示了当前实例等待上游相关完成的状态。 在这种情况下,用户关注的是上游没有开始执行的节点。 在聚合节点中,可以清楚地看到存在实例,并且正在等待执行。 单击数字1可以快速展开实例。 在本例中,将不应该关注的上游成功节点隐藏在列表中,强调应该关注的重要信息。
另外,为了减少节点显示过多而使图显示杂乱的情况,添加了存储功能和跳转功能。 关闭功能是指,通过在集约节点中展开的节点时,以及直接展开上下游时,支持对某个上游/下游节点的链接整体的关闭,从而在用户浏览1个链接后,恢复图的前一状态,继续浏览下一个链接
跳转功能是显示当前节点上游的其他下游或下游的其他上游,用户关注的节点已经转换为其他上游/下游节点。 因此,以跳转到新页面的形式,区分应该关注的不同节点的上下游信息,减少在一张图上显示所有信息。
另外,由于图中节点承载信息的能力有限,点击节点后,与所选实例相关的信息、属性、日志等出现在下方,支持用户的运输任务。
4.2.2统计模式统计模式下,用户关注依赖于当前节点的下游节点,下游节点可以直接分为下游和所有下游。 因此,设计了层次模式和连接模式,在这两种模式中,可以根据任务属性(任务类型/实例状态/负责人等)对维度进行分组。 分层模式:
合并模式:
4.2.3链接模式指定上游节点,单击显示指定节点与当前节点的链接信息,进行精确的链接分析。
5.1技术实现5.1数据处理在原始数据中以一个数组的形式返回节点信息和依赖关系。 因此,需要处理数据并制作图表所需的数据,同时利用多个map存储数据,便于以后检索数据,减少时间的复杂性。
5.2自定义节点注册实例节点的样式必须使用基本图元Text (文本) Rect (矩形) Icon )图标)进行组合以满足设计要求。
5.3图预处理如上所述,我们在复杂的图场景中,需要聚合一定数量以上的同层节点,目的是清晰直观地传递图想要表达的信息,因此需要对图的层次和节点进行处理,生成聚合节点,去除多余的节点
5.4 DAG图的布局通常,DAG的布局可以通过以下步骤实现。
脱环:包括自环和非自环,为节点分层做准备。 节点分层:在所有节点上放置适当的分层结构。 节点排序:对同一级别中的节点进行排序,减少相邻级别中节点连续的交点数量。 节点坐标指定:根据层次节点和同层次节点的排序计算节点的位置。 另一方面,在我们的方案中,节点的层次有明确的含义。 例如,如果节点a位于节点b的上层,且a、b之间有链路连接,则认为a是b的上层节点。 因此,它与传统的DAG布局有以下不同,需要根据场景进行定制:
节点的层次是固定的。 DAG布局可以支持自动计算层次结构,也可以直接指定节点层次结构。 可能会发生相同级别的连接。 可以将连接位于同一级别的节点分组,在内部进行排序,然后整体参与当前级别的排序,从而减少交叉点的数量。 6 .总结在功能设计上,需要从用户的使用场景出发,区分不同的功能以满足用户的诉求。 另外,在前端领域,针对大数据量的场景,需要判断这些大数据量的展示是否对用户有价值,从大数据量中提取用户的关注点并加以强调,使用户能够快速查看和分析。 从技术实现出发,我们需要结合业务,根据业务特点修改现有DAG布局的实现,满足在不同业务场景下向用户呈现更好的信息。 当然,目前的功能设计也有不足之处。 当前的上游审核分析功能在数据库查询中存在瓶颈,因此只能分析一层的上游。 然后优化查询性能后,一键即可直接找到有问题的根节点,降低用户操作成本,提高分析效率。
7 .参考Dag布局流程参考: Sugiyama、Tagawa、Toda、et al . ' methodsforvisualunderstandingofhierarchicalsystemstructures '链接: http://media.wix.com/ugd/6 cbb0c _ 289 d 09 ca 219 C4 c9A8 df5 BF 05 c 16214 DC.pdfdag算法主体: Gansner,et al . “atechniquefordrawingdirectedgraphs”链接: https://www.researchgate.net/profile/em den-gans ner/publication/387542 links/5c0Abd 024585157 ac1b 04523/a-technique-for-drawing-directed-graphs.pdf8.我火山发动机大数据开发管理工具包DataLeap一站式管理
王者荣耀和小兵互动是七周年的一个活动玩法,想要完成和小兵互动领取加星卡,那么就要按照下面主编提供的方法去
文章导读:现在哪个仙侠手游好?主编今天来给大家推荐一些治愈唯美的手游吧,现在哪个仙侠手游好的推荐,相信有很对
我的世界冰火传说沙蚁螫针剑怎么做很多玩家不知道,冰火传说有很多非常好用的道具武器,沙蚁螫针剑对于其他生物
在《三角战略(TRIANGLE STRATEGY)》中,安娜的定位是刺客/切后排/控制/残局收割,非常强悍的女刺客,可以在单挑敌人
在《三角战略(TRIANGLE STRATEGY)》中,强盗头子的定位是战士/坦克/前排/盗贼,特色偷道具,机动中规中矩,数值方面还
在《三角战略(TRIANGLE STRATEGY)》中,王女-科迪莉亚是第15章选择帮助王子清除残党,特色是拥有诸多强大的恢复技
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25
时间:2022-12-25