使用通配符删除BigQuery表

时间:2016-04-05 17:25:27

标签: google-bigquery

有没有办法用命令行从通配符中删除表?假设我有一组我要删除的日期表,使用相同的前缀 - 我可以一次性删除它们,而无需编写自己的shell脚本吗?

3 个答案:

答案 0 :(得分:6)

不是最好的,但是您可以通过以下方式生成查询以删除表:

select concat("drop table ",table_schema,".",   table_name, ";" )
from <insert_your_dataset_name>.INFORMATION_SCHEMA.TABLES
where table_name like "INSERT_YOUR_TABLE_NAME_%"
order by table_name desc

运行后,单击“保存结果”,从下拉列表中选择“复制到剪贴板”。

答案 1 :(得分:3)

不,要编写脚本。您可以一次删除整个数据集,但无法使用通配符删除数据集中的表的子集。

答案 2 :(得分:0)

在@henry回答之后,我无法在sql中执行此操作(不知道为什么),因此我修改了concat来创建一堆将所有内容一起输入到shell的行

select concat("bq rm -f -t ",table_schema,".",   table_name, ";" )
from <insert_your_dataset_name>.INFORMATION_SCHEMA.TABLES
where table_name like "INSERT_YOUR_TABLE_NAME_%"
order by table_name desc

然后只是“保存结果” =>“复制到剪贴板” =>打开BQ Shell =>粘贴!