无法删除 BigQuery 数据集 + 表

Can't delete BigQuery dataset + tables

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

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

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

很晚了,但我是这样做的:

先安装 jq 和 gnu parallel。将 PROJECT_ID 替换为您的项目 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 个表。