是否可以使用 '$' 装饰器访问标准 SQL 中的 BigQuery 分区?



在Google BigQuery中,我试图在使用标准SQL查询分区表时使用$装饰符。我认为这应该允许我访问分区和表元数据,因为它在遗留SQL中所做的,但它似乎在标准SQL中不起作用。

以下两个查询都返回Error: Table "dataset.partitioned_table$___" cannot include decorator:

1)直接访问分区:

#StandardSQL
SELECT a, b, c
FROM `mydataset.partitioned_table$20161115`

2)访问表元数据:

#StandardSQL
SELECT partition_id
FROM `mydataset.partitioned_table$__PARTITIONS_SUMMARY__`;
对于第一个查询,显而易见的解决方法是使用_PARTITIONTIME伪列:
#StandardSQL
SELECT a, b, c
FROM mydataset.partitioned_table
WHERE _PARTITIONTIME = '2016-11-15'

然而,我还没能找到第二个查询的解决方案,这对于检索最近的分区很有用(尽管使用该信息实际查询最近的分区似乎也坏了)。参考:如何在BigQuery表中选择最新分区

在StandardSQL中目前不支持使用修饰符获取分区摘要。我们正在计划这方面的一些工作,但我们目前还没有一个可能可用的预计时间。现在最快的选择是使用遗留SQL在T$__PARTITIONS_SUMMARY__上运行查询。

相关内容

  • 没有找到相关文章

最新更新