开源BI报表工具Metabase初体验

news2024/12/28 12:50:49

概述

一款开源BI工具,后端是用clojure开发的。官网,GitHub。

安装

安装非常简单,以metabase.jar包(后文简称jar包)方式分发。在GitHub Release页面下载最新版即可。也可以通过wget命令下载:
wget http://downloads.metabase.com/v0.30.0/metabase.jar。通过wget命令下载时的劣势是不知道最新版本号,从GitHub Release页面得知最新版本号后,替换掉前面的wget下载命令里面的版本号(v0.30.0),即可下载最新版。

Windows系统安装wget,参考Wget入门使用教程。

不同版本的jar包文件,需要不同的JDK版本。一般而言,现在没有人还在使用JDK 8以前的版本。查看JDK版本:java -version

启动:java -jar metabase.jar,正常而言会启动成功。如果启动报错:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/vladsch/flexmark/ast/HtmlInlineComment has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

参考IDEA常见使用问题整理文章里面的【无法访问com.zaxxer.hikari.HikariConfig】问题。

表示配置并使用的JDK版本和jar包版本不匹配。要么去下载更新的JDK版本,要么去下载更老的jar包版本。推荐前者,因为不知道得下载哪个旧版本的jar包,旧版本也会有一些bug,且不能体验新版本的新特性。

启动日志

控制台启动日志:

WARNING: Using Metabase with an H2 application database is not recommended for production deployments. For production deployments, we highly recommend using Postgres, MySQL, or MariaDB instead. If you decide to continue to use H2, please be sure to back up the database file regularly. For more information, see https://metabase.com/docs/latest/operations-guide/migrating-from-h2.html
INFO metabase.core :: Starting Metabase in STANDALONE mode
INFO metabase.server :: Launching Embedded Jetty Webserver with config:{:port 3000}
INFO metabase.plugins :: Loading plugins in D:\program\metabase\plugins...
INFO db.setup :: Running Database Migrations...
INFO db.setup :: Setting up Liquibase...
INFO core.QuartzScheduler :: Quartz Scheduler v.2.3.2 created.
INFO jdbcjobstore.JobStoreTX :: Using db table-based data access locking (synchronization).
INFO metabase.core :: Please use the following URL to setup your Metabase installation: http://localhost:3000/setup/
INFO metabase.sample-data :: Loading sample database
INFO util.files :: Extract file /sample-database.db.mv.db -> D:\program\metabase\plugins\sample-database.db.mv.db

从这个经过删减的日志能发现不少细节:

  1. 使用内存数据库H2,存储到本地文件,支持关系型数据库,且支持把H2文件导入到关系型数据库;
  2. 以STANDALONE,即单节点;Release下载页,还有企业版jar包;
  3. 使用Jetty容器;
  4. 支持插件,启动jar包时会把这个jar包里的插件,即各种不同的数据源(如Impala,ClickHouse等)的驱动-driver.jar文件,抽取到同级目录下的plugins文件夹下;
  5. 支持数据库迁移,使用Liquibase,而不是Flyway;
  6. 使用久未更新的最后版Quartz-2.3.2作为任务调度框架
  7. 默认端口地址为3000
  8. 自带一个sample数据源

数据源

浏览器打开:http://localhost:3000,无需输入用户名密码。下一步,有配置数据源的界面,可添加一个数据源;也可以跳过,使用内置的数据源Sample Database,在上面的启动过程中可看到加载Sample数据源的信息。这里添加一个数据源:
在这里插入图片描述
填好host、port、数据库、用户名和密码5元素信息后,会自动给出该DB下面各个表的dashboard信息。

数据源是数据产品,比如报表工具的核心,所有功能几乎都基于数据源。

使用

概念

有这么几个概念:
在这里插入图片描述

  • 集合:Collection,可理解为文件夹,集合下面可以新增集合,类似于文件夹下面可以新增子文件夹;
  • 问题:Question,可理解为Step By Step创建一个Dashboard;
  • SQL查询:SQLQuery,SQL编辑运行展示查询结果等功能;
  • 仪表板:Dashboard,可包含多个SQL查询或Question;
  • 模型:Model

Question

新增第一个Question时,会提示选择某个数据源(内置的Sample或自己添加)的某个表,出现如下步骤:
在这里插入图片描述
Filter用于筛选表的结果集,如只看某个用户创建的Board,然后筛选方式也有很多种:
在这里插入图片描述
Summarize用于查看某个指标,支持的指标如下:
在这里插入图片描述
最后选择哪个列进行group by。

后面再新增Question时,就可以选择基于某个数据源或已有的Question。

SQL查询

