在表chrome-ux-report.all.201910
和之前的表格中,我们有一个名为experimental.first_input_delay
. 由于chrome-ux-report.all.201911
相同的数据已重命名为first_input.delay
.
在此更改之前,我使用通配符查询chrome-ux-report.all.*
来聚合所有 YYYYMM 数据,但现在这些查询失败了,因为字段名称不同。我正在寻找可以容纳旧字段名称或新字段名称的修复程序。这是一个简化的示例:
SELECT
COALESCE(first_input.delay.histogram.bin, experimental.first_input_delay.histogram.bin) AS fid
FROM
`chrome-ux-report.all.*`
first_input_delay
这会导致结构架构中不存在的错误experimental
:
错误:字段名称 first_input_delay 不存在于 STRUCT<time_to_first_byte STRUCT<histogram STRUCT<bin ARRAY<STRUCT<start INT64, end INT64, density FLOAT64>>>>>` at [2:58]
当然,对于通配符涵盖的某些表,该字段存在于该结构中,但其他表不存在。验证器似乎只查看最近的表。
所以我的问题是是否可以使用类似的东西COALESCE
来容纳跨表重命名的字段?我知道架构使我们更难做到这一点,更好的解决方案是使用单个分区表,但我想知道这是否可以根据我们当前的设置解决。