在数据位置之间移动大查询数据集

在数据位置之间移动大查询数据集

我需要将一些大型查询数据集的数据从一个数据位置移动到另一个数据位置,而不会丢失任何正在传输的数据。我了解 GCP 支持数据集之间的数据传输,但这需要创建多个数据集。例如:要更改数据集“A”的数据位置,我们需要创建一个空数据集“B”(在预期的数据位置)并将数据集“A”复制到“B”。现在,一旦复制完成,我们需要删除“A”,然后再次创建一个空数据集“A”(在预期的数据位置)并从“B”复制到“A”,然后删除“B”。有没有更好的方法?

答案1

您是否考虑过将命令链接在一起来移动数据然后在 Bash 中删除它?

bq cp datasetname.oldtablename datasetname.newtablename && bq rm -f datasetname.oldtablename

bq rm -f删除时不要求确认。

由于“bq cp”命令返回非 0(false)退出状态,如果由于&&命令之间的(and)运算符而导致复制失败,“bq rm”命令将不会执行。

相关内容