BigQuery通配符模式推断清除有效的STRUCT



给定表,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。如果字段不是structs,则会追加所有新字段。这是预期的行为吗?模式推理不应该通过suffix而不仅仅是*在匹配的表中发生吗?

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

来自文档:

BigQuery使用最近创建的与通配符匹配的表的架构作为通配符表的架构。

换句话说,引用模式来自与通配符匹配的最新表,而_TABLE_SUFFIX伪列上的筛选器与确定模式无关。

最新更新