Skip to content

About

基于 DuckDB 的 AI 可视化 SQL 工作台,本地文件与远程库一站式跨源分析。AI-native visual SQL workbench on DuckDB. Query local CSV/Excel/JSON + remote MySQL/Postgres together with text-to-SQL chat — no ETL, local-first, cross-source JOINs. DuckDB Desktop

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

49 stars

Watchers

1 watching

Forks

Repository files navigation

DuckQuery

DuckQuery

把文件、数据库和 AI,放进同一个 SQL 工作台。
用 Excel 核对业务库,用一条 SQL 关联多个数据源,或让智能体先查数据再回答。

最新发布版本 MIT License GitHub Stars

下载桌面版 · 安装指南 · 功能 · 文档 · 浏览器演示 · English

DuckQuery 是独立开发、基于 DuckDB 的本地优先数据工作台,适合临时对账、跨源核查和数据探索。文件导入、数据库连接、SQL、可视化查询、图表和导出都在一个界面里完成,不需要为一次分析搭建数仓。

不用 AI,也能完整使用查询与分析功能。 启用 AI 时,由你选择模型服务并提供自己的 API Key。

安装与运行

桌面版(推荐)

最新发布版本为 v2.2.0。本文功能说明以该发布版为准;对应源码见 v2.2.0 标签。

从 GitHub Releases 选择与你的电脑匹配的安装包:

系统 标准包 离线包
Windows 10 / 11 · x64 *_x64-setup.exe *_x64-offline-setup.exe
macOS · Apple 芯片 *_aarch64.dmg *_aarch64-offline.dmg
macOS · Intel *_x64.dmg *_x64-offline.dmg

联网环境用标准包;首次使用部分外部数据库时会下载 DuckDB 扩展。无法在线下载扩展时选择离线包,内置相关扩展,Windows 离线包还包含 WebView2 安装器。暂不提供 Linux 桌面安装包,可使用 Docker。

.sig、.app.tar.gz 和 latest.json 用于应用内更新,无需单独下载。安装包未使用 Apple Developer ID 或 Microsoft 发布证书,首次运行可能出现系统提示;处理方式见桌面版使用手册。

Docker 镜像与数据

先安装 Docker 与 Docker Compose,然后运行:

git clone --branch v2.2.0 --depth 1 https://github.com/Chenkeliang/duckdb-query.git
cd duckdb-query
./quick-start.sh

脚本支持配置构建镜像源,详见配置参考。默认仅监听本机 127.0.0.1;需要共享访问时应使用带认证的反向代理,应用本身没有多用户鉴权。

浏览器演示(免安装)

在线体验使用独立 DuckDB-Wasm,在浏览器内解析 CSV / TSV / Parquet / JSON,不上传文件到应用服务器。Excel、外部数据库连接、AI 和扩展管理请使用桌面版或 Docker。演示引擎与桌面 / Docker 后端独立。

能做什么

你的任务 DuckQuery 提供的能力
把散落的文件变成可查询的数据 CSV / Excel / Parquet / JSON / JSONL 导入、表格粘贴、URL 导入、服务器目录读取
核对文件与业务库 本地表与 MySQL / PostgreSQL / SQLite / DuckDB 跨源关联,支持符合条件的远端筛选优化
使用远程 DuckDB 计算 独立 Quack 服务连接、远程表与字段浏览、绑定服务的只读 SQL 标签;支持取消、转后台、导出与保存到本地
反复调整一条查询 多标签 SQL 编辑器、表与字段补全、错误位置提示、查询历史、SQL 收藏夹
少写 SQL 完成分析 可视化关联查询、集合运算与透视表;支持不加分组字段直接统计,可查看生成的 SQL
让长查询继续跑 异步任务、执行中转后台、任务搜索、取消、重试与结果查看;转后台继续同一次查询,不重新执行
看清结果并交付 虚拟滚动表格、列来源、JSON 查看、按结果结构推荐图表、显式重算与下钻;默认直接展示当前 SQL 结果
把结果带走 CSV / Excel / JSON / Parquet 导出,或保存为 DuckDB 本地表
让 AI 辅助查数 限定问数范围、查看结构与真实取值、只读查询、SQL 解释与优化、报错修复、图表建议
接入 AI 编程工具 MCP 服务,供 Claude Code、Codex、Cursor 等客户端使用,提供三种权限模式

