BigQuery通配符架构推断会清除有效的STRUCT

时间:2018-07-16 11:13:38

标签: google-cloud-platform google-bigquery

给出下面的表table_1table_2

CREATE TABLE dataset.table_1(
  timestamp_ TIMESTAMP,
  dimension1 STRUCT< dimension2 STRUCT< field1>>>
)

CREATE TABLE dataset.table_2(
  timestamp_ TIMESTAMP,
  dimension1 STRUCT< dimension2 STRUCT< dimension3 STRUCT<field1>>>
)

当我在下面执行以下通配符搜索时,对于所有结构,返回的架构将table_1中的架构完全替换为table_2。如果字段不是结构,则将附加所有新字段。这是预期的行为吗?模式推论是否也应该通过suffix而不是*在匹配的表中发生?

SELECT *
FROM `project.dataset.table_*` 
WHERE _TABLE_SUFFIX = '1'

1 个答案:

答案 0 :(得分:1)

从t he documentation起:

  

BigQuery使用与通配符匹配的最新创建表的模式作为通配符表的模式。

用不同的方式表示,参考模式来自与通配符匹配的最新表,_TABLE_SUFFIX伪列上的过滤器与确定模式无关。