新建SQL查询,提示选择某个数据源。会出现一个上下排版的页面,上面是SQL编辑框,下面是执行结果展示框。SQL编辑框自带关键词、表名、字段名等智能提示,写SQL体验很棒。
在这里插入图片描述
如上图,SQL编辑框右侧有5个button:

  • 缩小编辑器:方便查看查询数据;
  • 了解数据:会列出全部表名,点击某个表,会列出全部字段,点击某个字段,会列出该字段的全部数据
  • 变量:参考下面章节
  • SQL片段:片段是SQL的可重用位。点击新建,弹窗提示,可知SQL片段常用于where查询条件
  • 执行:提交执行,快捷键Ctrl + Enter

SQL片段

注:系统设置里面可以方便快捷地即时更新系统语言。所谓即时,即不需要重启应用。绝大多数英文都看得懂,看不懂时可以切换成中文。但是不建议这么做,有些地方的翻译非常怪(不是下面这个截图)。本文截图中英混杂。扯远。

根据这个提示,不难得知,SQL判断常用于where子句
在这里插入图片描述

变量

在SQL编辑器里面写出的SQL带有{{variable_name}}类似这样的片段,就定义一个变量:

select * from user where update_time > {{date}};

可以在侧边栏中为变量指定类型,从而更改其行为。变量支持4种类型:文本、数量、日期、字段筛选器:
在这里插入图片描述
如果设置变量的类型为日期时,会出现一个DateTime Picker:
在这里插入图片描述
选择某个日期后,记得点击右下角的更新筛选器。

参考文档

模糊查询实现有点问题:
在这里插入图片描述
报错如下:
在这里插入图片描述

进阶

稍微有一点点深入吧。

订阅

订阅功能是把仪表板的数据通过邮件发送给指定的用户。首先需要设置邮箱服务器,点击右上角的设置按钮选择Admin settings,点击Email,即打开http://localhost:3000/admin/settings/email这个URL,配置好SMTP服务器所需的各种信息。Metabase会自动校验服务器信息是否配置正确,配置正确后会出现一个Send test email按钮。点击按钮,就会给超管用户(也就是安装时配置的邮箱地址)发送一个邮件,这个是邮件发送方截图:
在这里插入图片描述
这个是邮件接收方截图:
在这里插入图片描述

地图

在做仪表板时,经常会遇到类似如下这种按照省市区域展示数据的需求:
在这里插入图片描述
PS:之前放的一张大图,被标记图片违规?violation-del?

Metabase当然也支持,设置页点击Maps,得知Metabase默认使用OpenStreetMaps地图数据,支持使用其他地图数据。另外地图数据一般都是json文件,通过添加一个在线地图数据JSON文件网址,如MapBox,可展示想要的地图效果。

认证

支持Google或LDAP两种方式。

分享

支持公开链接、公开嵌入、应用嵌入三种方式。前两种方式由于其公开性,只能分享不敏感数据;隐私敏感数据,需通过第三种方式实现。

http://localhost:3000/admin/settings/embedding-in-other-applications

原理

metabse在运行时写入的数据都会存在一个db里metabase.db.mv.db

参考

  • https://www.metabase.com/docs/latest/operations-guide/
  • Metabase使用教程
  • https://www.jianshu.com/notebooks/28486864

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣383.赎金信(java语言散列表法)

题目描述: 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 解题思…

KVM - 虚机内核配置

缘起 笔者最近分别购买了一台腾讯云和百度云的机器,都是一年期的,配置和价格分别如下: 腾讯云百度云配置2 核,2G 内存,40G 硬盘2 核,4G 内存,80G 硬盘价格50 元78 元 似乎性价比都差不多&…

802.11协议:wifi

802.11协议 博客链接:https://www.blog.23day.site/articles/71 一、协议简介 IEEE 802协议簇是指IEEE标准中关于局域网(LAN)和城域网(MAN)的一系列标准。IEEE 802中定义的服务和协议限定在OSI七层网络模型的最低两层…

m基于FPGA的NBDP系统ARQ单元模块的verilog实现

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 NBDP(窄带直接印字电报),全称Narrow-Band Direct-Printing。是GMDSS地面无线民系统中的一种重要通信技术,这个终端设备,要与MF、HF设备…

阿里云国际版代充-阿里云无影云桌面是什么?

阿里云国际版无影云桌面的原产品名为弹性云桌面,融合了无影产品技术后更名升级。它可以为用户提供易用、安全、高效的云上桌面服务,帮助快速构建、高效管理桌面办公环境,提供安全、灵活的办公体系。 阿里云国际版无影云桌面分类:…

微信商城怎么开通【微信商城】

