使用transfer service命令复制大型查询数据集的自动化shell脚本



我想写一个shell脚本,通过transfer命令行将源数据集复制到目标数据集。

注意:复制应该发生在数据集级别,因为我们在bigquery中有数千个数据集。

考虑以下方法:

#!/bin/bash
Project_Id='input your project name'
Location='input your location'
Tar_Data_Set='input you targeted dataset name'
for Data_Set in $(bq ls -n 1000 --project_id=${Project_Id} --location=${Location}| sed -n '3,$p')
[ $? -ne 0 ] && echo "Input parameter error" && exit 1
do

for Table_Name in  $(bq ls ${Data_Set}| awk '{if(NR>2){print $1}}')
do
echo "bq cp -f ${Project_Id}.${Data_Set}.${Table_Name} ${Project_Id}.${Tar_Data_Set}.${Table_Name};"   &>/dev/null 
done

done

在这里,我们假设它复制下相同的表项目id。

相关内容

  • 没有找到相关文章

最新更新