工作台支持中文 / English、深色 / 浅色主题、命令面板和可自定义快捷键。

远程 Quack 与数据源浏览

在数据源管理页或左侧「Quack 服务」分组添加已有服务的地址和 Token。查询由远端 DuckDB 执行,连接从运行 DuckQuery 后端的机器发起。服务器可以暴露 CSV / Parquet 视图、DuckDB 表及其他已配置数据;客户端浏览服务器实际提供的目录,不在这里配置远端 MySQL / PostgreSQL。

当前 Quack 入口仅提供只读 SQL 标签,尚不接入可视化 JOIN、集合、透视、数据探索、远端 SQL 的 AI 问数/修复或 SQL 收藏。保存为表会写入本地 DuckDB,不会写入远端。浏览器内 Wasm Demo 不支持 Quack。首次显式测试连接会按需安装官方 httpfs / quack;当前离线包未预置 quack,受限网络需先安装匹配引擎与平台的扩展。详见 Quack 使用指南。

DuckDB 本地表、原有数据库连接表和 Quack 表均可通过箭头展开字段与类型;双击表名或右键选择「打开预览 SQL(100 行)」只填入 SQL,不自动执行。同一服务的相同 Quack SQL 已打开时会切回已有页,已编辑的草稿不会被覆盖;显式新建查询仍创建独立标签。

图表与 AI 建议

图表默认按当前 SQL 返回的行展示,不再因为结果截断而自动重跑或再次汇总。按字段类型和当前结果推荐可用图表;需要分组统计时,选择计算方式与范围,再显式预览。日期排序、重复日期、无效日期和显示点数限制会影响画面,界面会说明对应情况;图形坐标使用近似数值,提示值保留后端提供的原始精度。

AI 推荐只在点击后请求你配置的模型,发送当前 SQL、字段、当前结果的分布摘要与最多 5 行限量样本。建议先展示依据,由你选择预览,不自动应用或执行 SQL。

从数据到结果

  1. 接入数据。 拖入 CSV、Excel、Parquet 或 JSON,粘贴表格,或连接 MySQL、PostgreSQL、SQLite、DuckDB。
  2. 查询或提问。 手写 SQL;用可视化界面构建关联、集合运算或透视表;也可以打开智能体,限定数据源与表后直接提问。
  3. 检查与交付。 查看表格、图表和列来源,核对 SQL,把结果导出或保存为本地表。执行中的只读查询可以转到后台,保持后端运行即可稍后从任务面板取回结果。
示例:用一条 SQL 关联本地文件与 MySQL

把本地订单与 MySQL 客户资料关联,找出已完成订单的客户和金额:

SELECT
  o.order_id,
  c.customer_name,
  c.segment,
  o.amount
FROM readme_demo_orders AS o
JOIN mysql_readme_demo_mysql.customers AS c
  ON o.customer_id = c.customer_id
WHERE o.status = 'completed'
ORDER BY o.amount DESC;

这里的表名与连接别名来自演示数据,使用时替换为你自己的来源。一个查询可以同时使用本地表与已连接的外部数据库。

以下动图录制于 v1.1.4,仅用于说明跨源查询流程,不代表当前界面。

本地订单与 MySQL 客户资料关联查询

智能体怎么用

在查询工作台打开 AI 面板,选择它可以访问的数据源与表,然后描述问题。输入 @ 可以加入表;输入区支持多行,Enter 发送,Shift+Enter 换行。

  • 问数据: 智能体查看结构、核对取值,并执行有行数限制的只读查询后给出回答,附可复用 SQL。统计由数据库执行;你仍应核对查询口径和结果。
  • 解释或优化 SQL: 快捷按钮先填入可编辑的问题草稿,由你确认发送。
  • 使用返回的 SQL: 先查看修改前后的差异,再选择应用;应用只更新编辑器,不自动执行。你在等待期间修改了 SQL 时,预览会提示冲突。

