BigQuery 中 _PARTITIONDATE 与 _PARTITIONTIME 伪列的使用

Tob*_*obi 2 google-bigquery

在我发现的官方最佳实践中:

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

我开始使用_PARTITIONDATE伪列了很多,因为我觉得它更容易编写查询这样,在对比的_PARTITIONTIME列和应用TIMESTAMP()功能到我的约会,像显示在这个例子

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

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

是有利于官方的方式_PARTITIONTIME_PARTTIONDATE

Ell*_*ard 5

_PARTITIONDATE没有记录,因为它与已发布的功能不对应。_PARTITIONTIME除非我们在发行说明中宣布新功能,否则您应该使用。

WHERE _PARTITIONTIME = TIMESTAMP('2016-03-28')
Run Code Online (Sandbox Code Playgroud)

完全一样

WHERE _PARTITIONTIME = '2016-03-28'
Run Code Online (Sandbox Code Playgroud)

_PARTITIONTIME列是一个时间戳,因此后一个示例右侧的字符串文字被强制转换为时间戳。在语法高亮方面,当前的 UI 在识别内置函数方面存在一些限制,但预计即将进行的 UI 更新会解决这个问题。

  • 虽然我在发行说明中找不到它,但“_PARTITIONDATE”现已记录在案,因此应该可以安全使用。 (2认同)