如何将Bigquery数据集和DAG从一个GCP组织转移到另一个

时间:2019-04-05 18:00:48

标签: google-cloud-platform

我对将GCP资源(DAG,数据集,BigQuery表)从一个源GCP项目迁移到另一个目标GCP项目(两个项目都位于不同GCP组织中)存在一个技术问题。

我的意思是,我已经知道我们可以在区域之间以及项目之间(在同一项目中)迁移/传输BigQuery数据集和DAG:

例如:

要在区域之间迁移数据集和DAG:

  1. 在美国地区创建Cloud Composer环境。
  2. 创建两个Cloud Storage存储桶;一个位于源区域,另一个位于目标区域。
  3. 创建BigQuery目标数据集(以EU为单位)。
  4. 定义作曲家的工作流程(基本上创建一个虚拟任务->将BQ表导出到存储桶->从存储桶导入表)。
  5. 将DAG和依赖项上载到存储桶。
  6. 手动触发DAG。

要在项目之间迁移数据集和DAG:


使用bq命令行工具将表从一个项目复制到另一个项目。 您可以查看以下示例命令:

来源:

projectid:123456789123 数据集:dataset1 表格:table1

目的地:

项目编号:0987654321098 数据集:dataset2 表格:table2

命令: bq cp 123456789123:dataset1.table1 0987654321098:dataset2.table2

通过shell脚本(shell脚本+ bq工具):

export SOURCE_DATASET=$1  # project1:dataset
export DEST_PREFIX=$2  # project2:dataset2.any_prefix_
for f in `bq ls $SOURCE_DATASET |grep TABLE | awk '{print $1}'`
do
 export CP_COMMAND="bq cp $SOURCE_DATASET.$f $DEST_PREFIX$f"
 echo $CP_COMMAND
 echo `$CP_COMMAND`
done

但是,我该如何在组织之间迁移这些GCP资源?我的意思是,我在源组织中有一些数据集和DAG, 需要复制/转移到在其他GCP组织中创建的目标项目。

我该怎么办?

非常感谢

此致

0 个答案:

没有答案