在BigQuery

时间:2017-09-12 11:20:13

标签: google-bigquery

在官方最佳做法中我found

  

按日期对表进行分区并查询相关分区;例如,WHERE _PARTITIONDATE =" 2017-01-01"仅扫描2017年1月1日的分区

我开始使用_PARTITIONDATE伪列非常多,因为我发现以这种方式编写查询更容易,与_PARTITIONTIME列和应用TIMESTAMP()函数相反在我的日期,如example所示:

  

在哪里_PARTITIONTIME = TIMESTAMP(' 2016-03-28')

我想知道是否应继续使用_PARTITIONDATE - 因为我无法找到更多文档。此外,与_PARTITIONTIME相反,它不会在基于Web的BigQuery SQL编辑器中突出显示语法。

_PARTITIONTIME优先于_PARTTIONDATE的官方方式吗?

1 个答案:

答案 0 :(得分:3)

_PARTITIONDATE未被记录,因为它与已发布的功能不对应。除非我们在release notes中宣布新功能,否则您应该使用_PARTITIONTIME

WHERE _PARTITIONTIME = TIMESTAMP('2016-03-28')

完全相同
WHERE _PARTITIONTIME = '2016-03-28'

_PARTITIONTIME列是时间戳,因此后一个示例右侧的字符串文字被强制为时间戳。在语法高亮方面,当前的UI在识别内置函数方面存在一些局限性,但即将推出的UI刷新有望解决这个问题。