模型

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

模型

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

如何使用模型

您可以使用模型来

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

模型的想法是给其他人一个良好的“起点表”,使他们更容易回答有关建模主题的任何问题。

创建模型

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

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

从头开始创建模型

  1. 在上右角,点击New + > Model
  2. 选择查询构建器或本地查询(如果您想使用SQL)。使用查询构建器的优点是Metabase将能够为您填写一些元数据;如果您使用SQL,您将必须手动填写这些元数据。
  3. 选择您的数据。
  4. 创建并保存您的查询。

从已保存的问题创建模型

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

Turn a saved question into a model

模型详情页面

要查看模型的详情页面

  • 从集合:点击模型旁边的图标。
  • 从模型:点击右上角的信息按钮,然后点击模型详情

Model detail page

在这里您将看到几个选项卡

  • 使用:根据模型列出项目。
  • 模式:列出模型中的字段。
  • 操作:列出模型中的操作,并允许您创建新的操作

模型详情页面还显示有关模型的某些基本信息

  • 描述
  • 联系人(谁编写了模型)
  • 支持表

要基于模型开始新的问题,请点击探索

要编辑模型的基础查询,请点击编辑定义

您还可以编辑模型的元数据。

向模型中的列添加元数据

元数据是模型的秘密酱料。当您编写一个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 会保留前十五个版本的版本历史记录。您可以查看更改并恢复到以前的版本。

参见 历史记录

删除模型

您可以移动过时或不必要的模型到回收站,或永久删除它们。删除模型将影响使用它作为数据源的问题。

参见 删除和恢复项目

验证模型

模型验证仅在 Pro企业 计划(包括自托管和 Metabase Cloud)上可用。

就像问题一样,管理员可以验证模型。验证模型将为其添加勾选标记,以便其他人知道管理员已经审核了该模型。如果任何人对该模型进行任何更改,勾选标记将消失。管理员必须重新验证问题才能恢复勾选标记。

模型持久化

参见 模型持久化

进一步阅读

阅读关于其他 Metabase 版本的文档

想要改进这些文档? 提出更改。