惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
IT之家
IT之家
V
V2EX
Jina AI
Jina AI
V
Visual Studio Blog
有赞技术团队
有赞技术团队
博客园 - 司徒正美
博客园 - 叶小钗
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
Google Online Security Blog
Google Online Security Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
N
News and Events Feed by Topic
N
News and Events Feed by Topic
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
SecWiki News
SecWiki News
博客园_首页
罗磊的独立博客
量子位
Latest news
Latest news
I
Intezer
V
Vulnerabilities – Threatpost
A
Arctic Wolf
Last Week in AI
Last Week in AI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
SegmentFault 最新的问题
S
Security Affairs
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
N
News | PayPal Newsroom

子虚栈

观草木虫鱼鸟兽 仲春夜行记 溶剂上石机理:高分子的溶解性分析 LP1:窒陬记 皆得其宜? 金属清洗笔记 播客解蔽 卖个破绽 动量 随机的殇 MDX+HEXO初试 乙巳大雪摄影小结 字母雕刻笔记 mysql子查询 业余无线电笔记 EP4:有纸化生活 格风吹草木 W山游记 巨人的荷塘 小心王二麻子 Oxygen Pro Mini 使用手册 池塘、鱼以及鱼食 在这个疆场的那个地域的领域之内 前端笔记101 九云坊专用程序学习笔记 热传导(稳态)笔记 2025(乙巳)年终总结:泛泛放逸之徒 浅论书写方式:提示词是书写的最终形式吗? 传热学笔记
MetaBase笔记
· 2026-02-26 · via 子虚栈

近日在研究数据可视化,扒拉了一些BI工具,找来找去,陷入选择困难症。最后发现Metabase安装很方便——直接用java便可以运行。便快速上手,用了几天,感觉良好,有深入学习的必要,特意撰写此文,边学边用。

之前也有用过其他的一些数据可视化工具,如厂内MES系统的Ureport2,帆软的finerepport,因为其定位都是做报表,也就意味着需要对展示数据的细节进行巨细无遗的全面控制才能整出来一个结果。这类软件很相近(一丘之貉般的繁琐),大概的步骤都是:

  1. 在数据库管理软件(如DBeaver)里测试SQL,
  2. SQL没问题了再放到报表的模型里,并按照其语法规则配置可控的查询参数;
  3. 在报表引擎的界面上逐个单元格地配置字段、格式、字体、大小。如果需要进行一些图表的展示,还需要控制表的位置,定义各个轴的参数,维护一套配色规则等等,
  4. 最后点击渲染。如果报错,就必须回头重新配置报表,往往配置好一个完美的报表需要好几天的时间。
配置SQL语句 配置扇形图

尽管磕磕拌拌地也能做出来想要的效果,但是对于一些简单的数据分析、监控来说,就非常烦人了。如果说时间就是生命,那操作这些报表引擎简直就是在割腕自杀,发明这类报表的人就是在谋财害命,让使用报表的同志们把热情消弭于各种本该自动化的调整、点击中。虽说对于开发项目初期那些大型报表来说,能熟练运用这类引擎的话效率也蛮高的,然而因为诸多的反人类设计,这类引擎的学习曲线也比较陡峭,通常熟练起来之后报表也基本都做完了(亲身体验),只能做些锦上添花的小修改,让人暗叹英雄无用武之地。

而MetaBase的话,就…好呗。

最突出的优势是它将SQL编辑器与数据可视化很好地集成在了一起。内置的SQL编辑器有语法高亮,搜索替换、快捷键、语法纠错,自动填充,数据表字段建议等等[1]。在进行一些即时的分析,挖掘一些如工艺参数关系、产量情况等的情形下,非常之方便。

因为MetaBase的文档比较垃圾偏向说明,一些操作细节上的疑难,自己摸索[2]搞不出来的,完全可以去查阅学习,但对于一些提纲挈领的思路,文档就显得模模糊糊,一些名词翻译或者定义本身就有问题,让人丈二和尚摸不着头脑,这便本文的目标——对MetaBase进行一个全局的审视。

