如何在BigQuery

时间:2017-01-23 18:24:48

标签: google-bigquery

我刚刚阅读BigQuery上的分区表,无法找出最佳实践部分。我尝试运行以下

#standardSQL
SELECT *
FROM `myproject.affiliate.log_20170101`
WHERE _PARTITIONTIME BETWEEN TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 * 24 HOUR),DAY)
AND TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(),DAY);

基于此documentation link

但是我收到了这个错误,

Error: Unrecognized name: _PARTITION_TIME;

我做错了什么?这与通配符查询有何不同?

1 个答案:

答案 0 :(得分:4)

  

我做错了什么?

从下面一行 - 我假设你实际上并没有使用分区表,而是使用分片表

FROM `myproject.affiliate.log_20170101`

要处理BigQuery Standard SQL中的分片表,您应该使用_TABLE_SUFFIX

  

这与通配符查询有何不同?

Sharded table是一组名为tablename_YYYYMMDD的每日表,可以使用Legacy SQL中的Table wildcard functions或标准SQL中的_TABLE_SUFFIX查询 Partitioned table是按日内部分区的音调表