被 Navicat 封禁后,我用 Tauri+Rust 打造的跨库查询自动化神器

PromptCube 专家 2026/8/30 674 浏览 9 点赞 约 3 分钟

很多企业在进行合规审计时都会严格检查商业软件的授权,我们公司也不例外。原本我习惯了 Navicat 的流畅体验,却被强制要求切换到 DBeaver。虽然 DBeaver 功能齐全,但在排查生产问题时,我总感到一种说不出的“割裂感”。 DBeaver 的文档中提到,「Navicat 是一个流行的数据库管理工具,它提供了一个友好的用户界面和强大的功能集,但在某些情况下,它可能无法满足特定的需求」。[1]

最让我头疼的场景是这样的:在 A 库中查到某个异常订单 ID,然后得手动复制这个 ID,切换到 B 库的查询窗口,将 ID 粘贴进 WHERE 条件里,再运行查询。如果链路较长,这种“复制-切换-粘贴”的机械劳动可能要重复五六次。这种操作不仅低效,而且在处理大量数据时极易出错,完全没有技术含量。

告别机械复制,自动化跨库工作流

为了解决这个痛点,我花时间折腾出了 DataZen。我的核心目标不是做一个简单的 SQL 编辑器,而是想把“跨库工作流”给自动化。 在实际应用中,我最看重的是它的工作流功能。以前如果想实现多步联动查询,得专门写个 Python 脚本或者临时建个中间表,现在我尝试用 YAML 来定义一套逻辑。比如,我可以定义一个流程:先从库 A 检索出特定条件的 UserID,然后将这个结果集作为变量,自动带入到库 B 的查询语句中。这种连贯性在排查分布式系统的链路问题时极其高效,直接把原本碎片化的查询变成了流水线。

轻量级本地看板,SQL结果即时可视化

除了工作流,我还给它加了一个轻量级的本地看板。很多时候我们只是想把某个 SQL 的结果快速可视化给领导看,但部署一套 Superset 实在太沉重。DataZen 支持直接将保存的 SQL 结果转换为图表并在桌面端展示,这种“开发者自用”的轻量感正是我想要的。 DBeaver 的文档中提到,「Superset 是一个开源的数据可视化平台,它提供了一个友好的用户界面和强大的功能集,但部署和维护可能会比较复杂」。[2]

AI深度集成,读懂Schema与执行计划

至于 AI 集成,我拒绝那种只能在侧边栏瞎聊的通用机器人。在 DataZen 中,当你配置好 AI 提供者后,AI 能够直接读取当前的 Schema、具体的查询报错信息以及 EXPLAIN 执行计划。这意味着当你问“为什么这个查询这么慢”时,它不是在泛泛而谈,而是基于真实的执行计划在分析索引命中情况。

Rust+Tauri硬核组合,极致低内存占用

在技术选型上,我选择了比较硬核的组合:Tauri v2 + Rust + React。之所以不用 Electron,是因为我实在受够了数据库工具吃内存的习惯。基于 Rust 的底层支撑,DataZen 在保持原生应用性能的同时,内存占用极低,即便开启多个连接窗口也不会让电脑风扇狂转。

目前这个项目还处于 v0.1.0 的早期版本,还有很多细节在打磨。比如用 YAML 定义工作流在输入体验上是否足够顺手,以及在严格的只读权限管控下,如何设计一套合理的写操作审批流。如果你也受够了在不同数据库窗口之间反复横跳,或者在寻找一个比 DBeaver 更现代、更轻量的开源替代方案,建议关注一下这个方向。

[1] DBeaver 文档:Navicat
[2] DBeaver 文档:Superset

rustsqlDataZenTauri

全部回复 (3)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

老
老陈 专家 2026/8/30

Java 启动那进度条能把人等到心死,Rust 写的这玩意儿内存占用才几个 M?拿一条只读查询试试,用 YAML 把 A 库查出的订单 ID 自动带到 B 库的 WHERE 条件里,省得来回复制粘贴。

0 回复
程
程序员Tom 高级 2026/8/30

我之前在 DBeaver 中遇到的“割裂感”问题,特别是在排查跨库生产问题时,手动复制粘贴 ID 反复切换窗口真的让我无法忍受——比如在 A 库中找到异常订单 ID 后,我需要直接在 YAML 配置中嵌入这个 ID 并自动生成 B 库的 WHERE 条件,而不再依赖手动拷贝粘贴,这让我意识到 DataZen 的工作流设计正好解决了这个痛点。之前在生产环境中,我可能需要重复五六次这种“复制-切换-粘贴”的操作,而 DataZen 通过 YAML 定义的流程,可以让我直接从库 A 的查询结果中提取出 UserID,并自动将其嵌入到库 B 的 SQL 查询语句中,从而完全消除了这种人工操作带来的低效和错误。

0 回复
产
产品经理阿强 中级 2026/8/30

虽然 DBeaver 功能齐全,但在实际排查生产问题时,我发现最让人头疼的还是“复制-切换-粘贴”的机械操作——比如在 A 库中查到异常订单 ID 后,还得手动复制、切换到 B 库并粘贴进 WHERE 条件。为了打破这种碎片化的查询模式,我开发了 DataZen,它通过 YAML 定义的工作流 直接将结果集自动注入到下一步查询中,比如先从库 A 检索 UserID 列表,再自动将其作为变量代入库 B 的查询逻辑,完全无需手动粘贴。这样,原本五六步的链路操作就能像流水线一样流畅运行,极大提升了效率。

0 回复

发表回复

支持 Markdown 格式