工具

Metabase 使用指南

2022-06-26  本文已影响0人  FesonX

一. 为什么从 ELK 迁移到 Metabase + OLAP

1.1 ELK 的问题

1.2 Metabase + 其他DB 的优势

至于性能和运维成本,则由所选择的后端 DB 所决定。Metabase 本身不需要进行多复杂的维护,单个 DB 故障并不会引起 Metabase 崩溃。

Metabase

二. 提问

2.1 数据源

数据源有三种

2.2 构建问题

2.2.1 组成部分

  1. Data 部分即前面的数据源
  1. (可选)Filter 部分即过滤器,选择合适的 Filter 可以提速,也可以排除无关的结果。在数据表格预览时可以直接在列上方过滤数据,例如这里只看有折扣的客单价:
    过滤数据
过滤效果
  1. (可选)Summarize 部分即统计相关,需要结合分组操作。常用的例如 sum、count,如果需要构建更复杂的计算,可以使用 Custom Column,包含其他的数学函数和字符串函数,未必所有函数都可用
比较有无折扣的商品总价
  1. (可选)Sort 和 Limit 即 排序和返回数量,排序在图表上的展示区别不大,最好限制返回的数量(默认 10000)特别是在源表上。

2.2.2 调试 Question

每个阶段都可以点击小三角形预览数据

如果仍然无法解决问题,可以点击右边的 SQL 语句按钮,由开发同学协助调试。

2.3 使用 SQL 构建问题

用 SQL 构建问题除了可以自由选择函数外,也可以使用变量作为过滤器。

使用变量的两个关键语法是 {{variable}}[[{{variable}}]] ,第一个为一般变量,第二个为可选变量,使用变量时不需要使用 where table.a = {{variable}} 方式,直接用 where = {{variable}} 使用可选变量时,不需要用 AND 连接。

有点绕?
看看例子:这是一个统计不同 HTTP 方法的 SQL,将 create_timemethod 作为过滤器,其中 create_time 是可选变量。

SELECT `inner_api_log`.`method` AS `method`, 
toDate(`inner_api_log`.`create_time`) AS `create_time`, count(*) AS `count`
FROM `inner_api_log` where {{method}} [[{{create_time}}]]
GROUP BY `inner_api_log`.`method`, toDate(`inner_api_log`.`create_time`)
ORDER BY `inner_api_log`.`method` ASC, toDate(`inner_api_log`.`create_time`) ASC

过滤器可以进一步设置,例如作为下拉框(需要映射原始表,且差异值有限)或者作为搜索框等等。

SQL变量

2.4 选择可视化图表

点击可视化图形选择面板选择可用的图表,部分图表未必适合当前数据,可能点击后仍不可用。

可视化界面操作 部分图表未必适用当前数据

2.5 设置图表

2.5.1 通用设置

点击 Question 显示通用菜单,可以添加描述、添加到 Dashboard、移动或归档等。
左下角的 History 按钮可以查看版本历史,每次保存或者回滚均会产生一条版本记录。

2.5.2 折线、柱状图

下图是分布不均的典型案例,由于某种数据暴涨,掩盖了其他数据的趋势展示,改为对数刻度就可以很好地展示:


线性刻度 对数刻度 快速操作数据

当 X 轴为时间轴,鼠标可以选中区间查看对应时间范围的数据分布。

选中时间范围

2.5.3 表格

表格设置面板
左侧设置面板:
列格式化 条件格式化 颜色范围高亮
右侧展示面板

三. Dashboard 管理

3.1 编辑 Dashboard

Tips: 默认提供了世界地图和美国地图,如果不能满足你,可以在 AdminSetting 添加其他 Geojson 格式的地图。

添加自定义地图

3.2 过滤器

过滤器支持几种不同类型

过滤器类型

添加过滤器后会固定在 Dashboard 上方,不随页面移动(Binding Top),拖动过滤器改变位置

过滤器设置 选择州会影响城市级别过滤器选项

3.3 可视化

如果修改图表的标题、微调展示的颜色等操作,需要回到问题页修改再保存,会使操作变得繁琐,并增加不必要的新问题。

Dashboard 编辑模式下,支持在不修改图表展示类型的情况下,修改该类型图表几乎所有参数,例如下图所示,仅数据源不支持修改。

点击 reset to default 会恢复到原问题的设置。

Dashboard编辑模式下的图表设置页

3.4 叠加图表

在需要横向对比的场景,有时因为条件难以用单个 SQL 表达。

可以考虑下面的方式:

横向对比 2020 及 2019 一季度销售额 添加图表 叠加图表下的设置页

3.5 点击行为

例如,在地图图表上添加搜索关键词,点击跳转到 Google 搜索页:

跳转外部链接示例 联动过滤器

四. 管理数据

4.1 管理数据源

添加数据源时,管理员需要做好以下操作

  1. 限制数据源权限,设置好组员的查看和编辑权
  2. 隐藏不必要的数据,例如ClickHouse 的 Kafka Engine 表、导入详情表的物化表等对数据分析人员没有意义。
    一些数据列只提供给开发人员调试,对其他人员没有意义的,同样也要隐藏。或者某些列不适合统计,聚合可能导致崩溃
    数据可见性.png
  3. 更改列属性,Metabase 有时存在列的属性推断错误,例如某些列我们希望它有下拉过滤,但被推断为其他类型,可以手动修改,再重新扫描该列。
更改列属性

4.2 创建模型(Model)

同样是由表延展的数据,模型具有一定实体意义,通常不直接用来可视化,而是作为源数据,方便复用。

模型拥有和源数据一样丰富的列属性设置,这里不再赘述。

上一篇 下一篇

猜你喜欢

热点阅读