如何删除大查询分区表?

时间:2019-02-15 10:32:17

标签: google-cloud-platform google-bigquery

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

致谢。

2 个答案:

答案 0 :(得分:1)

  

删除时间分区表和所有   其中的分区与删除标准的过程相同   桌子。

因此,如果删除分区表而不指定分区,它将删除所有表。您不必一一删除。

DROP TABLE <tablename>

答案 1 :(得分:1)

基本上,您需要删除要删除的已分区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