2015-05-04 104 views

回答

15

发现:

BQ RM -f -t data_set.table_name

-t为表 -f为力

伟大的工具。

+5

有没有一种方法来批量删除多个表? – activelearner

+0

@activelearner你可以使用'-r。使用-r,删除指定数据集中的所有表 – prabeesh

4

有没有办法批量删除多个表? - activelearner

在bash,你可以这样做:

for i in $(bq ls -n 9999 my_dataset | grep keyword | awk '{print $1}'); do bq rm -ft my_dataset.$i; done; 

说明:

  • bq ls -n 9999 my_dataset - 名单多达9999个表在我的数据集
  • | grep keyword - 管结果将以前的命令转换为grep,搜索一张表格有共同的关键字
  • | awk '{print $1}' - 管道上一个命令的结果为AWK并打印第一列
  • 总结所有进入一个for循环
  • do bq rm -ft my_dataset.$i; done; - 从数据集中删除的每个表

我会强烈建议运行在添加'do bq rm'之前列出您想要删除的表的命令。通过这种方式,您可以确保只删除实际想要删除的表。

0

我使用的命令行for loop删除月表的数据,但是这依赖于你的餐桌命名:

for %d in (01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) DO bq rm -f -t dataset.tablename_201701%d