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

摘要:
文章目录简介安装初始配置数据分析简单查询创建场景创建集合和仪表盘自定义查询原生查询sql变量动态sql片段管理员操作添加数据库连接oracle成员管理邀请新成员权限配置数据权限文件夹权限邮箱配置定时任务简介Metabase是一个免费的BI分析工具,可以帮助你把数据库中的数据更好的呈现给更多人,通过建立一个”查询“来提炼数据,再以图形化的方式做展示。上手简单,操作门槛低,即使不会sql语句也能使用。

文章目录

  1. 简介

Metabase是一个免费的BI分析工具,可以帮助你把数据库中的数据更好的呈现给更多人,通过建立一个”查询“来提炼数据,再以图形化的方式做展示。上手简单,操作门槛低,即使不会sql语句也能使用。同时工具轻量、安装依赖的环境简单、配置简单清楚,只需一个jar包和一条命令就能完成安装

  1. 安装

Metabase的安装非常简单,只需将jar包下载下来后(下载地址),放在有java环境的机子上,通过java -jar命令启动即可,启动命令:

java -jar metabase.jar
  1. 1

这里需要注意的是metabase自带的H2数据库相对较弱,最好替换成其他数据源,比如MySQL等,这里可以参考我的另一篇文章:《metabase默认应用数据源H2变更为MySQL及历史数据迁移》

  1. 初始配置

启动后metabase默认端口为3000,如果要变更端口,可添加环境变量MB_JETTY_PORT来指定端口
,假设metabase为本地启动,浏览器访问网址:http://localhost:3000/即可进入初始化界面
在这里插入图片描述
按提示一步步填写相关信息即可,注意第一个创建的账户默认即为管理员账户
在这里插入图片描述
等待初始化之后,进入首页即可看到配置数据库下的所有表
在这里插入图片描述

  1. 数据分析

接下来就可以正式使用了,右上角各功能如下:
在这里插入图片描述
下面就以具体场景为例,分别解释各项功能,点击创建问题 --》简单查询,先从简单的开始,走一遍整体流程
在这里插入图片描述

  1. 简单查询

假设我要对一张名为customer_group_info的客户群表做多个维度的分析,表结构与测试记录如下:
在这里插入图片描述
需求场景如下:

  1. 根据status状态字段做聚合,查看各个状态下的客群数
  2. 根据insert_time创建时间字段对客群做趋势分析
  3. 筛选出cgp_type客群类型为3的客群
  4. 创建场景

场景1:
1) 右上角选聚合,聚合条件为总行数,分组条件为status,聚合结果如下:
在这里插入图片描述
2) 为了便于观察,我们以图表形式显示,选择右下角“可视化”,选择图表类型
在这里插入图片描述
3)保存该问题,由于目前还没新建集合,先默认保存在“分析下”
在这里插入图片描述
场景2,3类似,就不再赘述
场景2:
在这里插入图片描述
场景3:
在这里插入图片描述
以上三个问题创建完毕,目前都保存在“分析”下,为了便于分类管理,下面就新建一个集合,把以上问题归类

  1. 创建集合和仪表盘

回到首页,进入“分析”,新建名为“客群分析”的集合,然后把问题移到该集合下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目前虽然已经归类到一个集合下了,但是查看还是很不方便,还是要每个问题分别点进去才能看到,下面就开始建一个仪表盘,把这三个问题整合到同一个仪表盘下,点右上角“+”号,选择新仪表盘,放到“客群分析”集合下
在这里插入图片描述
然后在仪表盘中把三个问题添加进去即可
在这里插入图片描述
在这里插入图片描述
这样,后续对这三个场景的数据分析,就可以直接在该仪表盘中查看了

  1. 自定义查询

自定义查询相较于简单查询,支持更高级的操作,如多表关联,表与创建的问题之间的关联等,但整体操作还是跟简单查询类似,这里就不再重复了
在这里插入图片描述

  1. 原生查询

