将列及其数据附加到 BigQuery table

Append a column and its data to a BigQuery table

我已经成功地使用此 link 将列附加到 BigQuery table。这只会更新架构,但我还想填写新添加的列的字段。有办法吗?

谢谢!

BigQuery 只能追加,因此您无法更新现有行。对于新插入,您可以填充您添加的新列。

如果您想更新以前的数据,您需要将 table 重新创建为一个新数据,然后您就可以在插入时添加您想要的数据。

如果您想填写新列,您可以 运行 执行此操作的查询,写入处置 "write truncate"。例如,如果您有 table mydataset.mytable 字段 a、b 和 c,则添加 d,并希望在任何行中为 d 填写值 "foo"没有,你可以这样做:

SELECT a,b,c,IFNULL(d, "foo") as d FROM mydataset.mytable

然后您可以将目标 table 设置为 mydataset.mytable,设置 'allow large results',并将写入首选项设置为 'Overwrite Table'。 (这是如果您使用 UI... 如果您直接使用 API,则查询作业配置的查询选项部分有映射。)

请注意,如果您有任何嵌套字段(假设 'b' 是嵌套的),您将在 select 列表中使用 b.* 而不是 b并清除查询选项中的 'flatten results' 字段。