【问题标题】:Can't delete BigQuery dataset + tables无法删除 BigQuery 数据集 + 表
【发布时间】:2015-04-10 14:50:07
【问题描述】:

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

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

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

    首先安装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 表。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-09-27
        • 1970-01-01
        • 1970-01-01
        • 2018-08-18
        • 1970-01-01
        • 2017-05-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-30
        相关资源
        最近更新 更多