在 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 中以字符串格式将工作日月份转换为日期?