动作简介
目前,动作功能仅适用于 PostgreSQL 和 MySQL。
什么是动作?
想要通过 Metabase 直接在数据库中编辑数据并构建数据应用吗?加入我们的 抢先体验计划,探索这项新功能,与您的团队一起尝试,并帮助我们塑造未来的产品。
动作是 Metabase 中的实体,允许您构建自定义表单和业务逻辑。
动作允许您编写参数化 SQL,将数据写回数据库。动作可以附加到仪表盘上的按钮,以创建自定义工作流。您甚至可以公开分享动作生成的参数化表单以收集数据。
以下是您可以使用动作实现的一些想法
- 将您在仪表盘中查看的客户标记为 VIP。
- 让团队成员删除冗余数据。
- 创建客户反馈表单并将其嵌入到您的网站。
动作必须添加到模型中,但动作仅在其所支持的原始表上运行(因此动作永远不会编辑您的模型定义)。
为数据库启用动作
为了使动作正常工作,您首先需要执行以下两项操作
- 为数据库连接启用模型动作。要为数据库连接启用动作,管理员应点击右上角的齿轮图标,然后导航至管理设置 > 数据库,再点击您要为其创建动作的数据库。在连接设置表单的右侧,切换模型动作选项。为使动作正常工作,数据库用户账户(您用于连接数据库的账户)必须具有写入权限。目前,动作功能仅支持 PostgreSQL 和 MySQL 数据库。
- 从该数据库创建至少一个模型。动作与模型相关联,因此在开始创建动作之前,您需要至少创建一个(或有权访问)模型。
谁可以使用动作
- 要创建或编辑动作,用户必须属于一个对相关数据库具有原生查询编辑权限的群组。
- 要运行动作,您只需对该动作的模型或仪表盘有查看权限(或拥有公共动作的链接)。
动作类型
动作有两种类型
运行动作
有多种方式可以运行动作
动作会更改表中的数据,从而影响模型
这里需要澄清一点:动作即使被添加到模型中,它们也会对其查询的底层表进行更改。这意味着任何有权访问底层表、或基于该表的问题或其他模型的人都将能够看到动作的效果。连接到该数据库的 Metabase 以外的工具也会检测到这些更改。
从这个意义上说,模型是动作的容器;模型是一种组织动作的方式。实际上,您(理论上)可以将一个自定义动作添加到模型中,该动作执行与模型数据无关的更新。例如,您可以编写一个自定义动作来更新 Accounts
表,并将该动作添加到仅查询无关表(例如 Orders
表)的模型中。但是,您知道,也许不要这样做(除非您有非常好的理由)。然而,基本动作仅适用于封装单个原始表的模型。
在生产环境中使用动作之前,建议您在一些示例数据(例如 Metabase 附带的示例数据库)上试用动作,以了解其工作原理。
动作注意事项
- 如果相关表或模型启用了缓存,您可能需要等到 Metabase 刷新数据后才能在 Metabase 中看到动作的效果(尽管您可以随时手动刷新数据)。
- 在没有自动生成主键的表上创建记录时,您需要输入一个可用的 ID(即尚未被其他记录使用的 ID)。
- 您无法“撤销”动作。但是,您可以创建并运行一个动作来重新创建已删除的记录,或将已更新的记录改回其原始值(前提是您知道原始值)。
- 动作不适用于公共仪表盘以及静态嵌入中的仪表盘。
延伸阅读
阅读其他Metabase 版本的文档。