开发了一个 SQL 血缘解析的网站,可视化查询字段级别和表级别的血缘关系

2024-01-09 14:43:11 +08:00
 sanbuliuxin

有兴趣的人,可以私我 SQL 帮忙生成可视化文件(单文件 HTML ),同时,寻求商业资源,例如私有化部署或者二次开发

邮箱: shenbinglife@163.com

以下是同一段 SQL 生成的 4 张血缘可视化截图

字段血缘

带中间表的字段血缘

表血缘

带中间表的血缘

2053 次点击
所在节点    分享创造
17 条回复
sanbuliuxin
2024-01-09 14:58:07 +08:00
提出你的 SQL ,我可以生成截图回复你,或者留下邮箱发送生成的文件。
举例:insert into c select a from b


https://pic.ziyuan.wang/user/guest/2024/01/1704783467353_ed04ac8f9ccd6.png
googleplus
2024-01-09 16:30:34 +08:00
为啥不先部署一个 saas 让我们体验下
jxxz
2024-01-09 16:41:13 +08:00
..
darksword21
2024-01-09 17:21:58 +08:00
我还以为解析血源诅咒。。
sanbuliuxin
2024-01-10 10:16:05 +08:00
@googleplus 没有 saas 资源,泪目
sivacohan
2024-01-10 11:11:05 +08:00
insert into tbl_c select a, sum(b) from tbl_a group by a
proxychains
2024-01-10 13:42:54 +08:00
根据表定义的外键来扫描的? 还是 sql 语句中 join 或查询关系?
luotuoxiaohui
2024-01-10 22:09:45 +08:00
跟小米的那个一样?
sanbuliuxin
2024-01-11 10:39:53 +08:00
@proxychains 是使用 Antlr 语法树解析,跟是不是外键和 join 没有关系
sanbuliuxin
2024-01-11 10:40:03 +08:00
@luotuoxiaohui 哪个?
sanbuliuxin
2024-01-11 10:43:41 +08:00
@sivacohan [![1704940991849.png]( https://pic.ziyuan.wang/user/guest/2024/01/1704940991849_82cb52dda4cc9.png)]( https://pic.ziyuan.wang/user/guest/2024/01/1704940991849_82cb52dda4cc9.png)
sanbuliuxin
2024-01-11 10:49:19 +08:00
XhivaW
2024-01-11 13:50:44 +08:00
支持哪些数据库/计算引擎?
XhivaW
2024-01-11 13:53:21 +08:00
以及支持程度如何,比如对 select * ?
sanbuliuxin
2024-01-18 17:50:20 +08:00
@XhivaW 支持 sparksql 和 presto , 支持 select * 启发式解析,但是太模糊的就不能做到字段血缘,只能忽略字段血缘。

例如, 支持 insert into target select * from (select a, b, c from d) tmp , 会启发式认为 target 表中存在同名的 a,b,c 的字段,并和最底层的物理表 d 的 a,b,c 字段存在血缘关系,截图如下:

sanbuliuxin
2024-01-18 17:54:04 +08:00
@XhivaW 支持的程度我这边应该是能达到 sparksql ,presto 全部语法的 99%,因为我这边是专门做大数据的 SQL 解析。

其他的数据库如果有一些写法相同的语句拿过来解析,也没有问题。 例如 mysql 等一些通用的 select 语法
XhivaW
2024-01-19 08:39:57 +08:00
@sanbuliuxin 谢谢回复 23 年搬砖我也写了个类似的东西用于 hive+spark sql 的解析 做了 hive 元数据库的自动匹配以解决 select * 的问题 不过遇到中间表还是会有断点 我是希望能做到类似 https://sqlflow.gudusoft.com/#/ 这样的产品 哈哈

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

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

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

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

© 2021 V2EX