BigQuery - TABLE_DATE_RANGE()函数问题

时间:2015-04-13 21:23:04

标签: google-bigquery

背景

我在BigQuery上有两个数据集。

数据集1的名称为“12345678”,其表格的名称为“ga_sessions_yyyymmdd”。例如,表格名称类似于ga_sessions_20140721,ga_sessions_20150413等。

数据集2被命名为“DestinationTables”。表名的格式为yyyymmdd。例如,20140721,20150413等。

问题:

使用TABLE_DATE_RANGE(),我在数据集1 上运行以下查询:

SELECT 
  [fullVisitorId] AS [fullVisitorId]
FROM TABLE_DATE_RANGE([12345678.ga_sessions_],TIMESTAMP('2014-07-21'),TIMESTAMP('2014-07-25'));

此查询已成功运行。

我现在在数据集2

上运行类似的查询
SELECT 
  [fullVisitorId] AS [fullVisitorId]
FROM TABLE_DATE_RANGE([DestinationTables.],TIMESTAMP('2014-07-21'),TIMESTAMP('2014-07-25'));

但是,这会错误地显示消息:

  

错误:无法解析表:DestinationTables

为什么会这样?任何有关这方面的见解将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:1)

在第一个示例中,标识数据集和表前缀的语法是正确的:

  

[12345678.ga_sessions _]

正如the docs for this function中所解释的那样,它将扩展到涵盖格式的表格(数据集12345678):

  

ga_sessions_yyyymmdd

但是,在第二个示例中,标识符仅在一个点处停止,它应继续标识表前缀。我认为问题在于你没有前缀,所以字符串末尾的裸点让解释器感到困惑。

您可能需要更改表格以使用某种前缀,即使它只是一个下划线,这样您就可以在调用TABLE_DATE_RANGE时正确指定前缀