• 请不要在回答技术问题时复制粘贴 AI 生成的内容
flyxl
V2EX  ›  程序员

[分享创造] 给数据库客户端装上 AI: NL2SQL、报错诊断、EXPLAIN 解读、跨库工作流,一个不到 10MB 的开源工具

  •  
  •   flyxl · 4 days ago · 1168 views

    断断续续写了几个月,DataZen 终于到了 v0.0.8 。起因很朴素:日常要连 PostgreSQL 、MySQL ,偶尔还要看 Redis ,商业客户端要订阅,DBeaver 功能全但启动和内存都偏重。于是用 Tauri v2 + Rust + React 自己搓了一个桌面客户端,安装包不到 10MB ,GPLv3 开源,macOS 和 Windows 都支持。

    主界面长这样:一个窗口管理所有连接,PostgreSQL / MySQL / SQLite / Redis 混在一起也没问题。

    DataZen 主界面

    🤖 AI 这块是重头

    最常用的是自然语言生成 SQL 。想不起来表名或函数?直接说人话,AI 会结合当前库的表结构生成 SQL ,流式输出,点一下就能执行:

    NL2SQL 生成 SQL

    写错 SQL 也不用再去搜索引擎了。报错之后点「诊断」,AI 会告诉你错在哪、为什么错,修正后的 SQL 一键应用。比如我把 SELECT 拼成 SELEC,AI 直接指出少了字母 T:

    SQL 错误诊断

    慢查询怎么优化? EXPLAIN 执行计划可视化,树形展示每一步的代价,再让 AI 解读瓶颈在哪:

    EXPLAIN 智能分析

    📊 图表

    查询结果不用导出到 Excel 了。一键从表格切到图表,自动推断字段类型、智能推荐图表类型,折线、柱状、饼图、散点、面积五种,支持导出 PNG / SVG:

    查询结果一键成图

    ⚙️ Workflow 跨库自动化

    这版我最满意的功能:用 YAML 把「查数 → 分析 → 决策」固化成流程,支持跨库执行。比如从 PG 订单库查出订单,再去 MySQL 物流库补物流信息:

    跨库工作流执行

    每个步骤可以绑定不同连接,支持条件分支、循环、错误策略( abort / skip / fallback ),还能在界面、MCP 或者 AI 对话里直接跑。

    其他值得一提的

    • Redis 专属视图,String / Hash / List / Set / ZSet / Stream 都能看: Redis 视图
    • Provider 支持 OpenAI / Anthropic / DeepSeek / 自定义端点,模型列表动态拉取
    • 内置 MCP Server (--mcp-stdio 无头模式),也可以作为 MCP Client 接外部服务
    • 连接密码走系统钥匙串,SSH 凭据加密存储
    • 10 种语言界面,首次启动自动跟随系统语言

    下载: https://github.com/flyxl/datazen/releases 仓库: https://github.com/flyxl/datazen

    macOS 用户注意,应用还没做公证,首次打开如果提示「已损坏」,跑一下:

    xattr -cr /Applications/DataZen.app
    

    个人开源项目,功能边界和稳定性还有不少不足,欢迎 star 、提 issue 或者直接上手改。下一步打算把插件生态和文档站弄起来,感兴趣的可以来仓库聊聊。

    4 replies    2026-08-08 17:22:27 +08:00
    shinelamla
        1
    shinelamla  
       4 days ago
    那我建议看看 DBX
    zengyufei
        2
    zengyufei  
       3 days ago
    尴尬,用 AI 创造小工具就是这样,很容易撞车,而且别人的更好
    flyxl
        3
    flyxl  
    OP
       3 days ago via Android
    @shinelamla datazen 的 workflow 功能还是比较有特色的,对需要经常查询固定语句组合的场景比较有用,比如需要查询多个表的场景,以前是保存一组 sql 语句,每次查询都需要修改 where 参数,第一条 sql 查出来后再拿第一条的结果填第二条 sql 的 where ,现在只需要输入第一条 sql 的参数,后续 sql 会自动根据前面 sql 的结果填充参数继续执行。比较适合定位客诉问题,联调问题,固定测试场景等
    flyxl
        4
    flyxl  
    OP
       3 days ago via Android
    @zengyufei 不尴尬,至少解决了我们内部不少非标数据库访问问题,还节省了不少测试和线上问题定位时间
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5346 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:25 · PVG 15:25 · LAX 00:25 · JFK 03:25
    ♥ Do have faith in what you're doing.