模型

模型是 Metabase 的基本构建块。模型从同一数据库的另一个表或多个表中精炼数据,以预测人们将如何查询数据。您可以将其视为派生表,或者是一种特殊的已保存问题,用作新问题的起点。您可以基于 SQL 或查询生成器问题创建模型,这意味着您可以在模型中包含自定义计算列。

模型

  • 允许您更新列描述并自定义元数据,以创建极佳的探索起点。
  • 在搜索结果中显示更高排名,并在其他用户开始新问题时突出显示,以促进重用。
  • 存储在集合中,以便与杂乱的数据库模式分开。
  • 在搜索结果中显示单个记录
  • 可以持久化以加快加载速度

有关模型为何以及如何使用的更多信息,请参阅我们关于模型的学习文章

如何使用模型

您可以使用模型来

  • 创建模型,其中模型是指您在业务中定义的某个概念的直观描述,作为一组列。一个示例模型可以是“客户”,它是一个表,汇集了来自多个表的客户信息,并添加了计算列,例如添加终身价值 (LTV) 列。此模型代表您认为与理解客户相关的度量和维度
  • 允许用户使用查询生成器探索 SQL 查询的结果(前提是您设置了列类型)。
  • 创建汇总表,这些表可以从多个表中提取或聚合数据。
  • 清理已过滤掉不必要列和行的表。

模型的目标是为其他人提供一个良好的“起始表”,使其更容易回答他们关于所建模主题的任何问题。

创建模型

首先,搜索已存在的模型。如果您找不到满足您需求的模型,则可以从头开始创建模型,或

您创建的模型会自动固定到当前集合

从头开始创建模型

  • 导航到侧边栏中的“模型”选项卡。您可能需要使用左上角的按钮打开它,然后滚动到标记为“数据”的部分,然后选择“模型”。然后单击右上角的“+”按钮。
  • 或者,打开命令面板并输入“model”。然后单击“新建模型”操作。

现在选择查询生成器或原生查询(如果您想使用 SQL)。使用查询生成器的优点是 Metabase 可以为您填写部分元数据;如果您使用 SQL,则必须手动填写该元数据。

接下来,选择您的数据,创建查询,然后保存它。

您创建的模型会自动固定到当前集合

从已保存的问题创建模型

  1. 提问,使用查询生成器或 SQL 编辑器,或选择您想要转换为模型的现有已保存问题。
  2. 保存问题。
  3. 点击“” > “将此转换为模型”。

Turn a saved question into a model

模型详情

要查看模型的详情,请访问模型并单击右上角的“信息”按钮。在这里您会看到几个选项卡

  • 概述:包括描述、创建者和最后编辑者,以及模型中包含的字段列表。以及模型的实体 ID
  • 历史记录:列出模型的更改以及谁进行的更改。
  • 关系:列出使用该模型的问题,以及该模型链接到的表。
  • 操作:列出基于模型创建的操作。
  • 见解:关于模型使用情况的信息。仅对Pro 或 Enterprise 计划上的管理员可见。

为模型中的列添加元数据

元数据是模型成功的关键。当您编写 SQL 查询时,Metabase 可以显示结果,但它无法“知道”它返回的数据类型(就像使用查询生成器构建的问题一样)。实际上这意味着人们无法使用查询生成器探索结果,因为 Metabase 不理解结果是什么。然而,通过模型,您可以告诉 Metabase 返回的每列数据是什么类型,以便 Metabase 仍然可以进行查询魔法。元数据还将通过显示正确的过滤器小部件使过滤更方便,并帮助 Metabase 选择正确的可视化效果来显示结果。

如果您只设置一种元数据,请将“列类型”设置为让 Metabase 知道它正在处理什么样的数据。

显示名称

人们将看到的列名。

描述

一个地方,用于编写关于该列的有用上下文。

映射到的数据库列

对于基于 SQL 查询的模型,您可以告诉 Metabase 该列是否与现有数据库列具有相同的类型。

列类型

您可以设置列类型。默认是“无特殊类型”。

如果您的模型基于 SQL 查询,并且您希望人们能够使用查询生成器探索结果,则需要为模型中的每个列设置列类型

此列应显示在…

您可以指定列是显示在表视图中,还是仅显示在详细信息视图中(当您单击行中的实体/主键时)。

  • 表视图和详细信息视图
  • 仅详细信息视图

