操作介绍

目前,操作仅适用于 PostgreSQL 和 MySQL。

Example action

什么是操作?

操作是 Metabase 中的实体,可让您构建自定义表单和业务逻辑。

操作允许您编写可写回数据库的参数化 SQL。操作可以附加到仪表盘上的按钮以创建自定义工作流程。您甚至可以公开共享操作生成的参数化表单来收集数据。

以下是您可以使用操作执行的一些想法

  • 将您在仪表盘中查看的客户标记为 VIP。
  • 让团队成员删除冗余数据。
  • 创建客户反馈表单并将其嵌入到您的网站上。

操作必须添加到模型,但操作仅在支持这些模型的原始表上运行(因此操作永远不会编辑您的模型定义)。

为数据库启用操作

为了使操作能够工作,您首先需要执行以下两项操作

  1. 为数据库连接启用模型操作。要为数据库连接启用操作,管理员应单击右上角的齿轮图标,导航到管理设置 > 数据库,然后单击您要为其创建操作的数据库。在连接设置表单的右侧,切换模型操作选项。为了使操作能够工作,数据库用户帐户(您用于连接到数据库的帐户)必须具有写入权限。目前,操作仅在 PostgreSQL 和 MySQL 数据库上受支持。
  2. 从该数据库创建至少一个模型。 操作与模型关联,因此您需要先创建(或有权访问)至少一个模型,然后才能开始创建操作。

谁可以使用操作

  • 要创建或编辑操作,人员必须属于具有原生查询编辑权限的群组,才能访问相关数据库。
  • 要运行操作,您只需要查看对操作的模型或仪表盘的访问权限(或指向公共操作的链接)。

操作类型

有两种类型的操作

运行操作

有多种方法可以运行操作

操作更改表中的数据,这会影响模型

这里需要澄清的是:操作,即使它们被添加到模型中,也会更改模型查询的底层表。这意味着任何有权访问底层表,或基于该表的问题或其他模型的人员,都将能够看到操作的效果。连接到该数据库的 Metabase 以外的工具也将获取这些更改。

从这个意义上讲,模型是操作的容器;模型是组织操作的一种方式。实际上,您可以在理论上将自定义操作添加到模型中,以执行一些与其模型数据无关的更新。例如,您可以编写一个更新 Accounts 表的自定义操作,并将该操作添加到仅查询不相关表(例如,Orders 表)的模型中。但是,您知道,也许不要这样做(除非您有充分的理由)。但是,基本操作仅适用于包装单个原始表的模型。

在生产环境中使用操作之前,请考虑在一些示例数据(例如 Metabase 附带的示例数据库)上试用操作,以了解它们的工作原理。

操作注意事项

  • 如果为相关表或模型启用了缓存,您可能在 Metabase 刷新数据之前看不到操作的效果(尽管您始终可以手动刷新数据)。
  • 在缺少自动生成主键的表上创建记录时,您需要输入可用的 ID(即,另一个记录尚未使用的 ID)。
  • 您无法“撤消”操作。但是,您可以创建和运行操作来重新创建已删除的记录,或将更新的记录更改回其原始值(前提是您知道原始值)。
  • 操作不适用于公共仪表盘和静态嵌入中的仪表盘。

延伸阅读

阅读其他Metabase 版本的文档。