重命名基础表而不破坏元数据库中的仪表板

Posted

技术标签:

【中文标题】重命名基础表而不破坏元数据库中的仪表板【英文标题】:Rename underlying table without breaking dashboards in Metabase 【发布时间】:2020-04-22 12:29:48 【问题描述】:

我们要重命名底层数据库中 Metabase 中使用的表。几个仪表板依赖于这个表。我们可以重命名基础表,然后确保仪表板仍然有效吗?

【问题讨论】:

您连接到哪个数据库? 在这种情况下,它是一个雪花数据仓库。元数据库本身在 mysql 上运行。 【参考方案1】:

快捷方式

通过在 Snowflake 中使用视图,您应该能够重命名旧表,同时仍然允许对旧名称的查询仍然有效。

https://docs.snowflake.com/en/sql-reference/sql/create-view.html

CREATE [ OR REPLACE ] [ SECURE ] [ RECURSIVE ] VIEW [ IF NOT EXISTS ] <name>
    [ ( <column_list> ) ]
    [ COPY GRANTS ]
    [ COMMENT = '<string_literal>' ]
    AS <select_statement>

这看起来像这样:

CREATE VIEW old_name AS select * from new_name;

漫漫长路

通过查询 Metabase 数据库中的 report_card 表,可以找到所有使用该表的问题的问题编号,然后更改其中的名称。

SELECT * from report_card where dataset_query like '%old_table%'

您可以自动更改表名,但这会冒着意外更改相似名称或其他重大更改的风险。

【讨论】:

以上是关于重命名基础表而不破坏元数据库中的仪表板的主要内容,如果未能解决你的问题,请参考以下文章

使用元数据名称批量重命名文件

使用 SQL 查询每天自动化元数据库中的仪表板

重命名 virtualenv 文件夹而不破坏它

我想在提交时创建一个表而不重定向到 php 中的任何其他页面

如何将 Google Sheet 中的数据加入 Metabase 以创建仪表板?

Android Studio 重命名而不重构