给出下面的表table_1
和table_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'
答案 0 :(得分:1)
从t he documentation起:
BigQuery使用与通配符匹配的最新创建表的模式作为通配符表的模式。
用不同的方式表示,参考模式来自与通配符匹配的最新表,_TABLE_SUFFIX
伪列上的过滤器与确定模式无关。