news 2026/4/24 4:25:18

被Excel报表折腾到崩溃,Metabase用下来终于解脱了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
被Excel报表折腾到崩溃,Metabase用下来终于解脱了

前言

做报表这件事,技术含量不高但特别费时间。Excel 公式、透视表、VLOOKUP,嵌套来嵌套去,最后出来的图还不一定美观。团队要看同一份数据,要么截图发群里,要么传来传去版本混乱,想加个筛选条件还要重新折腾一遍。数据多了电脑还卡,崩溃一次白干半天。

我之前就是这样,每次做数据分析汇报之前都要熬一阵。后来开始研究有没有更顺手的方案,找到了 Metabase。它是开源的 BI 平台,连接数据库之后点点鼠标就能生成图表,柱状图、折线图、饼图、地图这些都支持,拖拽字段就能出可视化结果,不用写代码。Docker 一条命令就能跑起来,配 cpolar 穿透之后外网也能访问,团队成员直接打开链接看实时数据,不用传来传去。

本文就把 Metabase 从零部署到跑起来的完整步骤走一遍,配 cpolar 穿透实现公网访问,给被 Excel 折磨的人一个参考。

1 什么是Metabase?

Metabase 是一款开源、零门槛的数据可视化 BI(Business Intelligence)平台。它的目标非常简单:让每个人都能轻松理解数据,而不需要成为数据分析师或会写 SQL 的程序员

你只需要连接你的数据库,Metabase 就能帮助你:

  • 自动识别数据结构,无需繁琐配置
  • 几分钟做出图表:柱状图、折线图、饼图、地图、数据透视等常见图表全支持
  • 可视化界面操作:拖拽选择字段即可生成分析
  • 支持 SQL 编辑器:进阶用户可以写查询、定时发送结果
  • 创建仪表盘和大屏:方便团队共享数据视图
  • 权限管理与团队协作:对不同用户设置不同访问权限

作为一款开源项目,它不仅免费,还拥有完整的社区生态,文档、插件、部署方式都非常成熟。无论你是小团队、创业项目,还是个人开发者,都可以用它快速搭建自己的数据看板系统。

2 使用Docker一键部署Metabase

本教程将在Windows上操作演示。使用Docker方式一键部署Metabase,如果还没有安装Docker的小伙伴,可以先访问上面链接进行安装一下。

安装好后,电脑按Win + R键,输入cmd回车,使用如下命令进行一键部署:

dockerrun-d-p3000:3000--namemetabase-vmetabase-data:/metabase-data metabase/metabase

执行如下图所示:

最后一行出现随机字符串就代表完成啦,且会自动启动,可以进一步使用如下命令查看状态:

dockerps

如下图:

可以看到,状态为UP,就是代表运行中的,运行在3000端口上,我们浏览器访问测试一下:

http://localhost:3000

访问成功啦!

3 简单演示使用Metabase

3.1 Metabase初始化配置

首先,点击首页上的Let's get started进入下一步:

进入下一步后,我们可以点击右上角,先把语言切换为中文:

然后填写信息,填写完成信息后,继续下一步做一个简单的回答,接着来到配置数据源页面:

可以看到在这个页面有多种数据库,这里以MySQL数据库作为演示,您也可以自行选择其他相关数据库进行添加:

我这里准备了一个学生信息表数据库(student_info),里面分别有3张表,学生表(students),成绩表(scores),课程表(courses):

我当前的数据库账号密码都是root,所以jdbc连接语句为如下:

jdbc:mysql://root:root@192.168.50.149:3306/student_info?ssl=flase

