有做数据治理的伙伴吗,请问字段级别的血缘关系怎么展示比较好呢?用桑基图吗?

2022-05-07 13:32:04 +08:00
 0x0208v0

如题,不知道该怎么展示?在网上找了一个 https://sqlflow.gudusoft.com/#/ 看起来展示的效果挺好

请问各位有接触过相关的业务吗?

1874 次点击
所在节点    程序员
7 条回复
aguesuka
2022-05-07 13:46:54 +08:00
亲属关系图有现成的 kinship diagram
codefever
2022-05-07 14:04:56 +08:00
MaxCompute Information_Schema 提供访问表的作业明细数据 tasks_history ,该表中有字段记录表的上下游依赖关系。根据字段统计即可分析出表的血缘关系
0x0208v0
2022-05-07 14:12:41 +08:00
@codefever 谢谢大佬,想白嫖个开源方案
0x0208v0
2022-05-07 14:14:29 +08:00
@aguesuka 数据库血缘关系类似有向图,kinship diagram 似乎是树形图
wangshijiejay
2022-05-07 14:26:24 +08:00
展示采用什么方案取决于你的字段血缘关系是否复杂,对于单个 sql 的字段血缘关系是非常简单的,因为不涉及到多层级和字段的回溯。但是对于复杂的场景来说,比如数据开发链路非常长,可能一个字段往前追能追出几十张表来。而且有非常多不确定的场景。比如实时表,日表写入月表,又从月表中取数据写入实时表,这样在表的血缘上就出现了循环,同样字段也会出现循环。

如果没有循环的话,可以把字段血缘理解为一张有向无环图,也就是 DAG ,那么考虑的就是如何展示一张 DAG 。依我的经验来,简单的数据开发链路,可以很直观的展示出来,但是数据量一旦大起来,超过几十个节点几百条边,那么图中的关系基本就没法很清晰的查看了。

能够直观展示的方案大部分都是用树的方式去展示,但是 DAG 图转成一棵树是不行的,只能转成多棵树,信息必然有丢失。
wangshijiejay
2022-05-07 14:30:08 +08:00
接楼上,树形展示有一个好处就是可以逐级展开,但仍然解决不了循环和数量众多是的问题,因为某一个节点可能是一张基础表,它的上游有一大坨表,而他又被其他表多次引用,在图中它只是一个节点,但在树立边,它会出现很多次,导致整个树非常庞大
0x0208v0
2022-05-07 19:41:54 +08:00
@wangshijiejay 谢谢老哥的分析,我回头再仔细琢磨一下这个需求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851348

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX