爱意满满的作品展示区。
sanbuliuxin

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

  •  
  •   sanbuliuxin · Jan 9, 2024 · 3705 views
    This topic created in 1033 days ago, the information mentioned may be changed or developed.

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

    邮箱: [email protected]

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

    字段血缘

    1.png

    带中间表的字段血缘

    2.png

    表血缘

    3.png

    带中间表的血缘

    4.png

    Supplement 1  ·  Mar 5, 2024
    最近抽空上线了,欢迎使用。 没有任何门槛,免费无广告,目前只展示字段间的血缘关系,后续会放出更多功能:表级别血缘、桑基图等

    网站地址 : https://www.thinktech.top/





    17 replies  •  2024-01-19 08:39:57 +08:00
    sanbuliuxin
    sanbuliuxin
    OP
    Jan 9, 2024
    1
    提出你的 SQL ,我可以生成截图回复你,或者留下邮箱发送生成的文件。
    举例:insert into c select a from b


    https://pic.ziyuan.wang/user/guest/2024/01/1704783467353_ed04ac8f9ccd6.png
    googleplus
    googleplus
    Jan 9, 2024
    2
    为啥不先部署一个 saas 让我们体验下
    jxxz
    jxxz
    Jan 9, 2024
    3
    ..
    darksword21
    darksword21
    Jan 9, 2024❤️1
    4
    我还以为解析血源诅咒。。
    sanbuliuxin
    sanbuliuxin
    OP
    Jan 10, 2024
    5
    @googleplus 没有 saas 资源,泪目
    sivacohan
    sivacohan
    Jan 10, 2024
    6
    insert into tbl_c select a, sum(b) from tbl_a group by a
    proxychains
    proxychains
    Jan 10, 2024
    7
    根据表定义的外键来扫描的? 还是 sql 语句中 join 或查询关系?
    luotuoxiaohui
    luotuoxiaohui
    Jan 10, 2024 via Android
    8
    跟小米的那个一样?
    sanbuliuxin
    sanbuliuxin
    OP
    Jan 11, 2024
    9
    @proxychains 是使用 Antlr 语法树解析,跟是不是外键和 join 没有关系
    sanbuliuxin
    sanbuliuxin
    OP
    Jan 11, 2024
    10
    @luotuoxiaohui 哪个?
    sanbuliuxin
    sanbuliuxin
    OP
    Jan 11, 2024
    11
    @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
    sanbuliuxin
    OP
    Jan 11, 2024
    12
    XhivaW
    XhivaW
    Jan 11, 2024
    13
    支持哪些数据库/计算引擎?
    XhivaW
    XhivaW
    Jan 11, 2024
    14
    以及支持程度如何,比如对 select * ?
    sanbuliuxin
    sanbuliuxin
    OP
    Jan 18, 2024
    15
    @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
    sanbuliuxin
    OP
    Jan 18, 2024
    16
    @XhivaW 支持的程度我这边应该是能达到 sparksql ,presto 全部语法的 99%,因为我这边是专门做大数据的 SQL 解析。

    其他的数据库如果有一些写法相同的语句拿过来解析,也没有问题。 例如 mysql 等一些通用的 select 语法
    XhivaW
    XhivaW
    Jan 19, 2024
    17
    @sanbuliuxin 谢谢回复 23 年搬砖我也写了个类似的东西用于 hive+spark sql 的解析 做了 hive 元数据库的自动匹配以解决 select * 的问题 不过遇到中间表还是会有断点 我是希望能做到类似 https://sqlflow.gudusoft.com/#/ 这样的产品 哈哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1490 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 06:22 · PVG 14:22 · LAX 22:22 · JFK 01:22
    ♥ Do have faith in what you're doing.