metabase / metabase

metabase/metabase

open_in_new前往仓库

易于使用的开源商业智能和嵌入式分析工具,让每个人都能处理数据 :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 包安装

  1. 下载最新版本的 JAR 文件(从 GitHub 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。
  • AI 功能风险:使用 AI 功能时,提示词、元数据及部分字段值可能发送至第三方 AI 提供商,需注意数据隐私。
  • Actions 限制:目前 Actions 仅支持 PostgreSQL 和 MySQL 数据库。
  • Metabot 限制:Metabot 无法生成包含 SQL 变量的查询,无法添加目标线,无法修改图表格式等。
  • 性能考虑:对于大规模数据,查询性能可能受限于数据库和 Metabase 的配置,建议合理设置缓存。

官方链接

信息来源和分析时间

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