1
aguesuka 2022-05-07 13:46:54 +08:00
亲属关系图有现成的 kinship diagram
|
2
codefever 2022-05-07 14:04:56 +08:00
MaxCompute Information_Schema 提供访问表的作业明细数据 tasks_history ,该表中有字段记录表的上下游依赖关系。根据字段统计即可分析出表的血缘关系
|
5
wangshijiejay 2022-05-07 14:26:24 +08:00 1
展示采用什么方案取决于你的字段血缘关系是否复杂,对于单个 sql 的字段血缘关系是非常简单的,因为不涉及到多层级和字段的回溯。但是对于复杂的场景来说,比如数据开发链路非常长,可能一个字段往前追能追出几十张表来。而且有非常多不确定的场景。比如实时表,日表写入月表,又从月表中取数据写入实时表,这样在表的血缘上就出现了循环,同样字段也会出现循环。
如果没有循环的话,可以把字段血缘理解为一张有向无环图,也就是 DAG ,那么考虑的就是如何展示一张 DAG 。依我的经验来,简单的数据开发链路,可以很直观的展示出来,但是数据量一旦大起来,超过几十个节点几百条边,那么图中的关系基本就没法很清晰的查看了。 能够直观展示的方案大部分都是用树的方式去展示,但是 DAG 图转成一棵树是不行的,只能转成多棵树,信息必然有丢失。 |
6
wangshijiejay 2022-05-07 14:30:08 +08:00 1
接楼上,树形展示有一个好处就是可以逐级展开,但仍然解决不了循环和数量众多是的问题,因为某一个节点可能是一张基础表,它的上游有一大坨表,而他又被其他表多次引用,在图中它只是一个节点,但在树立边,它会出现很多次,导致整个树非常庞大
|
7
v2exblog OP @wangshijiejay 谢谢老哥的分析,我回头再仔细琢磨一下这个需求
|