代表的含义如下:

  • root:root- 数据库用户名和密码(格式:用户名:密码
  • 192.168.50.149:3306- 数据库服务器地址和端口
  • student_info- 要连接的数据库名称
  • ssl=false- 禁用 SSL 加密连接(本地测试环境可以关闭)

💡 提示:如果你的 MySQL 数据库在本地运行,地址可以使用localhost127.0.0.1。如果 Metabase 运行在 Docker 容器中,请使用宿主机的实际 IP 地址或host.docker.internal(Windows/Mac Docker Desktop)。

接着,将该语句填写到Connection string中,会自动填写其他项:

点击关闭使用安全连接,然后点击连接数据库,可以看到左下角提示成功连接到数据库了:

接着做一些基础回答就可以进入首页啦:

3.2 Metabase可视化默认图表展示

首先,点击侧边栏的数据库菜单,然后接着点击刚才添加的数据库:

进入后,选择一张表,这里以学生表(student)为例:

点击进入后,可以看到基础的数据表格就出来啦:

页面上可以做很多的操作,如过滤、汇总、编辑器、可视化等,还可以编写SQL查询语句,比如这里想要筛选条件为不等于在读的学生,也就是已经毕业的:

可以看到就只剩下一条数据了,因为只有该学生为毕业状态,响应很快:

3.3 可视化图表

3.3.1 柱状图

这里以性别字段为例,做一个柱状图。首先,点击右上角的汇总按钮,然后选择Gender字段,点击完成:

可以看到直接就出来性别柱状图分布了,我们还可以点击可视化旁边的设置按钮,在显示里面开启显示数据点上的值

如果想要保存,可以点击右上角的保存按钮:

3.3.2 饼状图

如果想要查看饼状图,可以直接点击可视化,然后选择饼状图即可,就会直接显示饼状图的数据:

其他的图表也是如此操作即可。

3.4 编写SQL语句进行查询

Metabase也支持通过编写SQL语句来进行查询,回到首页,首先点击右上角的创建按钮,然后选择SQL查询即可:

进入到新的页面后,即可直接输入SQL语句进行查询:

这里举例以**查询学生成绩排名(含选课数量、平均成绩、等级评定)**为例,进行多表联合查询:

SELECTs.student_noAS学号,s.nameAS姓名,s.majorAS专业,COUNT(sc.course_id)AS选课数量,ROUND(AVG(sc.score),2)AS平均成绩,CASEWHENAVG(sc.score)>=90THEN'优秀'WHENAVG(sc.score)>=80THEN'良好'WHENAVG(sc.score)>=60THEN'及格'ELSE'不及格'ENDAS等级FROMstudents sLEFTJOINscores scONs.id=sc.student_idWHEREs.status='在读'GROUPBYs.id,s.student_no,s.name,s.majorORDERBY平均成绩DESC;

输入后,按Ctrl +回车按钮,即可执行查询,如下图所示:

还可以点击下方的可视化按钮,配置图表,将其显示成图表的方式,更易查看:

4 仪表盘与分享

前面我们已经学会了如何连接数据库、生成可视化图表,以及编写 SQL 查询来分析数据。但在实际工作中,我们往往需要将多个关键指标集中展示,方便团队快速决策,同时还要能够将这些数据洞察分享给其他成员。这就是 Metabase 的「仪表盘」和「分享」功能的价值所在——它让数据不仅仅停留在个人分析层面,而是能够真正流动起来,成为团队协作的利器。

4.1 仪表盘

点击右上角创建,再点击仪表盘按钮,创建一个仪表盘:

填写名字等信息,点击创建:

进入到新的页面后,点击添加图表:

可以在右边看到前面保存的图表,点击就可以添加进来了:

点击右上角的保存按钮进行保存后,仪表盘就成功做好了。

4.2 分享

所有图表,仪表盘都可以进行分享,分享给您的朋友查看,点击页面上的分享图标:

然后可以选择一个分享方式,这里以链接做演示:

点击后,可以看到生成一个链接:

但是这个链接显示为localhost地址,我们可以通过局域网访问自己的这个服务,在cmd中输入ipconfig命令查看自己电脑的IP地址:

知道局域网地址后,我们直接把localhost地址修改为你的局域网地址就行啦:

可以看到成功访问!

5 穿透Metabase以支持公网访问

虽然局域网分享已经能让同一网络下的同事查看数据了,但问题来了:如果团队成员在外地出差、居家办公,或者你想把数据报告分享给客户、合作伙伴,他们根本访问不了你的 localhost 或局域网地址。更尴尬的是,传统的解决方案要么需要购买云服务器、配置公网 IP 和域名,要么就只能截图、导出 PDF 发过去——前者成本高、配置复杂,后者又回到了「静态数据、无法实时更新」的老路子。

这时候就需要内网穿透工具出马了。通过cpolar,我们可以不用服务器、不用公网 IP,就能把本地运行的 Metabase 映射到公网上,生成一个任何人都能访问的 HTTPS 链接。无论对方在哪里,只要有网络,就能实时查看你的数据仪表盘——这才是真正意义上的「随时随地,数据触手可及」。

5.1 什么是cpolar?

  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。

5.2 下载cpolar

打开cpolar官网的下载页面,点击立即下载 64-bit按钮,下载cpoalr的安装包:

下来下来是一个压缩包,解压后执行目录种的应用程序,一路默认安装即可,安装完成后,打开cmd窗口输入如下命令确认安装:

cpolar version

出现如上版本即代表安装成功!

5.3 注册及登录cpolar web ui管理界面

注册完成后,在浏览器中输入如下地址访问 web ui管理界面 :

http://localhost:9200

如果还没有账号,点击下方免费注册即可注册账号。输入刚才注册好的cpolar账号登录即可进入后台页面:

5.4 穿透Metabase项目的WebUI界面

5.4.1 随机域名方式(免费方案)

随机域名方式适合预算有限的用户。使用此方式时,系统会每隔24 小时左右自动更换一次域名地址。对于长期访问的不太友好,但是该方案是免费的,如果您有一定的预算,可以查看大纲5.4.2固定域名方式,且访问更稳定

点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

  • remoteDesktop隧道,指向3389端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

点击编辑website的隧道,修改成我们Metabase需要的信息:

接着来到在线隧道列表,可以看到名称为metabase-3000隧道的两条记录信息,一条协议为http,另一条协议为https:

以https为例,访问测试(加载稍慢,需耐心等待一下):

可以看到,成功的访问到了Metabase的web登录页面了。

5.4.2 固定域名方式(升级任意套餐皆可)

通过前面的配置,我们已经成功实现了Metabase的远程访问,但免费随机域名方案的局限性也逐渐显现:每24小时左右自动更换域名地址,意味着你需要频繁更新书签、重新分享链接,甚至可能因为忘记更新而无法访问。固定域名方案正是为了解决这些痛点而生,让你拥有一个永久不变的专属地址

首先,进入官网的预留页面:

https://dashboard.cpolar.com/reserved

选择预留菜单,即可看到保留二级子域名项,填写其中的地区名称描述(可不填)项,然后点击保留按钮,操作步骤图如下:

列表中显示了一条已保留的二级子域名记录:

  • 地区:显示为China Top
  • 二级域名:显示为Metabase

注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主

接着,进入侧边菜单栏的隧道管理下的隧道列表,可以看到名为metabase-3000的隧道,点击编辑按钮进入编辑页面:

修改域名类型为二级子域名,然后填写前面配置好的子域名,点击更新按钮:

来到状态菜单下的在线隧道列表可以看到隧道名称为metabase-3000的公网地址已经变更为二级子域名+固定域名主体及后缀的形式了:

这里以https协议做访问测试(加载稍慢,需耐心等待一下):

访问成功!这样一来,你就拥有了一个永久不变的专属域名,再也不用担心24小时域名更换的问题。而且,此时再分享给你的朋友访问你的数据看板,也是可以访问的了(只需要手动替换下域名就ok啦):

总结

搭好之后最直接的变化是:做一份数据看板的时间从按天算变成按分钟算,拖几个字段就能出图,SQL 写不来也没关系。团队协作这块改善明显,数据实时更新,分享链接打开就是最新版本,不用再追着要截图。

整套东西 Docker 部署几分钟能跑起来,对没有技术背景的人也比较友好。当然数据库连接部分还是要填 Connection String,有一定动手能力的人操作起来会顺利些。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 4:21:19

BrowserMob Proxy故障排除与调试:常见问题解决方案大全

BrowserMob Proxy故障排除与调试:常见问题解决方案大全 【免费下载链接】browsermob-proxy A free utility to help web developers watch and manipulate network traffic from their AJAX applications. 项目地址: https://gitcode.com/gh_mirrors/br/browsermo…

作者头像 李华
网站建设 2026/4/24 4:18:23

前端知识-HTML基础

Html简介 HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字&#…

作者头像 李华
网站建设 2026/4/24 4:17:24

Transformer实战(2)——循环神经网络详解

Transformer实战(2)——循环神经网络详解 0. 前言 1. 基本循环神经网络单元 1.1 循环神经网络工作原理 1.2 时间反向传播 1.3 梯度消失和梯度爆炸问题 2. RNN 单元变体 2.1 长短期记忆 2.2 门控循环单元 2.3 Peephole LSTM 3. RNN 变体 3.1 双向 RNN 3.2 状态 RNN 4. RNN 拓扑…

作者头像 李华
网站建设 2026/4/24 4:17:18

[STM32] 4-2 USART与串口通信(2)

文章目录前言4-2 USART与串口通信(2)数据发送过程双缓冲与连续发送数据发送过程中的问题数据接收过程TXE标志位(发送数据寄存器空)TC标志位(发送完成标志位)单个数据的发送数据的连续发送接收过程中遇到的问题问题描述&#xff1a…

作者头像 李华
网站建设 2026/4/24 4:11:17

SWE-agent模板系统:Jinja2驱动的智能提示工程终极指南

SWE-agent模板系统:Jinja2驱动的智能提示工程终极指南 【免费下载链接】SWE-agent SWE-agent takes a GitHub issue and tries to automatically fix it, using your LM of choice. It can also be employed for offensive cybersecurity or competitive coding cha…

作者头像 李华