首页 > 解决方案 > 如何删除大查询分区表?

问题描述

一切都在标题中,我不想一一删除表格。最快的方法是什么?

问候。

标签: google-cloud-platformgoogle-bigquery

解决方案


基本上,您需要删除要删除的分区 BQ 表的所有分区。

假设您已经安装了 gcloud... 下一步:

使用终端(检查/设置)您已登录的 GCP 项目:

$> gcloud config list- 检查您是否使用了正确的 GCP 项目。

$> gcloud config set project <your_project_id>- 设置所需项目

导出变量:

$> export MY_DATASET_ID=dataset_name;

$> export MY_PART_TABLE_NAME=table_name_;- 指定没有分区日期/值的表名,所以这个例子的真实分区表名看起来像 -> “ table_name_20200818

通过运行它来仔细检查您是否要删除正确的表/分区(它只会列出您的表的所有分区):

for table in `bq ls --max_results=10000000 $MY_DATASET_ID | grep TABLE | grep $MY_PART_TABLE_NAME | awk '{print $1}'`; do echo $MY_DATASET_ID.$table; done

检查运行几乎相同的命令后,加上由该迭代参数化的 bq remove 命令实际删除所有分区,最终删除表本身:

for table in `bq ls --max_results=10000000 $MY_DATASET_ID | grep TABLE | grep $MY_PART_TABLE_NAME | awk '{print $1}'`; do echo $MY_DATASET_ID.$table; bq rm -f -t $MY_DATASET_ID.$table; done

推荐阅读