metabase详细使用教程

Metabase 详细使用教程

  • 1. 简介及安装使用
    • 1.1. metabase简介
    • 1.2. 安装步骤
  • 2. metabase入门
    • 2.1. metabase登录及配置
  • 3. 样本数据库实操案例
    • 3.1. 样本数据库数据结构
    • 3.2. 实操
      • 3.2.1. 原生查询中三种变量的使用方法
      • 3.2.2. [简单查询与自定义查询]简述、查询结果二次加工
      • 3.2.3. 仪表盘创建

1. 简介及安装使用

1.1. metabase简介

metabase主要功能创建数据集、在线可视化分析、生成分析图表、构造dashboard、定时任务报表、数据分析模型、订阅发布、分享、安全验证、权限管理、任务管理等等优势。

官网学习地址:metabase参考文档
对应语法学习地址:clickhouse参考文档

1.2. 安装步骤

第一步 下载metabase压缩文件,无需解压:metabase.jar

第二步 下载java文件:java,而后添加环境变量,操作步骤见该链接:java安装教程
第三步 metabase.jar文件夹路径下输入cmd,输入java -jar metabase.jar,网页端输入http://localhost:3000/,注册登录后即可操作metabase
metabase详细使用教程_第1张图片
metabase详细使用教程_第2张图片
metabase详细使用教程_第3张图片
示例:

2. metabase入门

2.1. metabase登录及配置

配置metabase:Setting up教程-metabase源文档
首页界面:
metabase详细使用教程_第4张图片
通常通过创建问题,使用查询语句来获取数据信息,而后通过仪表盘连接,形成一份报表可视化模板

3. 样本数据库实操案例

3.1. 样本数据库数据结构

首先选择样本数据库:SAMPLE DATASET
在这里插入图片描述
先了解下表结构

表名 表功能
Orders 订单
字段 注释
ID id
UserID 用户ID
ProductID 产品id
Subtotal 产品费用
Tax 税收费用
Total 总费用
Discount($) 折扣
Created At 创建时间
Quantity 订单量
表名 表功能
People 人员信息
字段 注释
ID 用户id
Address 地址
Email 邮箱
Password 密码
Name 姓名
City 城市
Longitude 经度
State
Source 来源
Birth Date 生日
Zip 邮编
Latitude 纬度
Created At 创建时间
表名 表功能
Products 产品
字段 注释
ID 产品id
Ean 编号
Title 标题
Category 类目
Vendor 公司
Price 价格
Rating 产品星级
Created At 创建时间
表名 表功能
Reviews 评论
字段 注释
ID id
ProductID 产品id
Reviewer 评论人
Rating 评论星级
Body 内容
Created At 创建时间

了解样本四张表之间的关联(方便后期做关联匹配)

表名 表名 表名 表名
Orders People Products Reviews
字段 字段 字段 字段
UserID 匹配 ID
ProductID 匹配 ID ProductID

3.2. 实操

3.2.1. 原生查询中三种变量的使用方法

示例:获取用户Hudson Borer(用户id为1)个人信息及该用户购买的产品信息
思路:用Orders表UserID和ProductID去分别匹配People表ID和Products表ID,来获取相应数据

'''1、查询Hudson Bore这个顾客总共下单量'''
SELECT t1.*,t2.`订单量`
FROM
    (
    SELECT 
        ID as `用户id`,
        Name as `姓名`
    FROM People
    WHERE Name='Hudson Borer'
    GROUP BY `用户id`,`姓名`
    ORDER BY `用户id`
    ) as t1
LEFT JOIN 
    (
    SELECT 
        USER_ID as `用户id`,
        sum(Quantity) as `订单量`
    FROM Orders 
    GROUP BY `用户id`
    ORDER BY `用户id`
    ) as t2
    on t1.`用户id`=t2.`用户id`    

1、查询结果
metabase详细使用教程_第5张图片

'''也可把Name变成变量来编辑,进而可以添加字段过滤器,例如'''
SELECT t1.*,t2.`订单量`
FROM
    (
    SELECT 
        ID as `用户id`,
        Name as `姓名`
    FROM People
    WHERE Name={{Name}}
    GROUP BY `用户id`,`姓名`
    ORDER BY `用户id`
    ) as t1
LEFT JOIN 
    (
    SELECT 
        USER_ID as `用户id`,
        sum(Quantity) as `订单量`
    FROM Orders 
    GROUP BY `用户id`
    ORDER BY `用户id`
    ) as t2
    on t1.`用户id`=t2.`用户id`

metabase界面显示为:

可能遇到的问题1. 未添加变量,显示器会报错,缺少变量参数
metabase详细使用教程_第6张图片
解决方案1、:在上方的过滤字段器内添加People中变量即可
metabase详细使用教程_第7张图片
解决方案2、:将代码块中

WHERE Name={{Name}}

改成可选变量即可,

[[WHERE Name = {{Name}}]]

操作如下

SELECT t1.*,t2.`订单量`
FROM
    (
    SELECT 
        ID as `用户id`,
        Name as `姓名`
    FROM People
    [[WHERE Name = {{Name}}]]
    GROUP BY `用户id`,`姓名`
    ORDER BY `用户id`
    ) as t1
LEFT JOIN 
    (
    SELECT 
        USER_ID as `用户id`,
        sum(Quantity) as `订单量`
    FROM Orders 
    GROUP BY `用户id`
    ORDER BY `用户id`
    ) as t2
    on t1.`用户id`=t2.`用户id`

metabase显示界面(这种方式会把所有客户信息全筛选出来)
metabase详细使用教程_第8张图片
若想查看某两个人或多名指定客户的信息,可将变量

WHERE Name={{Name}}

改为

WHERE {{Name}}

同时将字段映射到对应的报表字段中,即可,如下

SELECT t1.*,t2.`订单量`
FROM
    (
    SELECT 
        ID as `用户id`,
        Name as `姓名`
    FROM People
    WHERE {{Name}}
    GROUP BY `用户id`,`姓名`
    ORDER BY `用户id`
    ) as t1
LEFT JOIN 
    (
    SELECT 
        USER_ID as `用户id`,
        sum(Quantity) as `订单量`
    FROM Orders 
    GROUP BY `用户id`
    ORDER BY `用户id`
    ) as t2
    on t1.`用户id`=t2.`用户id`

metabase显示界面
metabase详细使用教程_第9张图片
以上介绍了metabase中原生查询方式添加变量的三种方式,下面汇总下三种操作方式 metabase变量操作完整文档

'''原生查询中的变量允许使用筛选组件或URL参数来动态替换查询中的值。

变量
{{variable_name}}在此查询模板中创建一个名为“ variable_name”的变量。可以在侧面板中为变量指定类型,
从而更改其行为。除“字段过滤器”以外的所有变量类型都将自动导致将过滤器小部件放置在此问题上;
对于字段过滤器,这是可选的。填写此过滤器小部件后,该值将替换查询模板中的变量。'''

# Example:
SELECT count(*)
FROM products
WHERE category = {{category}}

'''字段过滤器
通过为变量指定“字段过滤器”类型,您可以将问题链接到仪表板过滤器小部件,或在SQL问题上使用更多类型的过滤器小部件。
在现有列上添加过滤器时,“字段过滤器”变量将插入与GUI查询构建器生成的SQL相似的SQL。

添加“字段过滤器”变量时,您需要将其映射到特定字段。 然后,您可以选择在问题上显示过滤组件,但即使不这样做,
现在可以在将此问题添加到仪表板时将“字段过滤器”变量映射到仪表盘过滤器。 字段过滤器应在“WHERE”子句中使用。'''

# Example:
SELECT count(*)
FROM products
WHERE {{created_at}}

'''可选条款
[[{{variable}}]]周围的括号在模板中创建可选子句。 如果设置了“variable”,则将整个子句放入模板中。 
如果不是,则忽略整个子句。'''

# Example:
SELECT count(*)
FROM products
[[WHERE category = {{category}}]]

'''要使用多个可选子句,您可以包含至少一个非可选WHERE子句,接着以“AND”开头的可选子句。'''

# Example:
SELECT count(*)
FROM products
WHERE 1=1
  [[AND id = {{id}}]]
  [[AND category = {{category}}]]

'''当某字段被用作筛选条件后, SQL语句中不应再包含该列明. 相应的在侧边栏上, 变量应该映射到一个字段上。'''

#Example:
SELECT count(*)
FROM products
WHERE 1=1
  [[AND {{category}}]]

3.2.2. [简单查询与自定义查询]简述、查询结果二次加工

操作界面,使用非常简单,只需将自己想要获取的信息用鼠标点一点就可得到,无需数据库语法基础,适合小白使用(仅适合较为简单的查询语句)
metabase详细使用教程_第10张图片
点击自定义查询左下方可视化后,显示如下
metabase详细使用教程_第11张图片
metabase详细使用教程_第12张图片
此外,在可视化方法中,亦可选择折线图、柱状图、组合图、条形图等,此处不再赘述

3.2.3. 仪表盘创建

获取这样一份可视化仪表盘界面,如何操作

第一步,创建仪表盘
metabase右上角加号"+",可创建仪表盘
metabase详细使用教程_第13张图片
点击创建新仪表盘,如下
metabase详细使用教程_第14张图片
第二步 创建仪表盘细节

2.1 先创建过滤器
metabase详细使用教程_第15张图片
操作如下(按步骤操作后,点击保存即可):
metabase详细使用教程_第16张图片
2.2 添加文本
metabase详细使用教程_第17张图片
操作如下(按步骤操作后,点击保存即可)
metabase详细使用教程_第18张图片
2.3 添加问题(左上为地图、右上为柱状图、左下为数字、右下为折线图)
2.3.1 地图(先写好sql语句,再加入到仪表盘中)
实现功能:显示各个州每个类目的订单量

SELECT 
    People.State,
    SUM(Orders.Quantity) as `订单量`
FROM Orders
LEFT JOIN 
    People
    on Orders.USER_ID = People.ID
LEFT JOIN 
    Products 
    on Orders.PRODUCT_ID = Products.ID 
WHERE 
   {{State}}
   and {{Category}}
GROUP BY People.State
ORDER BY People.State

metabase操作界面
其一,sql语句及其设置
metabase详细使用教程_第19张图片

其二,添加到仪表盘中
metabase详细使用教程_第20张图片
其三,过滤器和地图集关联匹配,匹配完成后点击右下角完成
metabase详细使用教程_第21张图片
其四,用地图集去和过滤器进行匹配,点击地图集右上角按钮点击行为,只需匹配State字段,操作完成后保存
metabase详细使用教程_第22张图片
2.3.2 柱状图
实现功能:每个类目对应的订单量
操作和地图集一模一样,只需将Orders by state这个先前的问题复制一份,更改可视化界面即可,操作如下(操作完成后记得保存)metabase详细使用教程_第23张图片
metabase详细使用教程_第24张图片
而后将柱状图添加到仪表盘中,操作和地图集一模一样,此处不再赘述,(唯一的区别是最后点击行为处匹配的是Category而非State字段)

2.3.3 数据
实现功能:每个州每个类目对应的总订单量,仅显示数据
操作同上,复制柱状图的问题,更名为Count of Orders

'''代码块删除以下三行'''
Products.Category
GROUP BY People.State,Products.Category
ORDER BY People.State,Products.Category

操作完成后点击保存,添加仪表盘操作与以上雷同,此处不再赘述
metabase详细使用教程_第25张图片
2.3.4 折线图
实现功能:观察每月的销量情况

SELECT 
    parsedatetime(formatdatetime(ORDERS.CREATED_AT, 'yyyyMM'), 'yyyyMM') AS `CREATED_AT`,
    SUM(Orders.Quantity) as `订单量`
FROM Orders
LEFT JOIN 
    People
    on Orders.USER_ID = People.ID
LEFT JOIN 
    Products 
    on Orders.PRODUCT_ID = Products.ID 
WHERE 
   {{State}}
   and {{Category}}
GROUP BY `CREATED_AT`
ORDER BY `CREATED_AT` ASC

metabase详细使用教程_第26张图片

查询语句写好后,添加到仪表盘中,而后过滤器关联该折线图即可,
这样一份动态仪表盘就完成了。

metabase详细使用教程_第27张图片

你可能感兴趣的:(metabase,java,前端,嵌入式实时数据库,产品运营,python)