在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'
但是,我还没有能够找到第二个查询的解决方法,这对于检索最新的分区很有用(尽管使用该信息实际查询最新的分区似乎也被破坏了。请参阅:{ {3}})
答案 0 :(得分:2)
StandardSQL目前不支持使用装饰器获取分区摘要。我们正计划在这个领域开展一些工作,但是当可能的时候我们还没有ETA。现在最快的选择是使用旧SQL在T$__PARTITIONS_SUMMARY__
上运行查询。