我已经成功地使用此link将列附加到BigQuery表。这只是更新架构,但我还要填写新添加的列的字段。有办法吗?
谢谢!
答案 0 :(得分:3)
BigQuery仅附加,因此您无法更新现有行。对于新插入,您可以填充添加的新列。
如果您想要更新以前的数据,您需要将表重新创建为新表,然后您可以在插入时添加所需的数据。
答案 1 :(得分:3)
如果要填写新列,可以使用write disposition" write truncate"来运行执行此操作的查询。例如,如果表mydataset.mytable
包含字段a,b和c,则添加d,并希望填写值" foo"对于没有它的任何行中的d,你可以这样做:
SELECT a,b,c,IFNULL(d, "foo") as d FROM mydataset.mytable
然后,您可以将目标表格设置为mydataset.mytable
,设置'允许大结果',并将写入首选项设置为'覆盖表格'。 (如果您正在使用UI ...如果您直接使用API,则查询作业配置的“查询选项”部分中会有映射。)
请注意,如果您有任何嵌套字段(请说' b'是嵌套的),您可以使用b.*
代替b
选择列表并清除“展平结果”'查询选项中的字段。