我们使用预定义的 Dataflow 作业模板将 Bigquery 流式插入与 Dataflow 结合使用。
当我将其与可为空和重复的字段一起使用时,我遇到了一些特殊情况。
例如,使用模式
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"]
我们在引用第三个元素时遇到类似的错误。
要为行提供 NULLABLE 字段的空值,只需从要插入的行中省略该字段即可。对于第二个示例,REPEATED 字段(或 SQL 术语中的 ARRAY)不能有 null 元素。要对 NULLABLE STRING 数组进行建模,您可以使用包含名为 的 STRING 字段的 REPEATED RECORDvalue
,例如,或等效地ARRAY<STRUCT<value STRING>>
在 SQL 术语中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)