jfk*_*k83 3 sql google-bigquery google-cloud-platform
我正在查看文档,但还没有找到使用通配符删除多个表的方法。
我正在尝试做这样的事情,但是没有用:
DROP TABLE
TABLE_DATE_RANGE([clients.sessions_],
TIMESTAMP('2017-01-01'),
TIMESTAMP('2017-05-31'))
Run Code Online (Sandbox Code Playgroud)
删除表[表名];bigquery 现在支持。所以这里是一个纯粹的 SQL/bigquery UI 解决方案。
select concat("drop table ",table_schema,".", table_name, ";" )
from <dataset-name>.INFORMATION_SCHEMA.TABLES
where table_name like "partial_table_name%"
order by table_name desc
Run Code Online (Sandbox Code Playgroud)
审核您是否删除了正确的表。复制并粘贴回 bigquery 以删除列出的表。
对于数据集stats和表格(如daily_table_20181017保持日期约定),我将使用简单的脚本和gcloud命令行工具:
for table in `bq ls --max_results=10000000 stats |grep TABLE |grep daily_table |awk '{print $1}'`; do echo stats.$table; bq rm -f -t stats.$table; done
Run Code Online (Sandbox Code Playgroud)
我只是使用 python 循环这个问题并使用 Graham 示例解决它:
from subprocess import call
return_code = call('bq rm -f -t dataset.' + table_name +'_'+ period + '', shell=True)
Run Code Online (Sandbox Code Playgroud)