更改表或使用新列选择/复制到新表

wpf*_*abe 7 google-bigquery

我有一个庞大的BQ表,具有复杂的模式(许多重复和记录字段).有没有办法让我在这个表中添加更多列和/或创建一个select,它会将整个表复制到一个新表中,并添加一个(或多个)列?看起来好像复制表需要对重复列进行展平(不好).我需要一些新列的原始表的精确副本.

我找到了一种更新表架构的方法,但它看起来相当有限,因为我似乎只能添加 可空重复的列.我无法添加记录列或删除任何内容.

如果我要修改我的导入JSON数据(和架构),我可以导入任何东西.但是我的导入数据非常庞大且已经非常方便地使用了非规范化的gzip压缩JSON,所以改变它似乎是一项巨大的努力.

Mic*_*tin 5

我想你可以添加RECORD 类型的字段.

可空和重复是指字段的模式,而不是类型.因此,您可以添加Nullable记录或重复记录,但不能添加Required记录.

https://cloud.google.com/bigquery/docs/reference/v2/tables#resource

你是不对的,你不能删除任何东西.


Dan*_*itt 4

如果要使用查询复制表,但不希望展平嵌套和重复字段,则可以将该flattenResults参数设置为 false 以保留输出架构的结构。