原生查询即直接写sql查询,但是前提是该用户必须有sql查询的权限,权限问题会在后面的权限管理中讲到。
sql查询可直接通过右上角控制台图标进入,进入后记得要先在左上角选择数据库
在这里插入图片描述
metabase中的sql可以支持变量和根据变量做动态sql拼接,变量形式:{{变量名}},动态sql片段形式:[[and 字段 = {{变量名}}]],具体如何使用,下面举例说明。

  1. sql变量

还是以customer_group_info这张表为例,假设创建了一个问题,问题中的sql如下:

select * from customer_group_info where cgp_id = '2589bd22-c719-4e01-b9bf-2144beacadca'
  1. 1

根据cgp_id去查找记录,但是cgp_id是固定的,如果每次查询都要修改问题中的sql去改变值的话,那岂不是跟直接写sql没差,这时候就可以用变量替换,把cgp_id改成变量,然后直接输入查询值,改成如下格式的sql:

select * from customer_group_info where cgp_id = {{input_id}}
  1. 1

问题上方会多出一个文本框,在文本框中输入cgp_id就可以查询
在这里插入图片描述

  1. 动态sql片段

sql变量虽然解决了查询条件值不固定的问题,但是如果有些查询条件也是可选的,这该怎么解决呢,如下面的sql:

select
cgp_id as 客群编号,
user_name as 用户名,
cgp_type as 客群类型 
from
customer_group_info
where user_name = 'apicloud1'
and
cgp_type = 2 -- 该条件为可选条件
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9

那就可根据条件来动态拼sql,改成如下形式:

select
cgp_id as 客群编号,
user_name as 用户名
[[ ,{{input_type}} as 客群类型]]
from
customer_group_info
where user_name = {{input_user}}
[[and cgp_type = {{input_type}}]]
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8

当不输入cgp_type时,查询出所有客群类型
在这里插入图片描述

当指定cgp_type时,查询出指定客群类型
在这里插入图片描述

以上为数据分析人员的数据分析操作,下面来说一下管理员角色的管理功能

  1. 管理员操作
  2. 添加数据库

  3. 点击设置,切换为管理员,进入管理员页面
    在这里插入图片描述
  4. 选择 数据库 --> 添加数据库
    在这里插入图片描述
  5. 填写数据库信息, 填写完成后保存即可
    在这里插入图片描述

后续也可以通过该步骤选择已有数据库变更信息

  1. 连接oracle

metabase的默认数据源连接里面是没有oracle选项的,如果要连接oracle,需要单独配置
在这里插入图片描述

首先去oracle官网下载ojdbc驱动:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UEVQCOHU-1608544558294)(C:Users17391AppDataRoamingTypora ypora-user-imagesimage-20201221172112671.png)]

放到/metabase/plugins目录下,重启metabase即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhYycIoU-1608544558296)(C:Users17391AppDataRoamingTypora ypora-user-imagesimage-20201221172036459.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02ZduREY-1608544558298)(C:Users17391AppDataRoamingTypora ypora-user-imagesimage-20201221172311920.png)]

  1. 成员管理

  2. 邀请新成员

可以在 管理员页面 --》人员 --》 邀请其他人 邀请新用户,并分配用户组,邀请初始密码随机生成
在这里插入图片描述
在这里插入图片描述

  1. 权限配置

权限管理主要分为数据权限和文件夹权限两类,数据权限只访问数据库与表记录的权限,文件夹权限指访问集合的权限

  1. 数据权限

数据权限管理页面如下图所示,其中纵轴为所有的数据库,横轴为所有用户组
在这里插入图片描述
权限类型如下:

  1. 允许访问数据

    1. 没有权限: 无法访问整个数据库
    2. 部分权限:可访问指定表
    3. 授予不受限制的访问权限:可访问整个数据库
  2. sql查询

    1. 没有权限: 无法在终端写原生sql
    2. 写原始查询语句: 可写sql
  3. 文件夹权限