微信商城又可以称为微商城,微信商城是很多商家企业作为线上销售的一个平台,毕竟在微信这个这么高日活量的社交平台上,自然会有很多潜在顾客。那么如果想在微信上卖货的商家企业怎么开通微信商城呢,下面给大家说说微信商城怎么开通…

计算机网络实验二:ARP欺骗

计算机网络实验二:ARP欺骗 博客链接:https://www.blog.23day.site/articles/66 一、wireshark 要求:配置并使用wireshark,在无线环境下监听非本机的数据码流,记录并解释如下集中情况下听到的数据包的意义,…

Python爬取福利图要在中午,因为早晚会出事!我才存了2000文件夹

爱美之心人皆有之,我们爬取找寻这些漂亮小姐姐的图片并不是出于什么龌龊的目的。而是欣赏美好的东西总是会让人心情愉悦的,对于美丽事物的追求是人与生俱来的天性。 爬虫成果 发现很多想要学习Python却不知道该怎么下手的朋友,正好我这里整…

基于场景的数据集------明厨亮灶数据集

为了和各位开发爱好者深入合作交流,特此准备分批次开放数据集拱大家交流学士研究使用,整理的非常细腻,有些是专业队伍标注的,主要是菲律宾那边的团队进行标注的。依据众多算法搭建的算法平台主体算法包括 人脸识别,人…

Vue3-ElemenPlu,全栈开发后台系统-JWT方案讲解第三章-Koa架构设计接口方面实现mongdb安装配置工具函数的封装前台首页实现

第三章-Koa架构设计 #!/usr/bin/env node/*** Module dependencies.*/var app = require(../app); var debug = require(debug)

公司新来的00后真是卷王,工作没两年,跳槽到我们公司起薪18K都快接近我了

都说00后躺平了,但是有一说一,该卷的还是卷。这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …

【LVGL学习笔记】(一)环境搭建

LVGL全程LittleVGL,是一个轻量化的,开源的,用于嵌入式GUI设计的图形库。并且配合LVGL模拟器,可以在电脑对界面进行编辑显示,测试通过后再移植进嵌入式设备中,可以高效地进行开发。 一.嵌入式设备的移植 L…

开发Java Web项目基础储备

大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年,我整理了很多IT技术相关的教程给大家&#xff0…

互联网寒冬下奇葩公司行为艺术一览!你就是想笑死我继承我的代码

干货不少,有图有真相,大家慢慢看下去! 既然创业,我为什么不自己当老板,要去给你当合伙人?是为了那1K-2K的高薪吗? 这招的不是高级工程师与合伙人,招的怕不是个傻子! 有…

[激光原理与应用-58]:激光器 - 光学 - 常见光学镜片的特性

目录 一、纯度 二、透明度与透光率 三、均匀度 四、折射率 五、色散率 六、反射率 七、透光率 八、光线吸收率 一、纯度 光学纯度又称旋光纯度。 二、透明度与透光率 透光率,表示光线透过介质的能力,是透过透明或半透明体的光通量与其入射光…

域名停靠(域名抢注的几种形式)

域名停靠,又叫域名停放。简单来说,就是将具有一定流量的优质域名交给域名停靠服务商管理,让他们在你的域名上面投放广告。 “域名停靠”来自于英文Domain Name Parking,简称DNParking,也称域名停放。如果您有一个理想的域名或者带有流量(即&…

杂七杂八的网络安全知识

杂七杂八的网络安全知识 博客链接:https://www.blog.23day.site/articles/81 一、信息安全概述 1.信息与信息安全 信息与信息技术 信息奠基人:香农:信息是用来消除随机不确定性的东西 信息的定义:信息是有意义的数据&#xff…

python采集付费论文批量下载 并保存到文档,毕设论文再也不愁......

嗨害大家好鸭! 我是小熊猫鸭~ 大家是不是在写毕业论文的时候 需要参考某一段的内容 要用到复制粘贴,但是吧,某文库就需要付费, 就老难受了… 我们今天就来解决这个"老难受" 环境使用: python 3.8 pych…

2021年全球区块链投融资概况 美国融资量最多 数字资产相关领域依旧火热

据不完全统计,2021年,全球区块链产业共发生1812笔融资事件,从月度投资量来看,3月和4月投资量均达200笔以上,3月数量最多为239笔,其次是4月数量为214笔。1月和2月则获投量最少,均不达100笔&#…

怎么写一个树形穿梭框

图片懒加载基本原理 所谓图片懒加载,就是需要展示图片的时候再加载,当图片没有进入我们的视觉范围内的时候,图片还没有加载,只用一个占位符或者 loading 图片替代。当我们滚动页面时,占位符或者 loading 图片进入到我…