metabase / metabase
metabase/metabase
易于使用的开源商业智能和嵌入式分析工具,让每个人都能处理数据 :bar_chart:
项目概览
项目概述
Metabase 是一个开源(AGPL)的商业智能(BI)与嵌入式分析工具,旨在让非技术用户也能轻松地从数据中获取洞察。它提供了直观的图形化查询界面、SQL 编辑器、仪表板、数据可视化、嵌入式分析、AI 助手(Metabot)等功能,支持多种主流数据库。项目主要使用 Clojure 语言开发,并提供了 Docker、JAR 等多种部署方式。
核心功能
- 图形化查询构建器:无需编写 SQL,通过点击和拖拽即可创建查询和图表。
- SQL 编辑器:支持编写原生 SQL 查询,并带有语法高亮、自动补全等功能。
- 仪表板:创建交互式仪表板,支持过滤器、自动刷新、全屏展示、自定义点击行为等。
- 数据可视化:提供多种图表类型,包括折线图、柱状图、饼图、漏斗图、桑基图、地图等。
- 嵌入式分析:支持将图表、仪表板甚至整个 Metabase 应用嵌入到自己的产品中,支持 SSO、JWT、OIDC 等认证方式。
- AI 助手(Metabot):通过自然语言提问、生成 SQL、分析图表、修复查询错误,并支持在 Slack 中使用。
- 数据建模:支持创建模型(Models)、指标(Metrics)、分段(Segments),并管理表元数据。
- 数据操作(Actions):支持创建自定义表单和业务逻辑,对数据库进行增删改操作。
- 权限管理:提供细粒度的数据权限、集合权限、行级和列级安全控制。
- 告警与订阅:设置数据告警,或通过邮件、Slack、Webhook 定期发送仪表板订阅。
- 多语言支持:支持多种语言的界面翻译。
适用与不适用场景
适用场景:
- 企业内部自助式 BI,让业务人员自行探索数据。
- 需要快速搭建数据可视化仪表板的场景。
- 将分析功能嵌入到 SaaS 产品中,为客户提供数据洞察。
- 需要统一数据访问入口,并实施细粒度权限控制的组织。
不适用场景:
- 需要复杂的数据清洗、ETL 流程的场景(Metabase 主要面向查询和可视化,数据转换能力有限)。
- 需要实时流数据处理或大规模数据仓库管理的场景。
- 需要高度定制化前端界面的场景(Metabase 的 UI 定制能力有限,但可通过嵌入 SDK 实现部分定制)。
- 对数据安全要求极高,且无法接受将数据发送至第三方 AI 服务的场景(使用 AI 功能时需注意隐私)。
技术架构与依赖
- 主要语言:Clojure(后端)、TypeScript/JavaScript(前端)。
- 数据库支持:支持 PostgreSQL、MySQL、SQL Server、Oracle、SQLite、MongoDB、BigQuery、Redshift 等主流数据库(具体列表见官方文档)。
- 应用数据库:默认使用 H2 数据库,生产环境建议配置 PostgreSQL 或 MySQL。
- 部署方式:支持 Docker、JAR 包、Metabase Cloud 等。
- AI 功能依赖:Metabot 需要配置 AI 提供商(如 OpenAI、Anthropic、Azure、Amazon Bedrock 等)或使用 Metabase 云服务。
- MCP 服务器:内置 MCP(Model Context Protocol)服务器,支持与 Claude、Cursor 等 AI 客户端集成。
安装与快速开始
使用 Docker 安装
docker pull metabase/metabase:latest
docker run -d -p 3000:3000 --name metabase metabase/metabase
使用 JAR 包安装
- 下载最新版本的 JAR 文件(从 GitHub Releases 获取)。
- 运行
java -jar metabase.jar。
快速开始
- 访问
http://localhost:3000。 - 按照引导设置管理员账号、连接数据库。
- 开始创建问题(Questions)和仪表板(Dashboards)。
典型使用方法
创建图表(无需 SQL)
- 点击 + New > Question。
- 选择数据源(表或模型)。
- 使用图形化界面添加筛选、汇总、分组等操作。
- 点击 Visualize 查看图表,并可保存到集合或仪表板。
使用 SQL 编辑器
- 点击 + New > SQL query。
- 选择数据库,编写 SQL 查询。
- 点击 Run 执行,并可保存为问题。
创建仪表板
- 点击 + New > Dashboard。
- 添加已保存的问题或图表。
- 配置过滤器、自动刷新等交互功能。
使用 Metabot(AI 助手)
- 在 Metabase 界面中按
Cmd/Ctrl + E打开聊天侧边栏。 - 用自然语言提问,如“显示上个月的销售额”。
- Metabot 会生成查询或图表,并可进一步调整。
配置与部署要点
- 生产环境应用数据库:建议使用 PostgreSQL 或 MySQL 作为应用数据库,避免使用默认的 H2。
- 环境变量:支持通过环境变量配置数据库连接、站点 URL、缓存等,例如
MB_DB_TYPE、MB_DB_DBNAME、MB_SITE_URL。 - 反向代理与 HTTPS:生产环境建议配置反向代理(如 Nginx)并启用 HTTPS。
- 备份:定期备份应用数据库,可使用官方提供的序列化功能或数据库备份工具。
- AI 功能配置:在 Admin > AI 中配置 AI 提供商(如 OpenAI、Anthropic)或使用 Metabase 云服务。
- MCP 服务器:在 Admin > AI > MCP 中启用 MCP 服务器,并配置允许的客户端。
- 权限设置:根据组织需求配置用户组、数据权限、集合权限等。
限制、风险与许可证
- 许可证:本仓库包含 AGPL 许可的开源版和商业版(Metabase Commercial Software License)的源代码。具体条款见 LICENSE.txt。
- AI 功能风险:使用 AI 功能时,提示词、元数据及部分字段值可能发送至第三方 AI 提供商,需注意数据隐私。
- Actions 限制:目前 Actions 仅支持 PostgreSQL 和 MySQL 数据库。
- Metabot 限制:Metabot 无法生成包含 SQL 变量的查询,无法添加目标线,无法修改图表格式等。
- 性能考虑:对于大规模数据,查询性能可能受限于数据库和 Metabase 的配置,建议合理设置缓存。
官方链接
信息来源和分析时间
- 信息来源:GitHub 仓库 README、官方文档(docs/ 目录)、最新发布信息(v0.63.2)。
- 分析时间:2026年7月30日(基于最新发布信息)。