使用带有空字段的数据流进行Bigquery流式插入

时间:2017-10-19 00:34:12

标签: google-bigquery

我们正在使用预定义的数据流作业模板,使用带有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"],我们得到一个引用第三个元素的类似错误。

1 个答案:

答案 0 :(得分:2)

要为NULLABLE字段提供空值,只需省略要插入的行中的字段。对于第二个示例,REPEATED字段(或SQL术语中的ARRAY)不能具有null元素。要为NULLABLE STRING数组建模,您可以使用包含名为value的STRING字段的REPEATED RECORD,或者等同于SQL术语中的ARRAY<STRUCT<value STRING>>