其管理页面如下,纵轴为所有集合,横轴为所有用户组
在这里插入图片描述
权限类型如下:

  1. 集合权限
    1. 没有权限
    2. 查看集合
    3. 修改集合
  2. 邮箱配置

配置邮箱后,metabase可定时将指定的集合的分析结果推送至关注人邮箱,就不用主动登录metabase去查看

邮箱配置流程如下:
管理员页面 --》设置 --》 邮箱,填写邮件服务器信息与发送者邮箱
在这里插入图片描述
配置好后点击 ”发送测试邮件“,如果管理员邮箱中能收到如下测试邮件,说明邮箱配置成功
在这里插入图片描述

  1. 定时任务

邮箱配置完成之后,就可以配置定时任务来定时推送结果,将上面创建的三个问题的结果推送给对应邮箱,步骤如下:

    1. 回到首页,点击”+“添加新的定时任务
      在这里插入图片描述
    2. 选择集合中的问题
      在这里插入图片描述
    3. 设置定时任务和接收者邮箱,这里要注意你metabase设定的时区对不对,然后就能定时推送分析报告了
      在这里插入图片描述
      收到邮件如下:
      在这里插入图片描述

------------恢复内容开始------------

  1. 文章目录

  2. 简介
  3. 安装
  4. 初始配置
  5. 数据分析
简介

Metabase是一个免费的BI分析工具,可以帮助你把数据库中的数据更好的呈现给更多人,通过建立一个”查询“来提炼数据,再以图形化的方式做展示。上手简单,操作门槛低,即使不会sql语句也能使用。同时工具轻量、安装依赖的环境简单、配置简单清楚,只需一个jar包和一条命令就能完成安装

安装

Metabase的安装非常简单,只需将jar包下载下来后(下载地址),放在有java环境的机子上,通过java -jar命令启动即可,启动命令:

java -jar metabase.jar
  • 1

这里需要注意的是metabase自带的H2数据库相对较弱,最好替换成其他数据源,比如MySQL等,这里可以参考我的另一篇文章:《metabase默认应用数据源H2变更为MySQL及历史数据迁移》

初始配置

启动后metabase默认端口为3000,如果要变更端口,可添加环境变量MB_JETTY_PORT来指定端口
,假设metabase为本地启动,浏览器访问网址:http://localhost:3000/即可进入初始化界面
在这里插入图片描述
按提示一步步填写相关信息即可,注意第一个创建的账户默认即为管理员账户
在这里插入图片描述
等待初始化之后,进入首页即可看到配置数据库下的所有表
在这里插入图片描述

数据分析

接下来就可以正式使用了,右上角各功能如下:
在这里插入图片描述
下面就以具体场景为例,分别解释各项功能,点击创建问题 --》简单查询,先从简单的开始,走一遍整体流程
在这里插入图片描述

简单查询

假设我要对一张名为customer_group_info的客户群表做多个维度的分析,表结构与测试记录如下:
在这里插入图片描述
需求场景如下:

  1. 根据status状态字段做聚合,查看各个状态下的客群数
  2. 根据insert_time创建时间字段对客群做趋势分析
  3. 筛选出cgp_type客群类型为3的客群

创建场景

场景1:
1) 右上角选聚合,聚合条件为总行数,分组条件为status,聚合结果如下:
在这里插入图片描述
2) 为了便于观察,我们以图表形式显示,选择右下角“可视化”,选择图表类型
在这里插入图片描述
3)保存该问题,由于目前还没新建集合,先默认保存在“分析下”
在这里插入图片描述
场景2,3类似,就不再赘述
场景2:
在这里插入图片描述
场景3:
在这里插入图片描述
以上三个问题创建完毕,目前都保存在“分析”下,为了便于分类管理,下面就新建一个集合,把以上问题归类

创建集合和仪表盘

