【问题标题】:Open Date Frame for BigQuery View (StandardSQL)BigQuery 视图的打开日期框架 (StandardSQL)
【发布时间】:2018-09-18 10:12:14
【问题描述】:

我正在尝试使用 StandardSQL 创建一个视图,该视图会在您每次打开时自动获取最新数据(BigQuery 会创建一个文件,其中包含每天的流量数据,日期在扩展名中)。

我正在使用类似的东西

FROM `whatever.ga_sessions_201*` as GA WHERE _TABLE_SUFFIX BETWEEN '70101' AND '81231'

尽管这在我想正常运行查询时有效,但在我尝试使用它创建视图时却无效。我想我可以使用计划查询,但想知道是否有任何方法可以构建具有开放日期框架的视图(就像视图在 Athena 上工作,如果文件正确上传到您指向的 S3 存储桶)。

提前致谢!

【问题讨论】:

  • “当我尝试用它创建视图时它没有” - 你得到什么错误?另外,看看这个:stackoverflow.com/questions/28422504/…
  • 这是错误:无法保存视图。坏表引用“whatever.ga_sessions_201*”;标准 SQL 视图中的表引用需要明确的项目 ID。
  • 你给我的链接似乎是针对表格的,我创建这样的表格没有问题,但不是针对视图?
  • 对于视图,我认为您也需要项目名称。例如。 projectname.dataset.table
  • @Bobbylank 是的,它有效。谢谢!!

标签: google-bigquery bigquery-standard-sql


【解决方案1】:

你可以这样做:

WITH CTE AS
(SELECT max(_TABLE_SUFFIX) tableSuffix
FROM `projectname.dataset.table_*`)

SELECT *
FROM `projectname.dataset.table_*`
join CTE ON _table_suffix = tableSuffix

如果有很多桌子可能会很贵?

使用 WHERE 语句并从 current_date 计算您需要的日期可能会更好,但我很欣赏 GA 表并不总是在设定的时间到达。

【讨论】:

  • 问题不在于我用 _table_suffix 硬编码时间段的开始和结束,而是 FROM 'whatever.ga_sessions_201*' 末尾有一个 *
猜你喜欢
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多