metabase详细使用教程

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.jar文件夹路径下输入cmd
metabase路径下输入java -jar metabase.jar
在这里插入图片描述
示例:
仪表盘界面

2. metabase入门

2.1. metabase登录及配置

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

3. 样本数据库实操案例

3.1. 样本数据库数据结构

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

表名表功能
Orders订单
字段注释
IDid
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评论
字段注释
IDid
ProductID产品id
Reviewer评论人
Rating评论星级
Body内容
Created At创建时间

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

表名表名表名表名
OrdersPeopleProductsReviews
字段字段字段字段
UserID匹配ID
ProductID匹配IDProductID

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、查询结果
在这里插入图片描述

'''也可把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. 未添加变量,显示器会报错,缺少变量参数
在这里插入图片描述
解决方案1、:在上方的过滤字段器内添加People中变量即可
在这里插入图片描述
解决方案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显示界面(这种方式会把所有客户信息全筛选出来)
在这里插入图片描述
若想查看某两个人或多名指定客户的信息,可将变量

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中原生查询方式添加变量的三种方式,下面汇总下三种操作方式 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. [简单查询与自定义查询]简述、查询结果二次加工

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

3.2.3. 仪表盘创建

获取这样一份可视化仪表盘界面,如何操作
仪表盘界面
第一步,创建仪表盘
metabase右上角加号"+",可创建仪表盘
在这里插入图片描述
点击创建新仪表盘,如下
在这里插入图片描述
第二步 创建仪表盘细节

2.1 先创建过滤器
在这里插入图片描述
操作如下(按步骤操作后,点击保存即可):
在这里插入图片描述
2.2 添加文本
在这里插入图片描述
操作如下(按步骤操作后,点击保存即可)
在这里插入图片描述
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语句及其设置
在这里插入图片描述

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

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

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

操作完成后点击保存,添加仪表盘操作与以上雷同,此处不再赘述
在这里插入图片描述
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

在这里插入图片描述

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

在这里插入图片描述

  • 19
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Metabase前端目录结构(`frontend` 目录)是一个比较复杂的结构,下面我将详细介绍各个重要目录和文件的作用: 1. `build` 目录:这个目录包含了构建过程中生成的临时文件和输出的构建结果。在开发过程中,该目录会自动生成并更新。 2. `resources` 目录:这个目录包含了前端应用使用的静态资源文件,例如图标、样式表、配置文件等。 3. `src` 目录:这是 Metabase 前端应用的主要源代码目录,它包含了多个子目录和文件,用于实现不同模块和功能。 - `metabase` 目录:这个目录包含了 Metabase 前端应用的核心代码,它负责处理主要的请求和响应逻辑。在这个目录下,你可以找到多个子目录和文件,每个子目录对应着一个功能模块或组件。 - `frontend` 目录:这个目录包含了与前端界面相关的代码和资源,例如视图、组件、样式等。它负责渲染用户界面并处理用户交互。 - `api` 目录:这个目录包含了与后端 API 交互的代码。它封装了与后端的通信逻辑,包括请求构建、响应处理等。 - `plugins` 目录:这个目录包含了与插件相关的代码和资源。如果你使用了 Metabase 插件系统,插件的代码和资源文件将会存放在这个目录中。 - `utils` 目录:这个目录包含了一些通用的工具函数和实用方法,用于辅助开发和处理一些常见的任务。 - `test` 目录:这个目录包含了前端代码的测试文件。它用于编写和运行前端代码的单元测试和集成测试。 4. `test` 目录:这个目录包含了一些用于测试的配置文件和测试数据。 5. `node_modules` 目录:这个目录包含了项目依赖的第三方 Node.js 模块。它会在项目构建过程中被自动安装和更新。 6. `package.json` 文件:这个文件是项目的配置文件,用于定义项目的依赖、构建脚本等信息。 除了上述列举的目录和文件,Metabase前端目录结构还可能包含其他辅助性文件和目录,用于构建、部署和管理项目。 需要注意的是,Metabase 使用了多个技术栈来构建前端应用,包括 ClojureScript、React 和 Redux。因此,在 `src/metabase/frontend` 目录中可能会有与这些技术相关的文件和目录。 以上是一个大致的 Metabase 前端目录结构示例,具体的结构可能因不同的版本和个性化配置而有所差别。如果你希望详细了解特定版本的 Metabase 前端代码结构,请查阅官方文档或浏览 Metabase 的代码仓库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值