提问
Metabase 的两个核心概念是问题和它们对应的答案。要在 Metabase 中提问,请点击主导航栏右上角的 + 新建 按钮,然后选择以下选项之一
- 问题
- SQL 查询
本页介绍了如何使用 Metabase 的图形查询构建器“问题”选项来提问。
使用查询构建器创建新问题
从 + 新建 下拉菜单中选择 问题,然后选择您的起始数据
您可以从以下内容开始提问
- 模型。一个 模型 是一种特殊的已保存问题,旨在用作提问的良好起点。有时这些被称为派生表,因为它们通常从多个原始表中汇总数据。
- 度量。 度量 是预定义的计算。如果您将度量作为提问的起点,Metabase 将创建一个与所选度量具有相同数据源的问题,并应用该度量。您将能够添加更多连接、筛选和汇总。
- 表。您需要指定数据库和该数据库中的表作为问题的起点。
- 一个 已保存的问题。您可以使用任何问题的结果作为新问题的起点。
请注意,有些类型的已保存问题不能用作源数据
- Druid 问题
- Mongo 问题
- 使用
累计总和
或累计计数
聚合的问题 - 具有相同或类似名称的列的问题,例如
计数
和计数 2
查询构建器
选择数据后,Metabase 将带您进入查询构建器。假设您选择了 表 > 示例数据库 > 订单,那么您将看到如下内容
这是查询构建器编辑器。它有三个默认步骤。
在每一步的右侧有一个 预览 按钮(看起来像播放按钮 - 指向右边的三角形)显示您的问题结果的前10行。
选择数据
数据部分是您选择要处理的数据的地方。在这里,您将选择一个 模型、一个 度量、数据库中的一个表或一个已保存的问题。
您可以通过在查询构建器中单击数据源的名称来在新的浏览器选项卡中查看数据源。请按 Cmd/Ctrl+Click。
要选择要在查询中包含的列,请单击数据源旁边的箭头。您还可以在可视化结果后隐藏表视图中的列。
数据连接
您还可以通过 连接 来从同一数据库中选择多个表。
筛选
筛选只是根据某些标准缩小范围。当您在网上搜索某些内容时,您可能已经熟悉了筛选,例如在购物时。也许您只想看到橄榄色的裤子,或者作者姓氏为“博尔赫斯”的书,或者穿着橄榄色裤子的人阅读豪尔赫·路易斯·博尔赫斯。
当您添加筛选步骤时,您可以选择一个或多个要筛选的列。根据您选择的列的数据类型,您将获得不同的 筛选类型,例如日期列的日历。
您可以在每个总结步骤之后添加后续的过滤步骤。这允许您进行诸如按每月行数总结,然后对count
列进行过滤,只包含计数大于100的行之类的操作。(这基本上就像SQL中的HAVING
子句。)
一旦您对过滤效果满意,点击添加过滤,并可视化您的结果。您的数据将根据过滤条件更新。
如果您想编辑您的过滤条件,只需点击屏幕顶部的紫色小过滤器。如果您点击X,您将移除您的过滤条件。您可以添加您需要的任意数量的过滤条件。
过滤类型
根据列的数据类型,Metabase将提供不同的过滤选项。
- 数值列允许您添加过滤条件,只包括表中数值在两个特定值之间、大于或小于特定值,或者与特定值完全相等的行。
- 文本或类别列允许您指定您只想包含该列是或不是特定选项的数据,是否包含、以什么开始或以什么结束子字符串,或者行是否为空。
- 日期列提供了许多过滤特定日期范围、相对日期范围等选项。
- 结构化数据列,通常是JSON或XML,只能通过“是否为空”或“不为空”进行过滤。然而,一些数据库支持JSON展开,这允许您将JSON数据拆分为单独的列,然后对这些列进行过滤。
过滤多列
在查看表格或图表时,点击过滤将弹出过滤对话框。
在这里,您可以一次性为问题添加多个过滤条件(这可以节省大量加载时间)。过滤选项将根据字段类型而有所不同。任何通过外键链接的表格都将显示在对话框的左侧选项卡中。您也可以过滤总结。
完成添加过滤条件后,点击应用过滤以重新运行查询并更新其结果。要移除您应用的所有过滤条件,请在过滤对话框的左下角点击清除所有过滤。您在这里应用的任何过滤条件都会显示在编辑器中,反之亦然。
按日期过滤
在日期列上过滤时,理解具体日期和相对日期之间的区别很重要。
- 具体日期是指2010年11月1日、2017年6月3日至7月12日之类的日期;它们始终指相同的日期。
- 相对日期是指“前30天”或“当前周”之类的日期;随着时间的推移,这些选项所引用的日期会改变。相对日期是设置问题过滤条件的有用方式,以便它保持最新,例如显示过去7天内有多少人访问了您的网站。您还可以点击…来指定一个从…开始的选项,这允许您调整相对日期范围。例如,您可以将范围设置为“前7天,从2天前开始”。
按段过滤
如果您的Metabase管理员为您查看的表格创建了特殊的命名过滤条件,它们将以紫色文本显示在过滤下拉菜单的顶部,旁边有一个星号。这些称为段,它们是您组织常用的一组过滤条件的快捷方式。它们可能被称为“活跃用户”或“最受欢迎的产品”。
使用自定义表达式过滤
如果您试图表达更复杂的过滤器,您可以从添加过滤器菜单中选择自定义表达式来创建一个过滤器表达式。您可以使用比较运算符,如大于>
,或小于<
,以及类似电子表格的功能。例如,[Subtotal] > 100 OR median([Age]) < 40
。
汇总和按...
当我们有像“上周每天有多少人下载了我们的应用程序?”这样的问题时,我们是在请求数据的摘要。摘要通常由两部分组成:我们关心的一个或多个数字(在数据语言中称为“指标”),以及我们想要如何看到这个数字的分组或拆分方式。为了回答“上周每天有多少人下载了我们的应用程序?”这个问题
- 指标将是下载应用程序的人数(行数)。
- 我们希望这个指标按“每天”分组。
- 并且我们想要筛选出“上周”的数据。
您通常会以两种常见的方式总结您的数据
- 计算表中的行数
- 获取数值列的总和或平均值
并且很多时候,您会随后通过以下方式对那个指标进行分组
- 时间
- 地点
- 类别
添加摘要步骤可以让您选择如何聚合上一步的数据。您可以选择一个或多个指标,并且可以选择性地按一个或多个维度(列)对这些指标进行分组。在选择您的指标时,您可以选择基本函数,如sum
、average
和count
;或者您可以选择由管理员定义的常用指标;或者您可以通过编写公式创建一个自定义表达式。
常用指标包括
- 行数:应用过滤器后的表中的总行数。如果您正在查看您的
Orders
表,并想知道价格大于40美元的订单数量,您将按“价格大于40”进行筛选,然后选择行数
,因为您希望Metabase计算符合您筛选条件的订单数量。 - ……的总和:特定列中所有值的总和。
- ……的平均值:单列中所有值的平均值。
- ……的独特值数量:单列中所有单元格中的唯一值的数量。当您试图找出像上个月销售了多少种不同类型的商品(而不是总共销售了多少商品)这样的问题时,这很有用。
- ……的累计总和:为特定列提供一个累计总金额。为了使此指标有用,您需要按日期列对其进行分组,以便在时间上查看。
- 行数的累计总数:为表中的行数随时间的变化提供一个累计总金额。就像
……的累计总和
一样,您需要按日期列对其进行分组,以便使其有用。 - ……的标准差:一个数字,它表达了列中的值相对于该列的平均值的变化程度,向上或向下。
- ……的最小值:所选字段中存在的最小值。
- 最大值…:选中字段中存在的最大值。
如果你总结了并添加了分组,那么你可以再次总结。你还可以在中间添加过滤和/或连接的步骤。例如,你的第一个总结步骤可以是按月获取订单数量,然后你可以添加第二个总结步骤,通过选择平均…
你的计数
列来获取平均每月订单总额。
你还可以在结果页面的侧边栏中添加指标和分组:侧边栏顶部是你选择想要查看的数字(“指标”)的地方,下面是你选择如何分组该数字(或如何“拆分”)的地方。
如果你的管理员为您的公司或组织创建了任何特定的命名指标,它们将出现在“常用指标”部分下的下拉菜单中。这些可能包括像您公司官方计算收入的方式这样的东西。
分组指标
根据您选择的分组列,Metabase将显示它认为最适合此总结的最佳默认可视化或图表。因此,如果您选择日期列,您将看到这样的折线图(您可以点击绿色的总结按钮查看总结侧边栏)。
当您点击与当前选定的不同分组列时,分组将切换为使用该列。但如果你想要添加一个额外的分组,只需点击列右侧的加号(+)图标。要删除分组,请点击X图标。
某些分组列将为您提供选择分组大小或大小的选项
- 对于日期时间列,您可以点击
按月
来更改分组为日、周、小时、季度、年等。您还可以通过具有不同时间粒度的同一日期时间列添加多个拆分(例如,按周和星期几分组)。 -
对于像年龄这样的数字列,Metabase将自动“分箱”结果,所以您会看到您的指标按年龄区间分组,如0-10、11-20、21-30等。就像日期一样,您可以通过点击当前分箱选项来更改它为特定的分箱数。目前,您无法为分箱选择自己的范围。
如果您选择固定数量的分箱,Metabase将把数据范围分成该数量的相等大小的区间。某些区间可能没有数据,Metabase将不会显示它们。
设置完您的指标和分组后,点击可视化以查看您所有的结果。
可视化您的数据
如果您想提前了解如何更改结果的可视化,请随意。
钻取菜单
在查看图表时,您还可以点击问题来更详细地探索数据。
钻取菜单将根据您点击的内容显示不同的选项。然后,您可以选择保存任何探索为新问题。只有使用查询构建器构建的问题才能完全使用钻取菜单。使用SQL/原生查询构建的问题将只有有限的钻取操作。有关钻取如何工作,请参阅创建交互式图表。
列标题钻取
当查看一个表格时,点击列标题会根据列的数据类型提供不同的选项。请参阅表格。
查看单个记录的详细信息
要查看有关特定记录(例如用户帐户、订单、地点等)的更多信息,请点击记录的ID号(或主键)。您可以看到与该记录相关的所有字段以及为提高可读性而在表格视图中隐藏的所有相关表。要浏览当前表格中的其他记录,请按左右箭头键,或点击屏幕左右侧的箭头。
自定义表达式
自定义表达式允许您在聚合函数内或之间使用类似电子表格的功能和简单的算术。
例如,您可以执行Average(sqrt[FieldX]) + Sum([FieldY])
或Max(floor([FieldX] - [FieldY]))
,其中FieldX
和FieldY
是当前所选表中的字段。了解更多有关编写表达式的信息。
创建自定义列
自定义列在您需要基于计算创建新列时很有帮助,例如从一个列的值中减去另一个列的值,或提取现有文本列的一部分。您添加的自定义列不会永久添加到您的表格中;这些列只会在给定的问题中存在。
您可以在您的公式中使用以下数学运算符:+
、–
、*
(乘法)和/
(除法),以及大量类似电子表格的函数。您还可以使用括号来明确操作顺序。
在表格中添加或删除列
当查看表格时,您可以通过点击左下角的齿轮图标来调用列选择器。点击添加或删除列以搜索并选择列,包括相关表中的列。
排序结果
排序步骤允许您选择一个或多个列来根据结果进行排序。对于您选择的每个列,您还可以选择是升序还是降序排序;只需点击箭头即可从升序(向上箭头)切换到降序(向下箭头)。
设置行限制
行限制步骤允许您限制之前结果中的行数。当与排序结合使用时,限制可以允许您执行类似创建前10名列表的操作,首先根据结果中的一个列进行排序,然后添加10行的行限制。与其他步骤不同,行限制步骤只能添加到问题的末尾。如果您想添加更多步骤到限制结果中,您总是可以将限制结果保存为一个问题,然后根据这些结果开始一个新的问题。
查看驱动您问题的SQL
在底层,所有Metabase问题都是SQL(惊讶!)!要查看在您点击可视化时Metabase将运行的SQL,请点击查询构建器右上角的控制台图标。Metabase将在侧边栏中预览SQL。
要查看SQL,您必须拥有查询构建器和原生权限。
将查询构建器问题转换为SQL
您还可以将问题转换为原生编辑器问题。从查询构建器屏幕
- 点击查询构建器右上角的控制台图标。
- 点击底部右下角的 将问题转换为 SQL 选项。
转换是一个单向过程:您不能将 SQL 问题转换回查询构建器问题。
缓存问题结果
请参阅缓存问题结果。
尝试保存的问题
每次您开始修改一个保存的问题时,Metabase 将为您创建一个新的问题。查询构建器将在 数据 下显示您起始问题的名称。
您可以随意尝试任何保存的问题,因为您对现有问题不会有任何影响。当您在问题上点击 保存 时,您可以选择将其保存为新问题(默认选项),或者可以覆盖您开始的问题。
如果您发现自己多次将相同的问题作为多个问题的起点,您可能希望将其转换为一个模型,以便让其他人知道它是一个好的起点。
问题版本历史
对于问题、仪表板 和 模型,Metabase 为每个项目保留前十五个版本的历史记录。
请参阅历史记录。
进一步阅读
阅读关于其他Metabase 版本的文档。