Metabase零代码 BI 数据可视化工具自建数据看板在数据驱动决策的时代能快速看到业务数据的变化趋势至关重要。然而专业 BI 工具如 Tableau、Power BI价格昂贵而让每个业务同学都学 SQL 又不现实。Metabase 正是为了解决这个矛盾而生它是一款完全开源的 BI 工具通过可视化的问题构建器无需写 SQL让任何人都能查询数据库、创建图表、搭建仪表盘并一键分享给团队。本文将带你在自己的服务器上使用 Docker Compose 部署 Metabase配置 Caddy 反代连接你的业务数据库并演示从创建问题到构建仪表盘的完整工作流。Metabase 能做什么可视化问题构建器点击选择数据表 → 添加过滤条件 → 设置分组聚合 → 选择图表类型全程鼠标操作无需 SQL原生 SQL 编辑器高级用户可以直接写 SQL结果同样可以可视化仪表盘将多个图表组合成仪表盘支持钻取drill-through交互定时报告按日/周/月自动将仪表盘以邮件或 Slack 推送给订阅者数据告警当某个指标超过阈值时触发通知公开链接生成无需登录即可查看的嵌入链接方便分享给外部用户嵌入将图表嵌入到自己的应用中开源版支持简单嵌入Metabase 支持连接几乎所有主流数据库PostgreSQL、MySQL、SQLite、ClickHouse、MongoDB、BigQuery、Snowflake、Redshift、SQL Server、Oracle 等。服务器配置Metabase 基于 JavaJVM运行加上查询结果缓存对内存的需求比较高。推荐使用2 核 4GB 机型这是 Metabase 官方建议的最低生产环境配置如果数据量较大、并发查询多建议升级至 4 核 8GB。推荐使用雨云服务器 rainyun-com来部署 Metabase注册填优惠码2026off可领取 5 折。雨云提供大带宽、低延迟的云主机非常适合部署需要稳定运行的数据分析工具。环境要求操作系统Ubuntu 22.04 LTSCPU2 核及以上内存4GB 及以上建议 JVM 堆内存 2GB磁盘20GB 及以上开放端口80、443Docker Compose 部署安装 Dockersudoaptupdatesudoaptupgrade-ycurl-fsSLhttps://get.docker.com|sudoshsudousermod-aGdocker$USERnewgrpdocker创建项目目录mkdir-p~/metabasecd~/metabase编写 docker-compose.ymlversion:3.9services:metabase:image:metabase/metabase:latestcontainer_name:metabaserestart:unless-stoppedports:-127.0.0.1:3000:3000environment:MB_DB_TYPE:postgresMB_DB_DBNAME:metabaseMB_DB_PORT:5432MB_DB_USER:metabaseMB_DB_PASS:metabasepassMB_DB_HOST:postgres# 可选设置 JVM 堆内存JAVA_OPTS:-Xmx2g# 可选设置时区MB_TIMEZONE:Asia/Shanghaidepends_on:postgres:condition:service_healthyvolumes:-metabase_data:/metabase-datapostgres:image:postgres:15-alpinecontainer_name:metabase-postgresrestart:unless-stoppedenvironment:POSTGRES_DB:metabasePOSTGRES_USER:metabasePOSTGRES_PASSWORD:metabasepassvolumes:-postgres_data:/var/lib/postgresql/datahealthcheck:test:[CMD-SHELL,pg_isready -U metabase]interval:10stimeout:5sretries:5volumes:metabase_data:postgres_data:说明这里的 PostgreSQL 是 Metabase 自身的应用数据库存储用户、问题、仪表盘配置等不是你要分析的业务数据库。业务数据库在初始设置向导中单独配置连接。启动服务dockercompose up-dMetabase 首次启动需要初始化数据库通常需要 1~2 分钟。查看启动日志dockercompose logs-fmetabase看到Metabase Initialization COMPLETE即表示启动成功。Caddy 反代配置安装 Caddysudoaptinstall-ydebian-keyring debian-archive-keyring apt-transport-httpscurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/gpg.key|sudogpg--dearmor-o/usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt|sudotee/etc/apt/sources.list.d/caddy-stable.listsudoaptupdatesudoaptinstallcaddy编辑 Caddyfilesudonano/etc/caddy/Caddyfile添加以下内容metabase.yourdomain.com { reverse_proxy localhost:3000 { header_up X-Real-IP {remote_host} header_up X-Forwarded-For {remote_host} } # 开启 gzip 压缩 encode gzip # 日志 log { output file /var/log/caddy/metabase.log { roll_size 10mb roll_keep 5 } } }创建日志目录并重载 Caddysudomkdir-p/var/log/caddysudosystemctl reload caddy初始设置向导访问https://metabase.yourdomain.com进入初始设置向导。第一步创建管理员账号填写姓名、邮箱和密码这是 Metabase 的超级管理员账号妥善保管。第二步选择语言Metabase 支持中文简体选择后界面全部切换为中文。第三步添加数据这一步配置你要分析的业务数据库不是 Metabase 自身的 PostgreSQL。以连接外部 PostgreSQL 为例数据库类型PostgreSQL显示名称生产数据库主机your_db_host端口5432数据库名your_database用户名readonly_user建议创建只读用户密码your_password点击测试连接确认连通性后保存。第四步完成设置向导完成后进入 Metabase 主界面左侧是导航栏顶部有搜索框。创建问题可视化查询Metabase 将每一次查询称为问题Question。使用可视化查询构建器点击顶部 新建→问题选择数据源和数据表如orders表筛选点击 “筛选” 按钮添加条件如status paid、created_at在过去 30 天内汇总点击 “汇总” 按钮选择聚合方式如 “按 created_at 按天分组统计行数”可视化Metabase 自动推荐图表类型也可手动切换为折线图、柱状图、饼图、地图等点击右上角保存为问题起个名字使用原生 SQL点击 新建→问题→原生查询在编辑器中输入 SQLSELECTDATE_TRUNC(day,created_at)ASdate,COUNT(*)ASorder_count,SUM(total_price)ASrevenueFROMordersWHEREcreated_atNOW()-INTERVAL30 daysANDstatuspaidGROUPBY1ORDERBY1;点击运行结果自动渲染为图表SQL 编辑器还支持变量实现动态筛选SELECT*FROMordersWHEREstatus{{status}}ANDcreated_at{{ start_date }}创建仪表盘点击顶部 新建→仪表盘命名为业务概览进入编辑模式点击右上角 添加→ 选择已保存的问题拖拽调整图表的位置和大小点击添加筛选器可以添加全局日期范围筛选器联动所有图表点击保存钻取Drill-through在仪表盘上点击图表中的某个数据点Metabase 会自动展示该数据点的明细数据无需额外配置。例如点击柱状图中某天的订单数会列出当天的所有订单列表。嵌入图表Metabase 开源版支持将图表嵌入到外部页面在问题或仪表盘页面点击右上角分享→嵌入此问题开启启用嵌入复制生成的 iframe 代码将代码粘贴到你的网页中iframesrchttps://metabase.yourdomain.com/embed/question/TOKEN#hide_parameterstrueframeborder0width800height600allowtransparency/iframe定时 PDF 报告打开一个仪表盘点击右上角的时钟图标→订阅选择邮件或Slack配置发送频率每天 9:00、每周一等添加收件人邮箱保存订阅注意需要先在管理后台→设置→电子邮件中配置 SMTP 服务器。管理用户与权限Metabase 支持细粒度的数据权限控制用户组创建不同权限的用户组如销售团队、“技术团队”数据权限为每个用户组配置可访问的数据库、数据表集合权限控制哪些用户组能查看哪些仪表盘和问题在管理后台→权限中进行配置。结语Metabase 让数据分析从工程师专属变成了人人可用——业务同学通过点选操作就能回答上周销售额是多少、哪个渠道的转化率最高这类问题不再需要等待技术同学写 SQL。自托管意味着数据留在你自己的服务器上安全可控也没有 SaaS 版本的用户数限制。
Metabase:零代码 BI 数据可视化工具,自建数据看板
发布时间:2026/5/25 17:12:44
Metabase零代码 BI 数据可视化工具自建数据看板在数据驱动决策的时代能快速看到业务数据的变化趋势至关重要。然而专业 BI 工具如 Tableau、Power BI价格昂贵而让每个业务同学都学 SQL 又不现实。Metabase 正是为了解决这个矛盾而生它是一款完全开源的 BI 工具通过可视化的问题构建器无需写 SQL让任何人都能查询数据库、创建图表、搭建仪表盘并一键分享给团队。本文将带你在自己的服务器上使用 Docker Compose 部署 Metabase配置 Caddy 反代连接你的业务数据库并演示从创建问题到构建仪表盘的完整工作流。Metabase 能做什么可视化问题构建器点击选择数据表 → 添加过滤条件 → 设置分组聚合 → 选择图表类型全程鼠标操作无需 SQL原生 SQL 编辑器高级用户可以直接写 SQL结果同样可以可视化仪表盘将多个图表组合成仪表盘支持钻取drill-through交互定时报告按日/周/月自动将仪表盘以邮件或 Slack 推送给订阅者数据告警当某个指标超过阈值时触发通知公开链接生成无需登录即可查看的嵌入链接方便分享给外部用户嵌入将图表嵌入到自己的应用中开源版支持简单嵌入Metabase 支持连接几乎所有主流数据库PostgreSQL、MySQL、SQLite、ClickHouse、MongoDB、BigQuery、Snowflake、Redshift、SQL Server、Oracle 等。服务器配置Metabase 基于 JavaJVM运行加上查询结果缓存对内存的需求比较高。推荐使用2 核 4GB 机型这是 Metabase 官方建议的最低生产环境配置如果数据量较大、并发查询多建议升级至 4 核 8GB。推荐使用雨云服务器 rainyun-com来部署 Metabase注册填优惠码2026off可领取 5 折。雨云提供大带宽、低延迟的云主机非常适合部署需要稳定运行的数据分析工具。环境要求操作系统Ubuntu 22.04 LTSCPU2 核及以上内存4GB 及以上建议 JVM 堆内存 2GB磁盘20GB 及以上开放端口80、443Docker Compose 部署安装 Dockersudoaptupdatesudoaptupgrade-ycurl-fsSLhttps://get.docker.com|sudoshsudousermod-aGdocker$USERnewgrpdocker创建项目目录mkdir-p~/metabasecd~/metabase编写 docker-compose.ymlversion:3.9services:metabase:image:metabase/metabase:latestcontainer_name:metabaserestart:unless-stoppedports:-127.0.0.1:3000:3000environment:MB_DB_TYPE:postgresMB_DB_DBNAME:metabaseMB_DB_PORT:5432MB_DB_USER:metabaseMB_DB_PASS:metabasepassMB_DB_HOST:postgres# 可选设置 JVM 堆内存JAVA_OPTS:-Xmx2g# 可选设置时区MB_TIMEZONE:Asia/Shanghaidepends_on:postgres:condition:service_healthyvolumes:-metabase_data:/metabase-datapostgres:image:postgres:15-alpinecontainer_name:metabase-postgresrestart:unless-stoppedenvironment:POSTGRES_DB:metabasePOSTGRES_USER:metabasePOSTGRES_PASSWORD:metabasepassvolumes:-postgres_data:/var/lib/postgresql/datahealthcheck:test:[CMD-SHELL,pg_isready -U metabase]interval:10stimeout:5sretries:5volumes:metabase_data:postgres_data:说明这里的 PostgreSQL 是 Metabase 自身的应用数据库存储用户、问题、仪表盘配置等不是你要分析的业务数据库。业务数据库在初始设置向导中单独配置连接。启动服务dockercompose up-dMetabase 首次启动需要初始化数据库通常需要 1~2 分钟。查看启动日志dockercompose logs-fmetabase看到Metabase Initialization COMPLETE即表示启动成功。Caddy 反代配置安装 Caddysudoaptinstall-ydebian-keyring debian-archive-keyring apt-transport-httpscurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/gpg.key|sudogpg--dearmor-o/usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl-1sLfhttps://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt|sudotee/etc/apt/sources.list.d/caddy-stable.listsudoaptupdatesudoaptinstallcaddy编辑 Caddyfilesudonano/etc/caddy/Caddyfile添加以下内容metabase.yourdomain.com { reverse_proxy localhost:3000 { header_up X-Real-IP {remote_host} header_up X-Forwarded-For {remote_host} } # 开启 gzip 压缩 encode gzip # 日志 log { output file /var/log/caddy/metabase.log { roll_size 10mb roll_keep 5 } } }创建日志目录并重载 Caddysudomkdir-p/var/log/caddysudosystemctl reload caddy初始设置向导访问https://metabase.yourdomain.com进入初始设置向导。第一步创建管理员账号填写姓名、邮箱和密码这是 Metabase 的超级管理员账号妥善保管。第二步选择语言Metabase 支持中文简体选择后界面全部切换为中文。第三步添加数据这一步配置你要分析的业务数据库不是 Metabase 自身的 PostgreSQL。以连接外部 PostgreSQL 为例数据库类型PostgreSQL显示名称生产数据库主机your_db_host端口5432数据库名your_database用户名readonly_user建议创建只读用户密码your_password点击测试连接确认连通性后保存。第四步完成设置向导完成后进入 Metabase 主界面左侧是导航栏顶部有搜索框。创建问题可视化查询Metabase 将每一次查询称为问题Question。使用可视化查询构建器点击顶部 新建→问题选择数据源和数据表如orders表筛选点击 “筛选” 按钮添加条件如status paid、created_at在过去 30 天内汇总点击 “汇总” 按钮选择聚合方式如 “按 created_at 按天分组统计行数”可视化Metabase 自动推荐图表类型也可手动切换为折线图、柱状图、饼图、地图等点击右上角保存为问题起个名字使用原生 SQL点击 新建→问题→原生查询在编辑器中输入 SQLSELECTDATE_TRUNC(day,created_at)ASdate,COUNT(*)ASorder_count,SUM(total_price)ASrevenueFROMordersWHEREcreated_atNOW()-INTERVAL30 daysANDstatuspaidGROUPBY1ORDERBY1;点击运行结果自动渲染为图表SQL 编辑器还支持变量实现动态筛选SELECT*FROMordersWHEREstatus{{status}}ANDcreated_at{{ start_date }}创建仪表盘点击顶部 新建→仪表盘命名为业务概览进入编辑模式点击右上角 添加→ 选择已保存的问题拖拽调整图表的位置和大小点击添加筛选器可以添加全局日期范围筛选器联动所有图表点击保存钻取Drill-through在仪表盘上点击图表中的某个数据点Metabase 会自动展示该数据点的明细数据无需额外配置。例如点击柱状图中某天的订单数会列出当天的所有订单列表。嵌入图表Metabase 开源版支持将图表嵌入到外部页面在问题或仪表盘页面点击右上角分享→嵌入此问题开启启用嵌入复制生成的 iframe 代码将代码粘贴到你的网页中iframesrchttps://metabase.yourdomain.com/embed/question/TOKEN#hide_parameterstrueframeborder0width800height600allowtransparency/iframe定时 PDF 报告打开一个仪表盘点击右上角的时钟图标→订阅选择邮件或Slack配置发送频率每天 9:00、每周一等添加收件人邮箱保存订阅注意需要先在管理后台→设置→电子邮件中配置 SMTP 服务器。管理用户与权限Metabase 支持细粒度的数据权限控制用户组创建不同权限的用户组如销售团队、“技术团队”数据权限为每个用户组配置可访问的数据库、数据表集合权限控制哪些用户组能查看哪些仪表盘和问题在管理后台→权限中进行配置。结语Metabase 让数据分析从工程师专属变成了人人可用——业务同学通过点选操作就能回答上周销售额是多少、哪个渠道的转化率最高这类问题不再需要等待技术同学写 SQL。自托管意味着数据留在你自己的服务器上安全可控也没有 SaaS 版本的用户数限制。