首页 > 企业 > 企业频道厂商稿> 正文

火山引擎DataLeap:支持万级表的数据血缘图谱,是如何实现的?

佚名 整合编辑: 侯宪勇 发布于:2023-03-16 15:56

数据来源广、量级大、场景多,导致数据之间关系变得异常复杂。

经过读取、清洗、存储、计算等一系列流程之后,数据最终汇入指标、报表等服务系统中。但如何对数据溯源、跟踪变化,成为困扰数据研发工程师的难题之一。

数据血缘描述了数据的来源和去向,以及多个处理过程中的转换,是组织内使数据发挥价值的重要基础能力。通过构建数据血缘图谱,可以直接清晰地观察表之间的上、下游依赖关系,甚至是特殊场景下用户关注的表属性,更清晰查看数据链路和统计信息。

但是,要构建清晰、灵活、便利的数据血缘图谱不是易事,特别是在数据量级大的情况下,往往面临层级关系复杂、表任务混乱、分组结构不清楚的问题。

在字节跳动内部,有一套支持万级表血缘的关系展示图谱每天被近万名员工使用,已经沉淀为火山引擎DataLeap“数据地图”能力,并对外输出。通过提供便捷的找数、理解数服务,火山引擎DataLeap大大节省企业内部数据沟通和建设成本。

那么。这套图谱究竟是如何设计和实现的?

首先,抽象用户使用场景和需求。经过内部场景的深度用户调研,火山引擎DataLeap抽象出如下需求:

1. 表血缘关系查看:能从图中清楚浏览用户关注的表上、下游血缘关系,以及场景的表属性。

2. 表血缘链路查看:能清晰查看某个上游/下游表到用户关注表的链路情况。

3. 按关键指标分组查看:例如当表数据发生变更时,分组查看所有下游表的负责人以便通知变更。

4. 筛选关键信息查看:例如用户找数据指标的时候,仅看相关的报表更高效。

其次,在技术选型上,采用 React + Canvas 的混合模式来实现血缘图谱。由于Canvas模拟滚动条研发成本高,与HTML相比,实现结构样式复杂的节点定制较复杂,但结合 React 框架渲染则可以轻松解决以上问题。因此,最终方案为:采用Canvas 居于底部,仅负责画连线;React 负责渲染节点、响应 hover 等交互。

图片1.png

最后,在方案设计和实现上,主要从查看关系的效率和属性完备度两个角度出发,完善以下能力:

● 为了解决数据量大情况下,数据关系不清晰的问题,火山引擎DataLeap支持点击任意节点,则高亮该节点到主节点的链路功能,并在列表顶部增加层级信息和节点统计,让用户能同时查看每个节点细节和节点整体分布。

● 当用户找数、理解数或进行归因分析时,不仅要了解表的上游依赖,更需要理解表的加工逻辑。因此,火山引擎DataLeap在节点连线上新增任务信息,当用户 hover 连线即加粗、高亮并弹出任务信息,并匹配大数据开发平台对应的任务链接,点击即可跳转查看。

● 在筛选功能上,火山引擎DataLeap采用服务端筛选,保证符合要求的数据全量展示。

● 不同职能的用户在不同场景下使用血缘图谱时,关注的节点属性不相同。火山引擎DataLeap血缘图谱上设计了属性展示功能,用户可以勾选自己感兴趣的属性直接显示到图中。

图片2.png

据介绍,火山引擎DataLeap能帮助企业快速完成数据集成、开发、运维、治理、资产、安全等全套数据中台建设,其中数据地图主要提供数据检索、元数据详情查看、数据理解等功能,解决找数难、理解数据难的痛点,同时支持数据专题、血缘图谱、数据发现、库表管理等特色功能。

图片3.png

目前,火山引擎DataLeap的数据地图平台已接入全链路核心元数据,包括LAS、MySQL、ByteHouse CE、ByteHouse CDW、TOS、LasFS、EMR hive等,提供可视化的血缘关系展示能力,帮助用户全面的探查了解数据,支持表、字段级别血缘可视化查询,以及按层级、范围筛选展示,可根据用户需求灵活适配。

佚名

网友评论

聚超值•精选

推荐 手机 笔记本 影像 硬件 家居 商用 企业 出行 未来
二维码 回到顶部