在 Bigquery 中以标准 SQL 格式编写遗留视图

Posted

技术标签:

【中文标题】在 Bigquery 中以标准 SQL 格式编写遗留视图【英文标题】:writing legacy views in Standard SQL format in Bigquery 【发布时间】:2017-11-29 22:50:07 【问题描述】:

我昨天问过this question,我正在尝试用标准SQL 编写我的旧视图。

我的桌子是

FROM [myProject.Mydataset.ga_sessions_20171129]

ga_sessions_20171129 是我的表 id,其名称的最后一部分显示表更新的最后日期,因此第二天的下一个表将是 20171130

我们每天都用这段代码更新表格

FROM `project.dataset.ga_sessions_*` 
WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', CURRENT_DATE())

但它不起作用并给了我这个错误:

未能保存视图。不能通过前缀查询视图。部分的 匹配的视图列表是:...

后来我们想是因为我们有一些像ga_sessions_S_20171129这样的表,造成了一些混乱,于是我们尝试了这个

FROM `project.dataset.ga_sessions_20*` where _TABLE_SUFFIX = FORMAT_DATE('%y%m%d', CURRENT_DATE())

还是不行。有人知道吗?

【问题讨论】:

【参考方案1】:

我看到的唯一解释是,在同一个数据集中,您的视图具有与其他表相同的前缀 - project.dataset.ga_sessions_* 但通配符表不支持视图。如果通配符表与数据集中的任何视图匹配,则查询返回错误

还有几个limitations 用于通配符表

【讨论】:

以上是关于在 Bigquery 中以标准 SQL 格式编写遗留视图的主要内容,如果未能解决你的问题,请参考以下文章

在 BigQuery/标准 SQL 中将 DATE 转换为 TIMESTAMP

如何在 BigQuery 中以字符串格式将工作日月份转换为日期?

如何在bigquery中以最少的数据库命中执行多个sql

BigQuery:标准 SQL 和 PERCENTILE_CONT() 函数

BigQuery 中的查询抽样问题(标准 SQL)

标准 SQL (BigQuery) 中整数 YYYYMMDD 的日期