SQLBot:用一句话问数据库要数据
前言
作为后端或数据分析,最常被问到的一句话是:“帮我查一下上个月的销售数据”。以前这个需求的流程是:提需求 → 排期 → 写 SQL → 导出 Excel。
现在有了 SQLBot,业务同学自己一句话就能查。
SQLBot 是 DataEase 开源项目组出品的智能问数系统(ChatBI),基于大模型和 RAG 技术。你用自然语言提问,它自动生成 SQL、执行查询、返回表格和图表。
它能做什么
- 自然语言提问,自动生成并执行 SQL;
- 结果自动生成可视化图表,支持切换图表类型;
- 支持追问,比如“只看今年的数据”;
- 图表可以拖进仪表板,拼成数据看板;
- 支持术语库和 SQL 示例库,让模型更懂业务;
- 支持工作空间隔离和细粒度权限,数据安全可控;
- 支持 Web 嵌入和
MCP调用,可以集成到自己的系统里。
五分钟跑起来
安装好 Docker 后,一条命令:
docker run -d \
--name sqlbot \
--restart unless-stopped \
-p 8000:8000 \
-p 8001:8001 \
-v ./data/sqlbot/excel:/opt/sqlbot/data/excel \
-v ./data/sqlbot/file:/opt/sqlbot/data/file \
-v ./data/sqlbot/images:/opt/sqlbot/images \
-v ./data/sqlbot/logs:/opt/sqlbot/logs \
-v ./data/postgresql:/var/lib/postgresql/data \
--privileged=true \
dataease/sqlbot
等容器启动完,浏览器打开 http://localhost:8000:
用户名:admin
密码:SQLBot@123456
登录后改掉默认密码,然后做两件事:
- 配模型:系统管理 → AI 模型配置 → 添加模型,填 API Key 和模型名;
- 配数据源:数据源 → 新建,
MySQL、PostgreSQL、SQL Server等都支持,没有现成数据库也可以直接导入 Excel/CSV。
然后就可以在“智能问数”里随便问了,比如:“查询本月销售额最高的 10 个商品”。
实际用下来的感受
好的方面:
- 上手门槛很低,配好模型和数据源就能用,不需要写一行代码;
- 简单的统计、分组、排序类查询,生成的 SQL 质量不错;
- 追问体验好,第一次问“订单量趋势”,接着问“只看华东区”,它能理解上下文;
- 表结构和字段注释写得清楚的库,效果明显更好。
要注意的:
- 模型名要和模型服务里的渠道名完全一致,差一个字符就报
model_not_found; - 数据库结构混乱、没有注释的话,SQL 准确率会下降,可以用术语库补充业务含义;
- 复杂的业务规则(比如“有效订单要排除哪些状态”)需要提前在术语库或提示词里说清楚;
- 生产环境记得配反向代理、
HTTPS,并定期备份挂载的data目录。
适合谁用
- 业务、运营同学:不用求人就能自助查数;
- 小团队:没有专职 BI 也能有数据看板;
- 开发者:通过
MCP和嵌入式方式,给自己的系统加问数能力。
总结
SQLBot 解决的是一个很实际的问题:让不写 SQL 的人也能安全地查数。一条 Docker 命令就能本地跑起来,成本几乎为零,值得一试。