回到首页,进入“分析”,新建名为“客群分析”的集合,然后把问题移到该集合下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目前虽然已经归类到一个集合下了,但是查看还是很不方便,还是要每个问题分别点进去才能看到,下面就开始建一个仪表盘,把这三个问题整合到同一个仪表盘下,点右上角“+”号,选择新仪表盘,放到“客群分析”集合下
在这里插入图片描述
然后在仪表盘中把三个问题添加进去即可
在这里插入图片描述
在这里插入图片描述
这样,后续对这三个场景的数据分析,就可以直接在该仪表盘中查看了

自定义查询

自定义查询相较于简单查询,支持更高级的操作,如多表关联,表与创建的问题之间的关联等,但整体操作还是跟简单查询类似,这里就不再重复了
在这里插入图片描述

原生查询

原生查询即直接写sql查询,但是前提是该用户必须有sql查询的权限,权限问题会在后面的权限管理中讲到。
sql查询可直接通过右上角控制台图标进入,进入后记得要先在左上角选择数据库
在这里插入图片描述
metabase中的sql可以支持变量和根据变量做动态sql拼接,变量形式:{{变量名}},动态sql片段形式:[[and 字段 = {{变量名}}]],具体如何使用,下面举例说明。

sql变量

还是以customer_group_info这张表为例,假设创建了一个问题,问题中的sql如下:

select * from customer_group_info where cgp_id = '2589bd22-c719-4e01-b9bf-2144beacadca'
  • 1

根据cgp_id去查找记录,但是cgp_id是固定的,如果每次查询都要修改问题中的sql去改变值的话,那岂不是跟直接写sql没差,这时候就可以用变量替换,把cgp_id改成变量,然后直接输入查询值,改成如下格式的sql:

select * from customer_group_info where cgp_id = {{input_id}}
  • 1

问题上方会多出一个文本框,在文本框中输入cgp_id就可以查询
在这里插入图片描述

动态sql片段

sql变量虽然解决了查询条件值不固定的问题,但是如果有些查询条件也是可选的,这该怎么解决呢,如下面的sql:

select
cgp_id as 客群编号,
user_name as 用户名,
cgp_type as 客群类型 
from
customer_group_info
where user_name = 'apicloud1'
and
cgp_type = 2 -- 该条件为可选条件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

那就可根据条件来动态拼sql,改成如下形式:

select
cgp_id as 客群编号,
user_name as 用户名
[[ ,{{input_type}} as 客群类型]]
from
customer_group_info
where user_name = {{input_user}}
[[and cgp_type = {{input_type}}]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

当不输入cgp_type时,查询出所有客群类型
在这里插入图片描述

当指定cgp_type时,查询出指定客群类型
在这里插入图片描述

以上为数据分析人员的数据分析操作,下面来说一下管理员角色的管理功能

管理员操作

添加数据库

  1. 点击设置,切换为管理员,进入管理员页面
    在这里插入图片描述
  2. 选择 数据库 --> 添加数据库
    在这里插入图片描述
  3. 填写数据库信息, 填写完成后保存即可
    在这里插入图片描述

后续也可以通过该步骤选择已有数据库变更信息

连接oracle

metabase的默认数据源连接里面是没有oracle选项的,如果要连接oracle,需要单独配置
在这里插入图片描述

首先去oracle官网下载ojdbc驱动:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UEVQCOHU-1608544558294)(C:Users17391AppDataRoamingTypora ypora-user-imagesimage-20201221172112671.png)]

放到/metabase/plugins目录下,重启metabase即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhYycIoU-1608544558296)(C:Users17391AppDataRoamingTypora ypora-user-imagesimage-20201221172036459.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02ZduREY-1608544558298)(C:Users17391AppDataRoamingTypora ypora-user-imagesimage-20201221172311920.png)]

成员管理

邀请新成员