文件与本地表保存在运行 DuckQuery 的电脑或自托管服务器上,外部数据库仍位于原来的服务中。使用 AI 时,所选范围内的结构、问题和限量查询结果可能发送给你配置的模型服务;请按数据要求选择本地或远程模型。

通过 MCP 连接 AI 工具

先启动 DuckQuery 桌面版或 Docker,再运行:

uvx duckquery-mcp

Claude Code 可直接添加:

claude mcp add duckquery -- uvx duckquery-mcp
权限模式 行为
read-only 不开放修改工具,阻止变更请求
normal(默认) 修改工具可用,变更必须显式确认
full 跳过 MCP 的确认门控,后端限制仍有效

客户端配置、后端自动发现与具体工具见 MCP 文档。MCP 包版本与应用版本独立发布;当前配套版本仍为 0.4.1,安装来源与更新方式见 MCP 文档。

引擎与升级须知

最新发布的 应用版本为 v2.2.0,新增 Quack 远程只读 SQL,统一表结构浏览与预览交互,并更新图表及 AI 推荐。保留 v2.1.3 的 Windows 覆盖升级修复,以及原有数据探索、JSON 提取、安全 MySQL 下推和扩展管理,详见 v2.2.0 发布说明。

应用版本与 DuckDB 引擎版本分别维护。v2.2.0 继续使用 DuckDB 2.0 正式版(duckdb==2.0.0,engine v2.0.0);v2.1.1 仍是 1.6.0.dev379 / v2.0.0-alpha39998。新库继续使用 v2.0.0 存储格式;旧库不会自动迁移,扩展须匹配正式版引擎和运行平台。

“数据探索”按实际字段类型推荐统计方式,确认 SQL 后显示指标卡片;也可采样发现 JSON/VARIANT/文本列中的路径,选择输出类型并提取为列。路径发现先应用当前筛选,最多采样 100 行,不代表完整结构;统计使用完整筛选范围。默认文本提取保留大整数精度,缺失路径或转换失败返回 NULL。此入口用于桌面和服务器版,浏览器内 Wasm Demo 暂不提供。

MySQL 查询支持安全的时间/数值条件及关联键候选下推;可等价转换的单表 COUNT 在源库完成,SUM/AVG 继续由 DuckDB 精确计算。执行前后显示采用的方式;无法证明安全的表达式保留本地执行,原生 remote_pushdown 未全局开启。

扩展页支持名称/用途搜索和安装状态筛选,SQL 示例按需展开。Avro 已加入官方精选安装目录,可通过 SQL 读取;文件导入选择器未新增 Avro 格式。

从 DuckQuery 2.0.x 升级不新增存储迁移。从 1.x 升级前,请备份 main.db、system.db 及对应 .wal,再阅读 2.0 大版本说明。旧库不会在启动时静默迁移;显式迁移到新存储格式后,应通过升级前备份恢复旧版本。

历史发布说明:v2.1.3 · v2.1.2 · v2.1.1 · v2.1.0 · v2.0.1 · v2.0.0。

“设置 → DuckDB 数据库存储”可查看资源预算、检查最近备份和查看恢复指引。扩展按引擎版本隔离;详细兼容范围见引擎升级方案。

文档与参与

文档索引 · 配置参考 · 使用手册 · 参与贡献 · 行为准则

遇到问题或有功能建议,欢迎提交 Issue,说明你的场景、应用版本和复现步骤。觉得有用,也欢迎点亮 Star。

感谢 LINUX DO 对开源项目的支持。DuckQuery 使用 MIT License。

About

基于 DuckDB 的 AI 可视化 SQL 工作台,本地文件与远程库一站式跨源分析。AI-native visual SQL workbench on DuckDB. Query local CSV/Excel/JSON + remote MySQL/Postgres together with text-to-SQL chat — no ETL, local-first, cross-source JOINs. DuckDB Desktop

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

49 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages