仪表板上的自定义点击目的地
您可以将仪表板卡片设置为将用户发送到仪表板、已保存问题和 URL,并使用卡片中的值来更新目标筛选器,或将链接参数化以指向外部网站。
Metabase 提供了一些简单的构建块,让您可以自定义用户点击仪表板上的图表时发生的操作。您可以结合这些基本功能来创建报告路径,实现仪表板更新后续仪表板,甚至将用户发送到外部网站。
本文将重点介绍自定义点击行为的其中一个选项:转到自定义目的地。我们将通过一个使用 Metabase 的示例数据库的场景,向您展示自定义目的地的工作原理,并展示一些巧妙的技巧来创建交互式体验。
我们将快速创建两个仪表板——一个“订单概览”仪表板和一个“产品详情”仪表板。我们希望创建的用户体验是这样的:当用户查看“订单概览”仪表板时,他们应该能够点击某个产品,然后 Metabase 会将他们带到“产品详情”仪表板,该仪表板会根据用户点击的产品进行更新。一旦用户到达“产品详情”仪表板,Metabase 应该能够根据他们点击的产品类别将他们发送到不同的外部 URL。
之后,我们还将通过另一个使用 SQL 问题的示例,展示自定义目的地是如何为仪表板上的 SQL 问题添加交互元素的绝佳方式。
如果您已经有自己的仪表板可以操作,可以直接跳到我们自定义目的地部分。
创建订单概览和产品详情仪表板
让我们首先构建“订单概览”仪表板并向其中添加两个问题。我们将快速浏览这一部分——如果您想了解更多详细信息,请查看我们关于提出问题和创建仪表板的文档。
继续创建一个新仪表板,将其命名为“订单概览”,并将其保存到合适的位置。
我们将提出两个关于订单的问题
- 我们的订单表格是什么样子?:首先浏览
Orders
表,然后点击保存。 - 订单如何按州划分?:首先选择
Orders
表,然后在侧边栏的“用户”下按State
字段进行汇总。由于我们按州汇总,Metabase 会为我们生成一个区域地图。请务必也保存此问题。
接下来,我们可以将这些已保存的问题添加到新仪表板。在查看空白仪表板时,点击“铅笔图标”进入编辑模式,然后点击“+”添加已保存的问题。添加完这些问题并保存仪表板后,结果应该如下图所示
接下来,我们需要创建“产品详情”仪表板,最终将其链接到“订单概览”。“产品详情”将更详细地查看我们库存中的单个商品,因此我们还将设置仪表板筛选器,允许我们根据要查看的产品输入 ID 值。
创建此仪表板,将其命名为“产品详情”,然后保存。
我们再提出两个新问题,将其添加到此仪表板
- 产品名称是什么?:从
Products
表开始,点击“可视化”,然后选择“数字”,在“要显示的字段”下拉菜单中选择Title
。保存此问题。 - 有多少订单包含此产品?:从
Orders
表开始,在Orders
列表下按Product ID
的计数进行汇总。同样,使用“数字”进行可视化,在“要显示的字段”下拉菜单中选择Count
,并保存问题。
返回“产品详情”仪表板。在编辑模式下,添加我们新的已保存问题,并且别忘了我们还需要一个仪表板筛选器。要添加一个,点击右上角的“添加筛选器”图标,然后选择“ID”。为每张卡片选择合适的列进行筛选——我们的产品名称卡片将根据 Product.ID
进行筛选,而订单计数则应根据 Order.Product ID
进行筛选。我们将这些问题的数据可视化设置为“数字”,以便它们可以像可变文本卡片一样操作,根据筛选器中的值更改其文本。
仪表板筛选器设置如下图所示
点击“完成”并保存您的仪表板。
现在,我们将展示如何链接到外部网站。举例来说,我们将使用 Metabase 文档的搜索结果页面,并搜索用户点击的产品。
完整的点击路径如下
订单概览仪表板 → 产品详情仪表板 → 外部网站
此 GIF 展示了点击路径的实际效果
自定义点击行为:订单概览仪表板
让我们回到“订单概览”仪表板。我们可以为此仪表板上的每个问题卡片添加自定义点击行为,但现在我们只关注为一张卡片添加自定义目的地。假设我们想设置 Orders
卡片(包含订单表的卡片),以便当用户点击 Product ID
列时,Metabase 会将他们发送到产品详情页面,并将产品详情仪表板上的筛选器填充为用户点击的 Product ID
。
从“订单概览”页面开始,我们将点击“铅笔图标”进入仪表板编辑模式。接下来,我们将鼠标悬停在要自定义的卡片上。右上角会出现一个菜单。点击“点击行为图标”菜单(它是卡片上带有鼠标指针的图标)。
Metabase 将滑出一个侧边栏,供您设置用户点击此表格时发生的操作。
我们来了解一下布局
- 卡片网格:由于我们为订单卡片选择了“点击行为”,Metabase 会将其“点击时”标签以蓝色高亮显示。我们可以通过点击其他卡片的标签来选择其点击行为。
- 右上角:主编辑菜单,包含添加问题、文本框或筛选器的选项。
- 右侧边栏:用于自定义当前卡片点击行为的选项。
由于我们使用查询构建器编写了订单问题,Metabase 将默认点击行为设置为“打开下钻菜单”,这允许用户下钻数据。
让我们更改点击行为,将用户发送到我们的“产品详情”仪表板。
表格和自定义目的地是特别棒的组合,因为我们可以为表格中的每一列设置不同的自定义目的地。在此示例中,我们只为单个列设置点击行为。我们将在订单问题卡片上设置一个自定义目的地,以便当用户点击 Product ID
列中的值时,Metabase 将 1) 把他们发送到“产品详情”仪表板,并 2) 根据点击的 Product ID
筛选该仪表板。
我们的选项是
- 打开操作菜单(使用查询构建器编写的问题的默认设置)。
- 转到自定义目的地。
- 更新仪表板筛选器。
我们将选择“转到自定义目的地”。
Metabase 将提供三个自定义目的地选项
- 仪表板
- 已保存问题
- URL
要将用户发送到“产品详情”仪表板,我们将选择“仪表板”选项,然后选择我们的“产品详情”仪表板。
这是一个检查点
将值传递到目的地
目前,我们将 Product ID
列设置为“转到自定义目的地”,并已将其设置为链接到“产品详情”仪表板,但此链接的设置尚未完成。接下来,我们希望“将值传递到此仪表板的筛选器”。您会注意到仪表板上有一个可用筛选器列表。在此示例中,我们的“产品详情”仪表板只有一个可以传递值的筛选器:ID。
点击“ID”,您会注意到可以从表格中的任何列传递值,而不仅仅是 Product ID
列。但在此示例中,我们将从 Product ID
列传递值。
Metabase 将提供摘要
在此处,Metabase 确认我们已将 Product ID
列的点击行为设置为
- 转到自定义目的地。
- 链接到“产品详情”仪表板。
- 将
Product ID
列的值传递到“产品详情”仪表板上的ID
筛选器。
让我们试一试:从“订单概览”中,我们将点击 Product ID
列,Metabase 会将我们带到“产品详情”仪表板,并将值 14
填充到 ID
筛选器中。
自定义目的地:URL
接下来,我们将设置“产品详情”仪表板,以便当用户点击“产品名称”卡片时,Metabase 会将他们发送到外部站点,并使用卡片中的值对 URL 进行参数化。我们可以将他们发送到任何外部站点,但在此示例中,我们将他们发送到 Metabase 文档的搜索页面,只是为了让您看到参数化在实际操作中的效果(并且因为阅读我们的文档会使您成为一个更好的人)。
这是那个仪表板的再次展示
与之前一样,我们将进入仪表板编辑模式,将鼠标悬停在“产品名称”卡片上,然后选择“点击行为”。
我们将看到与之前相同的菜单
- 打开操作菜单。
- 转到自定义目的地。
- 更新仪表板筛选器。
我们将选择“转到自定义目的地”和“URL”。接下来,我们将输入我们的 URL,并通过双花括号包含参数,例如:{{parameter}}。在此示例中,我们将 Title
作为 URL 中的参数
https://metabase.net.cn/search?query={{Title}}
您可以查看“可引用值”下拉菜单,以查看可在 URL 中用作参数的完整值列表。您可以使用 URL 中的任何(或所有)值,包括重复使用相同的值。
使用文本框添加导航
除了为仪表板添加上下文,您还可以使用文本卡片为仪表板添加有用的导航链接,例如添加一个文本卡片,让您返回我们最初的“订单概览”仪表板。您可以创建一个文本卡片,将文本居中,并使用 Markdown 创建一个指向“订单概览”仪表板的链接,这只是为了方便您的读者轻松浏览您的点击路径。仪表板与该链接的显示效果如下
带有 SQL 问题的自定义目的地
我们上面使用的示例仪表板只包含使用 Metabase 的查询构建器提出的问题,但您可能也有希望在仪表板上进行交互的原生查询。
让我们首先向我们的“产品详情”仪表板添加一个 SQL 问题,这次是关于产品类别的。导航到原生查询构建器后,我们将输入以下 SQL 问题
select CATEGORY
from PRODUCTS
where
{{TITLE}} and
{{ID}}
Metabase 会滑出一个侧边栏,您将看到两个变量:TITLE
和 ID
。我们希望无论何时在 ID 或 Title 字段中输入值,此问题都能显示产品类别。从下拉菜单中,将两者的“变量类型”都设置为“字段筛选器”。继续将 TITLE
变量映射到 Product.Title
字段,并将 ID
映射到 Product.ID
。
您可以通过向字段筛选器添加示例 ID 来确认问题是否运行;这里我们使用产品 ID 34 进行测试,并运行查询。由于我们的可视化是“数字”,我们看到此产品的类别(小工具)以文本形式呈现在问题下方
现在保存问题并将其添加到我们的“产品详情”仪表板。在编辑模式下,请务必将现有仪表板筛选器链接到我们的新卡片,该卡片应根据我们新“产品类别”卡片的 ID
列进行筛选。
接下来,点击我们新卡片上的“点击行为图标”,您将看到一个与之前略有不同的菜单
- 不执行任何操作
- 转到自定义问题
- 更新仪表板筛选器
出现“不执行任何操作”选项的原因是我们将 Product category
问题用 SQL 编写,而 SQL 问题不包含“操作菜单”。
这里我们向您展示一个巧妙的技巧。如果我们回到 Product category
问题,我们可以使用 concat
来创建根据筛选器值更新的字符串。
select concat('Category is ', CATEGORY)
from PRODUCTS
where
{{TITLE}} and
{{ID}}
最后,我们可以将自定义目的地设置为像我们之前那样的特定参数化 URL,或者将此卡片链接到另一个包含按产品类别划分的订单统计信息的仪表板。
总结
我们已经向您展示了如何设置简单的点击路径,以及如何为原生查询和使用 Metabase 查询构建器构建的查询设置自定义目的地。但这些示例只展示了一种点击路径。您可以自定义仪表板上每个问题卡片的行为!例如,您可以创建一个州详情仪表板,并自定义美国地图上的点击行为,以便 Metabase 将用户发送到州详情仪表板,并根据点击的州进行筛选。
使用 Metabase 查询构建器构建的问题将默认显示操作菜单,允许用户下钻数据,但对于 SQL 问题,我们建议自定义目的地(在有意义的情况下)。查看我们的文档,了解更多关于交互式仪表板的信息。
您还可以将用户属性传递到 URL 或目标筛选器中,从而为特定用户定制体验。
因此,请发挥您的创造力,设置通过数据的点击路径,并在我们的论坛上分享您想出的任何技巧。
下一篇:交叉筛选:使用图表更新仪表板筛选器
只需点击几下,您就可以将任何图表或表格配置为更新仪表板筛选器。