重命名基础表而不破坏元数据库中的仪表板
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%'
您可以自动更改表名,但这会冒着意外更改相似名称或其他重大更改的风险。
【讨论】:
以上是关于重命名基础表而不破坏元数据库中的仪表板的主要内容,如果未能解决你的问题,请参考以下文章
我想在提交时创建一个表而不重定向到 php 中的任何其他页面