无法删除 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 个表。
我有一个包含大约 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 个表。