Bigquery 使用 Union All 和通配符删除查询

Posted

技术标签:

【中文标题】Bigquery 使用 Union All 和通配符删除查询【英文标题】:Bigquery Delete Query with Union All & Wildcards 【发布时间】:2019-09-24 10:10:50 【问题描述】:

想从 bigquery 中的多个表中删除数据。

下面的删除语法正在删除没有联合全部或通配符的单个表

delete  FROM `abc.analytics_151541058.events_20190201` WHERE event_date='20190201'

以下使用联合删除查询全部无效

delete  FROM `abc.analytics_151541058.events_20190201` WHERE event_date='20190201'
UNION ALL 
delete  FROM `abc.analytics_151541058.events_20190201` WHERE event_date='20190202'

以下使用通配符的删除查询无效

delete  FROM `abc.analytics_151541058.events_*`,  
WHERE _TABLE_SUFFIX BETWEEN '20190201' AND '20190202'

请。帮助

【问题讨论】:

BigQuery 不支持基于通配符表的 DML。 是否需要在 bigquery 中删除多个表。请。帮助 只有当你设置一段代码来做它。 你能请。帮助我如何实现这一目标。谢谢 【参考方案1】:

BigQuery scripting 现在处于测试阶段。

您现在可以简单地堆叠多个 DELETE 语句,例如:

delete  FROM `abc.analytics_151541058.events_20190201` WHERE event_date='20190201'
delete  FROM `abc.analytics_151541058.events_20190202` WHERE event_date='20190202'

【讨论】:

以上是关于Bigquery 使用 Union All 和通配符删除查询的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 中的 UNION ALL 或 CONCATENATE 数据集

Bigquery:根据不同的 date_trunc 多次运行查询并将结果合并,而不是多个 UNION ALL

是否可以在 Union All BigQuery SQL 中让 where 子句引用另一个 where 子句?

UNION ALL 参数化查询

如何在没有 UNION ALL 的情况下查询 redshift 中的许多表?

BigQuery 通配符表 - 有啥限制?