将视图移动到另一个 Project Bigquery

Moving views to another Project Bigquery

希望能够将视图从一个项目移动(复制和替换)到另一个项目。

假设我们有开发 GCP 项目 1,以及一个集成和生产 GCP 项目。我希望能够将单个视图或特定数据集(不是表格)从 Dev 移动到 Int,然后从 Int 移动到 Prod。

我知道我可以使用以下 Google Cloud Shell 命令移动表格。

bq cp ProjectNumberDev.DatasetDev.TableDev ProjectNumberInt.DatasetInt.TableInt

但是,此命令仅适用于表而不适用于视图,有没有办法对视图执行此操作?还是 Table Insert / Post API 脚本是唯一的方法?

根据 documentation

Currently, there is no supported method for copying a view from one dataset to another. You must recreate the view in the target dataset.

您可以从旧视图复制 SQL 查询:

发出 bq show 命令。
--format 标志可用于控制输出。如果您在默认项目以外的项目中获取有关视图的信息,请按以下格式将项目 ID 添加到数据集中:[PROJECT_ID]:[DATASET]。要将视图属性写入文件,请将 > [PATH_TO_FILE] 添加到命令中。

bq show --format=prettyjson [PROJECT_ID]:[DATASET].[VIEW] > [PATH_TO_FILE]

同时,如果您可以在开发过程中编写所有视图的脚本,那么您可以在所有环境中使用 CREATE VIEW 语句

查看更多 Data Definition Language

您可以对表创建等应用相同的方法。

至少现在可以在 Cloud Console 中将视图从一个项目移动到另一个项目。

Currently, you can copy a view only by using the Cloud Console.

这是来自GCP documentation的说明: