## 项目概述

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 安装

```bash
docker pull metabase/metabase:latest
docker run -d -p 3000:3000 --name metabase metabase/metabase
```

### 使用 JAR 包安装

1. 下载最新版本的 JAR 文件（从 [GitHub Releases](https://github.com/metabase/metabase/releases) 获取）。
2. 运行 `java -jar metabase.jar`。

### 快速开始

1. 访问 `http://localhost:3000`。
2. 按照引导设置管理员账号、连接数据库。
3. 开始创建问题（Questions）和仪表板（Dashboards）。

## 典型使用方法

### 创建图表（无需 SQL）

1. 点击 **+ New** > **Question**。
2. 选择数据源（表或模型）。
3. 使用图形化界面添加筛选、汇总、分组等操作。
4. 点击 **Visualize** 查看图表，并可保存到集合或仪表板。

### 使用 SQL 编辑器

1. 点击 **+ New** > **SQL query**。
2. 选择数据库，编写 SQL 查询。
3. 点击 **Run** 执行，并可保存为问题。

### 创建仪表板

1. 点击 **+ New** > **Dashboard**。
2. 添加已保存的问题或图表。
3. 配置过滤器、自动刷新等交互功能。

### 使用 Metabot（AI 助手）

1. 在 Metabase 界面中按 `Cmd/Ctrl + E` 打开聊天侧边栏。
2. 用自然语言提问，如“显示上个月的销售额”。
3. 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](https://github.com/metabase/metabase/blob/master/LICENSE.txt)。
- **AI 功能风险**：使用 AI 功能时，提示词、元数据及部分字段值可能发送至第三方 AI 提供商，需注意数据隐私。
- **Actions 限制**：目前 Actions 仅支持 PostgreSQL 和 MySQL 数据库。
- **Metabot 限制**：Metabot 无法生成包含 SQL 变量的查询，无法添加目标线，无法修改图表格式等。
- **性能考虑**：对于大规模数据，查询性能可能受限于数据库和 Metabase 的配置，建议合理设置缓存。

## 官方链接

- [GitHub 仓库](https://github.com/metabase/metabase)
- [官方文档](https://www.metabase.com/docs/latest/)
- [Metabase Cloud](https://www.metabase.com/cloud/)
- [社区论坛](https://discourse.metabase.com/)
- [API 文档](https://www.metabase.com/docs/latest/api.html)

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、官方文档（docs/ 目录）、最新发布信息（v0.63.2）。
- 分析时间：2026年7月30日（基于最新发布信息）。