无法删除BigQuery数据集+表

时间:2015-04-10 14:50:08

标签: google-bigquery

我有一个大约有200k个表的数据集,我正在尝试删除。我一直在使用命令行工具来运行bq rm -r -f datasetID,但它在24小时内只删除了大约4%。 (我只能通过登录Web UI并查看剩下的表来猜测数量)。有没有更快的方法来完成它?

2 个答案:

答案 0 :(得分:1)

很晚,但这就是我做的方式:

首先安装jq和gnu parallel。用项目的ID替换PROJECT_ID。

bq ls --project_id PROJECT_ID --max_results=100000 --format=prettyjson | jq '.[] | .id' | parallel --bar -P 10 bq --project_id PROJECT_ID rm -r -f -d

您可能需要调整-P参数的值以获得更好的删除率。

警告:最终会删除项目中的所有表格和数据集。您可以使用echo执行空运行,分析输出,然后运行上面的命令:

bq ls --project_id PROJECT_ID --max_results=100000 --format=prettyjson | jq '.[] | .id' | parallel --bar -P 10 echo bq --project_id PROJECT_ID rm -r -f -d

在15分钟内删除了9K数据集中的100K表。

答案 1 :(得分:0)

这样做的一种方法是遍历表并单独删除它们(可能并行)。或者更快的方法是在表格上设置到期时间,这是将来很短的时间。

这不是一个高度优化的路径,因为我们通常不会让想要一次删除多个表的用户。