V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sanbuliuxin
V2EX  ›  分享创造

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

  •  
  •   sanbuliuxin · 98 天前 · 1509 次点击
    这是一个创建于 98 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    邮箱: [email protected]

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

    字段血缘

    1.png

    带中间表的字段血缘

    2.png

    表血缘

    3.png

    带中间表的血缘

    4.png

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

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





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


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

    其他的数据库如果有一些写法相同的语句拿过来解析,也没有问题。 例如 mysql 等一些通用的 select 语法
    XhivaW
        17
    XhivaW  
       89 天前
    @sanbuliuxin 谢谢回复 23 年搬砖我也写了个类似的东西用于 hive+spark sql 的解析 做了 hive 元数据库的自动匹配以解决 select * 的问题 不过遇到中间表还是会有断点 我是希望能做到类似 https://sqlflow.gudusoft.com/#/ 这样的产品 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5713 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 03:23 · PVG 11:23 · LAX 20:23 · JFK 23:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.