BigQuery日期分区视图

tom*_*uff 15 sql google-bigquery

BigQuery允许您创建日期分区表:https: //cloud.google.com/bigquery/docs/creating-partitioned-tables

我希望能够在日期分区表之上创建视图,理想情况下仍然可以获得性能优势.我读过的所有内容都表明这是不可能的?

有没有人有运气呢?

Ell*_*ard 13

定义视图以公开分区伪列,如下所示:

SELECT *, EXTRACT(DATE FROM _PARTITIONTIME) AS date
FROM Date partitioned table;
Run Code Online (Sandbox Code Playgroud)

现在,如果使用过滤器查询视图date,它将限制读取的分区.

  • 知道在使用显式分区列时是否可以实现这一点吗? (2认同)
  • @ElliottBrossard,如果您在两个都公开两个不同表的分区伪列的 SELECT 语句之间有一个 UNION ALL,这会起作用吗?换句话说,每个 SELECT 使用 _PARTITIONTIME 并且您相应地提取它。 (2认同)

小智 5

对于尝试使用通配符分区日期表(例如 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'
Run Code Online (Sandbox Code Playgroud)