shencangsheng 发表于 2026-05-20 14:21
Tags:txt,csv,xlsx,json,query-editor,sql-assisant,mysql,postgres
EasyDB v2.8.0 发布:当 SQL 遇见一切数据源
从本地文件到云端数据库,一条 SQL 贯通所有数据。无需安装,无需配置,打开即用。
EasyDB 是什么?
EasyDB 是一款轻量级桌面数据查询工具,基于 Rust 构建,内置 Apache DataFusion 查询引擎。你不需要安装数据库,不需要配置环境,只需要用标准 SQL 就能直接查询本地文件——CSV、Excel、JSON、Parquet,甚至是 MySQL 和 PostgreSQL 数据库表。
更强大的是,所有数据源可以在同一条 SQL 中联合查询。一份 Excel 报表和一张 MySQL 数据库表,一次 JOIN 就能关联出结果。
-- Excel 和 PostgreSQL 跨源联查,就是这么简单
SELECT t1."product_name", t2."inventory_count"
FROM read_excel('/data/products.xlsx') AS t1
INNER JOIN
read_postgres('inventory', host => 'localhost', username => 'postgres', db => 'mydb') AS t2
ON t1."product_id" = t2."id"
WHERE t2."inventory_count" < 100;
新特性
- 分页加载:查询结果按每页 200 行加载
- 智能补全升级:列名自动用双引号包裹,告别手写引号导致的语法错误
- 布局优化:修复数据列未填满时右侧空白区域的问题,界面更紧凑
- 列类型配置:SQL 导出支持为每列选择 INT / DOUBLE / TEXT 目标类型,数值不被引号包裹,文本始终被引号包裹——导出的 SQL 拿来就能执行,不再需要手动修类型
- Excel 类型推断优化:整数值不再被误判为 Float64,
42就是42,不是42.0 - 双栏导出对话框:左侧基本设置,右侧列类型配置面板,一目了然
- read_postgres() 来了:继 MySQL 之后,PostgreSQL 数据库查询正式支持。CSV + Excel + MySQL + PostgreSQL,四大数据源全部到齐
- 导出列配置:支持修改导出字段名、移除不需要的列
- BOOL 类型支持:布尔值导出为
true/false,不再被引号包裹 - 空文本输出为 NULL:一键勾选,TEXT 类型空字符串输出 NULL,数据清洗更省心
- 类型推断增强:支持 BIGINT、SMALLINT、DECIMAL、NUMERIC、REAL、CHAR、VARCHAR 等更多 SQL 类型关键字
- 性能优化:SQL 类型解析使用预解析枚举,替代热循环中的重复字符串分配
- 精度修复:UInt64 大整数导出不再丢失精度;INT/FLOAT 列中非数值数据导出为 NULL 而非无效 SQL
完整 SQL,不只是 SELECT
EasyDB 内置 Apache DataFusion 引擎,提供完整 SQL 能力:
-- 窗口函数
SELECT "name", "salary",
AVG("salary") OVER (PARTITION BY "department") AS dept_avg
FROM read_csv('/data/employees.csv');
-- 子查询
SELECT *
FROM read_excel('/data/sales.xlsx') AS s
WHERE "amount" > (SELECT AVG("amount") FROM read_excel('/data/sales.xlsx'));
-- 正则匹配
SELECT *
FROM read_csv('/data/logs.csv')
WHERE REGEXP_LIKE("message", '^ERROR:\s+\d{3}');
EasyDB vs DuckDB:两种哲学,两种选择
DuckDB 是优秀的嵌入式分析引擎,在 OLAP 场景中表现卓越。但当你想要一个开箱即用的桌面工具,用 SQL 直接查询本地文件和数据库时,两者的设计哲学截然不同:
| 维度 | EasyDB | DuckDB |
|---|---|---|
| 定位 | 桌面数据查询工具 | 嵌入式分析数据库引擎 |
| 使用方式 | 下载安装,打开即用,GUI 界面 | CLI / 嵌入式 API,需编程或命令行 |
| GUI 界面 | 原生桌面应用,拖拽文件自动生成 SQL | 浏览器扩展 UI(需联网加载资源) |
| 数据源 | CSV、TSV、Text、Excel、NdJson、Parquet、MySQL、PostgreSQL | CSV、JSON、Parquet、Excel(扩展)、MySQL/PostgreSQL(ATTACH) |
| 跨源联查 | 原生支持,同一 SQL 中 JOIN 任意数据源 | 支持 ATTACH,但需额外配置 |
| 查询引擎 | Apache DataFusion | DuckDB 自研引擎 |
| SQL 导出 | INSERT / UPDATE,列重命名、列移除、类型映射、方言选择 | 需编程实现 |
| 编辑器 | 语法高亮 + 智能补全 + 格式化 + 快捷键 | CLI 无编辑器,UI 有基础补全 |
| 离线使用 | 完全离线 | UI 需联网加载远程资源 |
| 多实例 | 支持 | 不支持同一数据库多实例并发 |
| 学习成本 | 会写 SQL 即可使用 | 需了解 DuckDB 特有语法和 API |
一句话总结:DuckDB 是给开发者的分析引擎,EasyDB 是给所有人的数据查询工具。
如果你是一个数据分析师,拿到一份 Excel 报表只想快速筛选几行数据;如果你是一个 DBA,想在不写代码的情况下把 CSV 文件和 MySQL 表做一次 JOIN——EasyDB 就是为你设计的。
数据源一览
| 格式 | 函数 | 说明 |
|---|---|---|
| CSV | read_csv() |
自定义分隔符、表头、Schema 推断 |
| TSV | read_tsv() |
Tab 分隔文件 |
| Text | read_text() |
通用文本文件,自定义分隔符 |
| Excel | read_excel() / read_xlsx() |
.xlsx 支持,可选工作表 |
| NdJson | read_ndjson() |
每行一个 JSON 对象 |
| Parquet | read_parquet() |
列式存储格式 |
| MySQL | read_mysql() |
直连 MySQL 数据库表 |
| PostgreSQL | read_postgres() |
直连 PostgreSQL 数据库表 |
快速开始
- 访问 GitHub Releases 下载安装包
- macOS:下载
.dmg,拖拽到应用程序文件夹 - Windows:下载
.exe,运行安装程序 - 拖拽任意文件到编辑器,自动生成 SQL,按
⌘Enter执行
就这么简单。
AI
关于 AI,我一直有一些很复杂的感受。
从 2022 年开始关注大模型,到 2023 年正式开始使用 ChatGPT 辅助编程,我几乎完整经历了这一轮 AI 编程工具的演进:从 GPT-3、GPT-4o,到 Gemini、Claude、DeepSeek、GLM;从 IDEA、VSCode,到 Cursor、Antigravity、Codex……变化快得有些不真实。
其实这个项目的雏形,早在 2020 年我就已经有了想法。2021 年,我开始接触 Rust;2024 年正式启动开发;2025 年发布第一个版本。一路走来,AI 的确发挥了非常大的作用。
因为我的前端水平比较一般,所以对于 EasyDB 来说,前端曾经是我最大的障碍。AI 出现后,我开始尝试让它帮我完成前端部分的开发。那个时候 AI Agent 还不成熟,大模型对 Rust 的代码生成能力也很弱,一次通过率极低,生成质量也不理想,所以 EasyDB 的核心 Rust 代码,长期都是我“古法编程”一点点写出来的。
但现在不一样了。
随着 AI Agent 模式逐渐成熟,大模型对 Rust 的理解和生成能力已经强得惊人。v2.6.0 版本,算是我最后一个主要靠“古法编程”完成 Rust 开发的版本;从那之后,后续版本几乎都是我借助 AI 完成的。
开发速度变得非常快,代码质量也并不差。
可奇怪的是,我却慢慢失去了对编程最初的兴奋感。
以前上线一个新版本,我会因为一个功能终于实现、一次性能优化终于成功而感到兴奋,会有一种“这是我亲手做出来的东西”的满足感。但现在,即使迭代速度更快、产出更多,我却很少再有那种激动。
更多时候,是一种说不出的空虚。
我开始觉得,自己像是在“指挥”一个项目,而不是亲手“孵化”它。代码依然属于我,项目依然由我推进,但那种创作者与作品之间强烈的连接感,似乎正在被 AI 一点点稀释。
这也让我第一次对开源、对程序员这个行业,产生了一种复杂的惋惜感。
也许未来,我们不会再因为一个功能实现、一次底层优化而兴奋;也许很多曾经需要长期积累的技术能力,终究都会被 AI 接管。
我已经半年多没有真正“古法编程”了。
但让我意外的是,我没有因为效率提升而感到兴奋,反而只感受到越来越强的空虚感。
GitHub: https://github.com/shencangsheng/easydb_app
如果 EasyDB 对你有帮助,请给个 Star
Ext Link: https://github.com/shencangsheng/easydb_app
评论区
写评论还没有评论