如何在 BigQuery 中使用 table 通配符进行拼合?

How to flatten with a table wildcard in BigQuery?

我们最近切换到标准设置,其中 table 按月标记 (foo_2015_05),采用包含重复字段的通用格式.最初,当我基于一个大 table 创建视图时,它迫使我在重复字段上展平 table。

在尝试更新我的视图以说明每月 table 时,我似乎无法同时拥有 table 通配符和展平。

SELECT blah
FROM FLATTEN(TABLE_QUERY(dataset, "tableid CONTAINS 'foo_'"), repeated_field)

给我以下错误: Table 无法解析名称:缺少数据集名称

我错过了什么吗?或者有解决方法吗?

我认为问题是 FLATTEN 不能工作表的并集,如果 TABLE_QUERY 评估为多个表,TABLE_QUERY 最终会被重写。解决方法是将 TABLE_QUERY 包装在子选择中,使 FLATTEN 在单个源(子选择)上运行。

SELECT blah
FROM FLATTEN(
  (SELECT * FROM TABLE_QUERY(dataset, "tableid CONTAINS 'foo_'")), 
  repeated_field)