如何在BigQuery中向嵌套REPEATED RECORD结构插入数据并解决报错
BigQuery 嵌套重复字段插入语法修正方案
目标表字段结构
Field Type Mode id STRING NULLABLE policies RECORD REPEATED s RECORD NULLABLE something STRING NULLABLE riskTypes RECORD REPEATED code STRING NULLABLE
错误原因
现有写法的问题在于构造riskTypes对应的嵌套数组时,BigQuery 无法自动识别数组内元素为struct<code STRING>类型,因此在数组起始方括号位置抛出语法错误。
修正后可运行代码
UPDATE `tablename` SET policies = ARRAY_CONCAT( policies, [ struct( struct( "example something" AS something, [struct("example description" AS code)] AS riskTypes ) AS s ) ] ) WHERE id = 'Moose';
语法说明
- 所有嵌套结构体都通过
AS关键字显式指定字段名,无需提前声明结构体结构,BigQuery 会自动匹配表字段的类型定义 riskTypes对应的数组内每个元素都显式用struct()包裹,同时指定字段名code,完全匹配表中riskTypes下的字段结构
内容的提问来源于stack exchange,提问作者Dave Chambers
相关产品推荐
相关产品推荐