可以在 管理员页面 --》人员 --》 邀请其他人 邀请新用户,并分配用户组,邀请初始密码随机生成
在这里插入图片描述
在这里插入图片描述

权限配置

权限管理主要分为数据权限和文件夹权限两类,数据权限只访问数据库与表记录的权限,文件夹权限指访问集合的权限

数据权限

数据权限管理页面如下图所示,其中纵轴为所有的数据库,横轴为所有用户组
在这里插入图片描述
权限类型如下:

  • 允许访问数据

    • 没有权限: 无法访问整个数据库
    • 部分权限:可访问指定表
    • 授予不受限制的访问权限:可访问整个数据库
  • sql查询

    • 没有权限: 无法在终端写原生sql
    • 写原始查询语句: 可写sql

文件夹权限

其管理页面如下,纵轴为所有集合,横轴为所有用户组
在这里插入图片描述
权限类型如下:

  • 集合权限
    • 没有权限
    • 查看集合
    • 修改集合

邮箱配置

配置邮箱后,metabase可定时将指定的集合的分析结果推送至关注人邮箱,就不用主动登录metabase去查看

邮箱配置流程如下:
管理员页面 --》设置 --》 邮箱,填写邮件服务器信息与发送者邮箱
在这里插入图片描述
配置好后点击 ”发送测试邮件“,如果管理员邮箱中能收到如下测试邮件,说明邮箱配置成功
在这里插入图片描述

定时任务

邮箱配置完成之后,就可以配置定时任务来定时推送结果,将上面创建的三个问题的结果推送给对应邮箱,步骤如下:

    1. 回到首页,点击”+“添加新的定时任务
      在这里插入图片描述
    2. 选择集合中的问题
      在这里插入图片描述
    3. 设置定时任务和接收者邮箱,这里要注意你metabase设定的时区对不对,然后就能定时推送分析报告了
      在这里插入图片描述
      收到邮件如下:
      在这里插入图片描述
作者:he3more
出处:https://blog.csdn.net/he3more/article/details/111811684

免责声明:文章转载自《开源BI分析工具Metabase配置与完全使用手册》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux(debian7)操作基础(四)之CPU频率调整 Linux系统CPU频率调整工具使用【Lua】table表删除指定元素 (转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[mysql] mysqldump 导出数据库表

1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构(不含数据) mysqldump -u username -p -d dbname > dbname.sql (3)导出数据库中的某张数据表(包含...

PL/pgSQL学习笔记之四

http://www.postgresql.org/docs/9.1/static/plpgsql-structure.html 39.2. PL/pgSQL 的结构 PL/pgSQL是一种块式结构的语言。完整的函数定义必须是一个块。一个块的定义形式如下: [<<label>> ] [DECLARE declaratio...

es6 let

1.变量 var  function let const class import    定义变量的关键字 备注     不能忽略函数的形参      函数的私有变量 var     定义变量 var 定义变量能够提升但是不能定义  给window添加一个对应的属性 function    即可以提前声明     同时还定义了 定义:所谓的定义  就是给这...

数据库性能优化一:数据库自身优化(大数据量)

转自:数据库性能优化一:数据库自身优化(大数据量) 优化①:增加次数据文件,设置文件自动增长(粗略数据分区)   1.1:增加次数据文件   从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的...

Oracle数据库ORA-12154: TNS: 无法解析指定的连接标识符详解

相信使用过Oracle数据库的人一定碰到过“ORA-12154: TNS: 无法解析指定的连接标识符”错误,我在此做一个小小的总结。       在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否...

Undo表空间数据文件损坏

   UNDO表空间数据文件和system表空间数据文件都是数据库的关键数据文件,如果损坏会导致sql执行失败,用户无法登录,甚至实例崩溃等。同样恢复UNDO表空间数据文件也必须在数据库mount状态下进行。    数据库在运行过程中发现UNDO表空间数据文件损坏,此时是无法正常关闭数据库的: SQL> shutdown immediate; ORA...