使用新列将 table 或 select/copy 更改为新的 table

Alter table or select/copy to new table with new columns

我有一个巨大的 BQ table,具有复杂的架构(大量重复和记录字段)。有没有办法让我添加更多列到这个 table and/or 创建一个 select 将 整个 table 复制到添加一个(或多个)列的新列?似乎复制 table 需要对重复的列进行展平(不好)。我需要原始 table 的精确副本以及一些新列。

我找到了 Update Table Schema 的方法,但它看起来相当有限,因为我似乎只能 add nullable重复 列。我无法添加 record 列或删除任何内容。

如果我要修改导入 JSON 数据(和模式),我可以导入任何内容。但是我的导入数据很大,而且已经很方便地以非规范化 gzip 压缩 JSON 进行更改,这似乎是一项巨大的努力。

如果你想使用查询来复制table,但不希望嵌套和重复的字段被展平,你可以将flattenResults parameter设置为false以保留结构你的输出模式。

我认为您可以添加 type RECORD 字段。

可空和重复是指字段的模式,而不是类型。所以可以添加Nullable记录或Repeated记录,但不能添加Required记录。

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

你说得对,你不能删除任何东西。