给定表,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
。如果字段不是structs,则会追加所有新字段。这是预期的行为吗?模式推理不应该通过suffix
而不仅仅是*
在匹配的表中发生吗?
SELECT *
FROM `project.dataset.table_*`
WHERE _TABLE_SUFFIX = '1'
来自文档:
BigQuery使用最近创建的与通配符匹配的表的架构作为通配符表的架构。
换句话说,引用模式来自与通配符匹配的最新表,而_TABLE_SUFFIX
伪列上的筛选器与确定模式无关。