Google bigquery Google BigQuery-如何使用bq命令删除表?

Google bigquery Google BigQuery-如何使用bq命令删除表?,google-bigquery,Google Bigquery,GoogleBigQuery-bq命令允许您创建、加载、查询和更改表 我没有找到任何关于删除表的文档,我很高兴知道如何做 我发现bq工具比为每个命令编写python接口更容易实现 谢谢。找到了: bq rm -f -t data_set.table_name -t用于表格,-f用于强制,-r删除命名数据集中的所有表格 很棒的工具 是否有方法批量删除多个表?–主动学习者 在bash中,您可以执行以下操作: for i in $(bq ls -n 9999 my_dataset | grep ke

GoogleBigQuery-bq命令允许您创建、加载、查询和更改表

我没有找到任何关于删除表的文档,我很高兴知道如何做

我发现bq工具比为每个命令编写python接口更容易实现

谢谢。

找到了:

bq rm -f -t data_set.table_name
-t
用于表格,
-f
用于强制,
-r
删除命名数据集中的所有表格

很棒的工具


是否有方法批量删除多个表?–主动学习者

在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_数据集
    -在我的数据集中最多列出9999个表
  • | grep keyword
    -将上一个命令的结果导入grep,搜索表中有共同点的关键字
  • |awk'{print$1}'
    -将上一个命令的结果导入awk,并仅打印第一列
  • 将所有这些都封装到for循环中
  • do bq rm-ft my_数据集。$i;完成-从数据集中删除每个表
我强烈建议在添加“do bq rm”之前,运行命令列出要删除的表。这样可以确保只删除实际要删除的表

更新: 参数
-ft
现在返回一个错误,只需
-f
即可强制删除,无需提示:

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

我使用命令行
for loop
删除了一个月的表数据,但这取决于表的命名:

对于(01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 17 18 19 20 21 22 23 24 26 27 28 29 30 31)中的%d,请执行bq rm-f-t数据集。tablename_201701%d

您可以使用Python代码(在Jupyter笔记本上)实现相同的目的: 如果要删除完整的数据集: 如果数据集也包含表。我们希望一次性删除包含表的数据集命令为:

!bq rm -f -r serene-boulder-203404:Temp1   # It will remove complete data set along with the tables in it
如果数据集为空,则还可以使用以下命令: 要使用以下命令,请确保已删除该数据集中的所有表,否则将生成错误(数据集仍在使用)


有办法批量删除多个表吗?@activelearner您可以使用
-r。使用-r,删除命名数据集中的所有表
!bq rm -f -r serene-boulder-203404:Temp1   # It will remove complete data set along with the tables in it
#Now remove an empty dataset using bq command from Python
!bq rm -f dataset_id
print("dataset deleted successfully !!!")