通览

  1. 问题(Question)这其实就是一个将SQL查询与可视化结合在一起的功能,是MetaBase最为基础的组成部分。有各种可视化、查询结果导出、问题提醒。其本身也有一个版本记录功能,出岔子后可以向前复原历史版本的记录。向外可以嵌入到其他地方,放置到仪表盘中。

问题的编辑方式有两种,一种是写SQL,适用于从头写的原始SQL;一种是用图形化界面进行配置,适合于一些已经初步整理的视图。

问题的储存方式也有两种,一种是传统的将其放到一个文件夹里(这里叫做“集合”),然后在各个地方复用;另一种是将其储存到仪表盘里,那就只能在仪表盘的界面里看到点进去编辑。后者适合那些临时的小指标,没有整理归类的必要直接写在仪表里。快速可视化
界面最下面正中便是基本的两部分——查询结果与可视化。

左侧的可视化有基本的表格(相较于查询结果表,有更多自定义的部分,如控制显示、用条件格式)、柱状图、折线图、饼图、组合图、散点图、也有复杂一点的桑基图、瀑布图、地图、漏斗图等。配置的方式大同小异,都是点击左侧可视化|⚙的可视化,选择图表类型,然后点击配置各个坐标轴的参数、系列、颜色、线宽、格式等等。

图表有一个很人性化的设计——可以自动保存历史每种可视化的配置。比如你费了一些功夫绘制了一个折线图,又想绘制成柱状图看看效果,这时候可视化直接点击到柱状图进行配置(系统会根据前一个折线的配置给你生成一个差不多的柱状图,而不需要从头配置)。当感觉柱状图效果不怎样时,点击回到折线图里,折线图的配置也不会丢失。这个非常细节的设计极其好用。

右侧显示查询的行数、查询耗时、查询结果/图表的导出。


其他

安装

  1. Metabase安装:下载JAR文件,安装jdk,运行java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar,访问http://localhost:3000/
  2. SQLite安装下载sqlite-dll与sqlite-tools,解压到一个文件夹,添加环境变量。终端输入sqlite3进入交互命令模式,找个合适位置,创建数据库.open ku.db,同时随便创建一个表(Metabase连接时,如果是空数据库,会报错连不上)
1
2
3
CREATE TABLE demo(
ID INT PRIMARY KEY NOT NULL
);
  1. 连接SQLite:假设我在此处创建了一个数据库D:/BI/ku.db,那么可以通过jdbc:sqlite:///D:/BI/ku.db链接来在MetaBase中配置此数据库[3]
    连接示例

配置

Metabase支持各种数据库,配置起来也比较方便,文档写的很细,在此不再赘叙。

配置sqlite 配置mysql

邮箱提醒

参照文档,配置SMTP等邮箱服务,写SQL查询,创建警报,出现预期的不良值时自动触发,发送到自己账号的邮箱里。

如果是用的QQ邮箱,在微信里配置一下名为”QQ邮箱提醒“的服务,就可以收到实时的提醒了

问题记录

忘记账号且忘记密码怎么办?

metabase本身的数据是存储在H2数据库中的,可以通过一些数据库管理软件来读取之,比如利用我手头的DBeaver,就可以这样做:

  1. 停止metabase服务,不然后面访问其数据库时会因为同时访问而报错。
  2. 在DBeaver中新建一个H2(Embedded V.2)数据库连接,连接时选中metabase.jar同级目录下的metabase.db.mv.db文件实体。
    DBeaver新建连接时注意选择这个V2版本的H2
  3. 执行如下SQL语句,或者直接点开public数据库下的core_user表单可以查到管理员的账号邮箱
1
2
3
SELECT id, email, first_name, last_name 
FROM core_user
WHERE is_superuser = TRUE;
  1. 最后执行密码重置命令,会得到一个【token】,而后访问http://localhost:3000/auth/reset_password/【这个Token】即可重置密码
1
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar reset-password thebesthumanever@exmaple.com

  1. 如果可以像Dbeaver一样点表名跳转表单详情等一些功能的话就更完美了(有空去提个issue) ↩︎

  2. Metabase的页面很直观,大多数时候直接就可以上手,不需要学习 ↩︎

  3. 注意:空库有概率出现【Metabase 已尝试,但无法连接 Failed to connect to Database】的报错,随便建个表即可 ↩︎