概述

一款开源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

开源BI报表工具Metabase初体验相关推荐

  1. 开源BI分析工具Metabase配置与完全使用手册

    文章目录 简介 安装 初始配置 数据分析 简单查询 创建场景 创建集合和仪表盘 自定义查询 原生查询 sql变量 动态sql片段 管理员操作 添加数据库 连接oracle 成员管理 邀请新成员 权限配 ...

  2. 最新BI报表工具对比选型指标及重点注意事项---BI报表工具选型的那些事

    列表在文章最后有下载方式 前言 报表工具是一个接近 20 年的产物了 但是,直到现在,在各种数据信息化的系统中,报表工具的作用,不仅没有褪色,反而是因为信息化需求的增大.数据的增多,以及报表工具本身迭 ...

  3. BI报表工具: datagear、davinci、cboard、JimuReprot、ureport2

    推荐几个好用的BI报表工具 datagear https://gitee.com/datagear/datagear DataGear是一款开源免费的数据可视化分析平台,可自由制作任何您想要的数据可视 ...

  4. 开源报表工具python_开源web报表工具哪家强?5款最优软件

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  5. 大圣魔方——美团点评酒旅BI报表工具平台开发实践

    当前的互联网数据仓库系统里,数据中心往往存放了大量Cube化或者半Cube化的数据.如果需要将这些数据的内在关系体现出来,需要写大量的程序和SQL来发现数据之间的内在规律,往往会造成用户做非常多的重复 ...

  6. OCR 工具tesseract初体验

    OCR 工具tesseract初体验 @(工具使用)[工具使用, python] OCR即图片上文字识别 安装tesseract github地址 tesseract是一个命令行程序,后面安装的pyt ...

  7. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  8. 开源Excel报表工具:jxls

    用Excel出报表是我们办公中经常有的事情.如何通过查询数据库然后生成报表呢?现在有很多开源的工具可以实现这个需求,当然也有很多收费的工具.介绍一下开源Excel报表工具jxls.jxls的官方网站( ...

  9. jor(1):简表(JOR)开源的报表工具调研

    1,项目介绍参考: 我觉得需要说明下,我不是这个公司的员工,也不是做广告,只是调研下这个开源报表软件. 简表(JOR),是一款开源的报表工具,完全java实现,核心代码来自于国内一线报表工具品牌杰表. ...

最新文章

  1. Android ListView 删除 item
  2. 计算机基础-计算机硬件
  3. 提高工作效率,请收下这8个神器
  4. 数组排列如何更有效的查询
  5. Flutter开发之Debug调试(十)
  6. tensorflow中tensor的索引
  7. 男篮球员特点 里约惨案就是这样造成的
  8. oracle 删除列 大数据_Oracle 删除指定sql的执行计划。
  9. python中knn_如何在python中从头开始构建knn
  10. java集合是wftc_java的集合是什么?
  11. CSS绝对定位absolute元素的初始包含块不是body元素,也不是html元素
  12. 如何用视频转换器把qlv格式转换mp4
  13. mysql order by注入_sql注入之order by注入
  14. tcp协议栈优化1-增加TCP初始拥塞窗口 ===》流氓的方式
  15. 35岁是个坎,为啥到岁数就不想要你了
  16. ps快捷键 拿走不谢*小Lemon送你们的
  17. CCNA-静态路由实验
  18. layui之layer根据分辨率调整全屏(js判断分辨率)
  19. 李洪强iOS开发支付集成之支付宝支付
  20. 5、隐私计算--同态加密

热门文章

  1. Pr入门学习之选择GPU加速
  2. 《把时间当作朋友》之读后感
  3. J2EE三层架构概述
  4. matlab 条件方程组的解,Matlab带约束条件的非线性方程组求解
  5. google hacking常用语法
  6. 凭算法突围,一战赚了 1090 亿,“恐怖” 的张一鸣!
  7. cv2.erode函数
  8. EasyExcel组件导出Excel文件
  9. 前端攻城狮的自我修养1
  10. 如何下载安装与火狐浏览器不兼容的火狐浏览器插件