BigQuery 日期分区视图
Posted
技术标签:
【中文标题】BigQuery 日期分区视图【英文标题】:BigQuery Date-Partitioned Views 【发布时间】:2017-06-27 13:37:48 【问题描述】:BigQuery 允许您创建日期分区表: https://cloud.google.com/bigquery/docs/creating-partitioned-tables
我希望能够在日期分区表之上创建视图,并且理想情况下仍能获得性能优势。我读过的所有内容都表明这是不可能的?
还有其他人有什么运气吗?
【问题讨论】:
【参考方案1】:定义您的视图以公开分区伪列,如下所示:
SELECT *, EXTRACT(DATE FROM _PARTITIONTIME) AS date
FROM Date partitioned table;
现在,如果您使用date
上的过滤器查询视图,它将限制读取的分区。
【讨论】:
谢谢 Elliott - 如果可能的话,你能给我指点这方面的任何文件吗? 我认为我们没有任何明确的内容。我在公共跟踪器上提交了一个问题,你可以关注它:issuetracker.google.com/issues/63056957。 知道在使用显式分区列时是否可以实现这一点吗? 是的,它应该以相同的方式工作。试试看!单击 UI 中的复选标记以查看在运行视图之前查询将处理多少字节。 @ElliottBrossard,如果您在两个 SELECT 语句之间有一个 UNION ALL 并且都公开了两个不同表的分区伪列,这会起作用吗?换句话说,每个 SELECT 都使用 _PARTITIONTIME 并相应地提取它。【参考方案2】:对于任何尝试使用通配符分区日期表(例如 Firebase 或 Google Analytics)的人:
create view some.view as (
select *, _TABLE_SUFFIX as suffix from
`firebase-public-project.analytics_153293282.events_*`
)
select * from some.view WHERE suffix = '20180814'
【讨论】:
以上是关于BigQuery 日期分区视图的主要内容,如果未能解决你的问题,请参考以下文章