我们正在使用预定义的数据流作业模板,使用带有Dataflow的Bigquery流式插入。
在使用可空和重复的字段时,我遇到了一些特殊情况。
例如,使用架构
name STRING, NULLABLE
尝试插入{name: null}
因错误而失败:
generic::invalid_argument: This field is not a record.","location":"name","message":"This field is not a record."
这不是什么大问题,因为它很容易简单地删除空字段,对于空数组也是如此。
但是,现在如果我们的架构是:
name STRING, REPEATED
我们要插入["a", "b", null, "c"]
,我们得到一个引用第三个元素的类似错误。
答案 0 :(得分:2)
要为NULLABLE字段提供空值,只需省略要插入的行中的字段。对于第二个示例,REPEATED字段(或SQL术语中的ARRAY)不能具有null元素。要为NULLABLE STRING数组建模,您可以使用包含名为value
的STRING字段的REPEATED RECORD,或者等同于SQL术语中的ARRAY<STRUCT<value STRING>>
。