【发布时间】:2016-10-06 06:27:02
【问题描述】:
我正在尝试使用通配符表函数来查询一堆日期分区表。
这个查询有效:
select * from `Mydataset.fact_table_1` where _partitiontime='2016-09-30' limit 10
此查询不起作用:
select * from `Mydataset.fact_table_*` where _partitiontime='2016-09-30' limit 10
不支持此操作吗?
如果不支持从多个日期分区表中读取同一天数据的最佳方法是什么?
【问题讨论】:
-
你能澄清一下你所说的“不起作用”是什么意思吗?您是否收到错误,或者结果是意外的问题?
-
我收到错误 -“无法识别的名称:_partitiontime” .. 如果我不使用通配符或不使用 _partitiontime,则同样有效。我不能在同一个查询中同时使用它们。
-
我认为如果你使用通配符表,你必须过滤
_TABLE_SUFFIX,或者至少这是我对cloud.google.com/bigquery/docs/querying-wildcard-tables的解释。我不确定您是否可以同时使用_TABLE_SUFFIX和_PARTITIONTIME,但我请同事确认。 -
我可以在旧版 sql 中使用 TABLE_QUERY 以及 PARTITIONTIME。因此,如果我想列出所有表的分区 - 从 (TABLE_QUERY(Mydataset, 'table_id CONTAINS "fact_table"')) 组中选择 _partitiontime 作为 pt by 1
-
这里是功能请求的链接,仅供参考:code.google.com/p/google-bigquery/issues/detail?id=728。
标签: google-bigquery google-cloud-platform