模型

模型是 Metabase 的基本构建块。模型从同一数据库中的一个或多个表中整理数据,以预测人们会对数据提出的问题类型。您可以将它们视为派生表,或一种特殊类型的已保存问题,旨在用作新问题的起点。您可以基于 SQL 或查询构建器问题来创建模型,这意味着您可以在模型中包含自定义的计算列。

模型

要深入了解为何以及如何使用模型,请查看我们关于模型的学习文章

如何使用模型

您可以使用模型来

  • 创建模型,这里的模型指的是对您业务中某个概念的直观描述,您将其编码为一组列。例如,一个模型可以是“客户”,这是一个从多个表中提取客户信息并添加计算列(如添加生命周期价值 (LTV) 列)的表。此模型代表了您认为与理解客户相关的维度和度量
  • 让人们使用查询构建器探索 SQL 查询的结果(前提是您已设置列类型)。
  • 创建从多个表中提取或聚合数据的摘要表。
  • 清理表格,过滤掉不必要的列和行。

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

创建模型

首先,搜索已存在的模型。如果找不到满足您需求的模型,您可以

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

从头开始创建模型

  1. 在右上角,点击 **新建 +** > **模型**。
  2. 选择查询构建器或原生查询(如果您想使用 SQL)。使用查询构建器的优势在于 Metabase 可以为您填充一些元数据;如果使用 SQL,您将需要手动填充这些元数据。
  3. 选择您的数据。
  4. 创建并保存您的查询。

从已保存的问题创建模型

  1. 使用查询构建器或 SQL 编辑器提出一个问题,或选择一个您想转换为模型的现有已保存问题。
  2. 保存问题。
  3. 点击 **…** > **将其转换为模型**。

Turn a saved question into a model

模型详情

要查看模型的详情,请访问该模型并点击右上角的**信息**按钮。在这里您将看到几个标签页

  • **概览**:包括描述、创建者和最后编辑者,以及模型中包含的字段列表。以及模型的实体 ID
  • **历史记录**:列出对模型的更改以及更改者。
  • **关系**:列出哪些问题使用了该模型,以及该模型链接到了哪些表。
  • **操作**:列出基于该模型创建的操作。
  • **洞察**:关于模型使用情况的信息。仅对专业版或企业版计划的管理员可见。

向模型中的列添加元数据

元数据是模型的秘密武器。当您编写 SQL 查询时,Metabase 可以显示结果,但它无法“知道”返回的是什么类型的数据(不像使用查询构建器构建的问题那样)。这在实践中意味着人们将无法使用查询构建器探索结果,因为 Metabase 不理解结果是什么。然而,通过模型,您可以告诉 Metabase 返回的每一列中是什么类型的数据,以便 Metabase 仍然可以发挥其查询魔力。元数据还会通过显示正确的筛选小部件使筛选更友好,并帮助 Metabase 为结果选择正确的可是化图表。

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

显示名称

人们将看到的列名。

描述

一个为列编写有用上下文的地方。

此列映射到的数据库列

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

列类型

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

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

此列应出现在…

您可以指定列应出现在表视图中,还是仅出现在详细视图中(当您点击行的实体/主键时)。

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

显示为

  • 文本
  • 链接(它是一个人们应该能够点击的 URL)

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

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

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

此索引有一些限制

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

编辑模型的查询

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

从模型开始一个问题

请参阅提出问题

在 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.