显示为

  • 文本
  • 链接(这是人们可以点击的 URL)

通过匹配此列在搜索中显示单个记录

对于具有整数实体键的记录中的字符串字段,Metabase 将为您提供一个选项,使该字段中的值在用户搜索 Metabase 时显示。本质上,Metabase 将索引这些值,并使其可用于 Metabase 的搜索引擎。当用户经常想直接跳转到模型中的某个记录时,此选项非常方便。

例如,如果您有一个包含账户的模型,您可以为列出账户名称或电子邮件的列启用此选项,以便用户可以从 Metabase 的任何地方快速搜索模型中的特定账户。当用户点击搜索结果中的记录时,Metabase 将直接跳转到该记录的模型和对象详细信息。

此索引有一些限制

  • 索引的字段必须是文本/字符串类型。
  • 包含该字段的记录必须具有整数实体键。
  • 为了保持搜索速度,Metabase 只会索引该字段中 5000 个唯一的,因此对于包含大量记录的表,此选项并不是最佳选择。

编辑模型的查询

您可以通过单击模型名称旁边的向下箭头,然后单击“编辑查询定义”来编辑模型的查询。编辑时,请务必保存您的更改。与会提示您保存为新问题的(保存的)问题不同,这里的任何更改都将覆盖现有模型。如果您想从现有模型创建新模型,请从模型侧边栏(两个重叠的方块图标)中选择“复制此模型”。

检查中断性更改

检查中断性更改仅在ProEnterprise计划(包括自托管和 Metabase Cloud)上可用。

当您保存对模型的更改时,Metabase 会尝试检测您的更改是否会破坏依赖于该模型的任何其他实体。例如,如果您从模型中删除了一个列,但基于该模型的其他问题依赖于该列,Metabase 将会警告您这些下游问题将会中断。

Check dependencies

目前,Metabase 会查找中断的列引用。如果您重命名或删除了一个列,Metabase 可能会将更改标记为中断下游实体。但 Metabase 无法检测到其他类型的更改,例如更改列类型或计算逻辑。

模型列表视图

Viewing a model as a list

列表视图可帮助您逐个记录地探索记录,而不是筛选大表。您可以自定义布局以突出最重要的字段。

将模型查看为列表

  1. 访问模型。
  2. 单击三点菜单。
  3. 选择“编辑元数据”。
  4. 导航到“设置”选项卡。
  5. 在“此数据的默认视图应是什么?”下,切换到“列表”。

Model list edit

自定义模型列表视图

Customize list layout

您可以通过单击“自定义列表布局”来定制数据的显示方式。

列表中的每个项目都有

  • 实体图标。如果记录有图片链接,它会显示图片,您可以随时隐藏。
  • 左侧列显示标题或主标识符。
  • 右侧列可容纳最多 5 个其他列。

您可以

  • 使用“查找列…”搜索框搜索列
  • 将列从可用列表中拖动到左侧列或右侧列区域。
  • 通过在各自区域内拖动来重新排序列
  • 通过单击列上的 X 来删除列

您可以在底部看到一个预览,其中包含来自您模型的示例数据。

单击“完成”以保存您的更改。

从模型开始提问

请参阅提问

在 SQL 查询编辑器中引用模型

您可以在 SQL 查询中引用模型,就像引用已保存的问题一样


SELECT * FROM {{#1-customer-model}}

或作为公共表表达式 (CTE)


WITH model AS {{#3807-invoice-model}}
SELECT *
FROM model;

只需键入{{#}} 即可搜索模型(例如,您可以键入{{#customer}}来搜索标题中带有“customer”的模型、问题和表)。

您还可以使用数据引用侧边栏来浏览可用的模型。要打开数据引用侧边栏,请单击“书籍”图标。

模型版本历史记录

对于问题仪表板和模型,Metabase 会为该项目的先前十五个版本保留版本历史记录。您可以查看更改并恢复到以前的版本。

请参阅历史记录

删除模型

您可以将过时或不需要的模型移至垃圾箱,或永久删除它们。删除模型会影响使用它作为数据源的问题。

请参阅删除和恢复项目

验证模型

请参阅内容验证

模型持久化

请参阅模型持久化

延伸阅读

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档?提出更改。
© . This site is unofficial and not affiliated with Metabase, Inc.