将表中的列类型从布尔更新为字符串

时间:2016-02-07 08:53:55

标签: google-bigquery

我想在big-query中将类型为Boolean的空列更新为string。 如何在不覆盖表格的情况下执行此操作并加载所有数据?

谢谢!

1 个答案:

答案 0 :(得分:5)

您只能在表格末尾添加新字段。在旧列上,您可以选择将所需更改为可空。所以,只有当你添加一个新字段,或者你说完全覆盖表格时,你想要的是不可能的。

有两个表操作UpdatePatch

您需要使用更新命令将新列添加到架构中。

重要的附注:

  1. 顺序很重要。如果更改排序,它将看起来像一个不兼容的架构。
  2. 您只能在表格末尾添加新字段。在旧列上,您可以选择将所需更改为可为空。
  3. 您无法向现有架构添加必填字段。
  4. 您无法删除旧字段,一旦指定了表格的架构,您就无法在不先删除与其关联的所有数据的情况下进行更改。如果要更改表的模式,则必须指定WRITE_TRUNCATE的writeDisposition。有关更多信息,请参阅作业资源。
  5. Here is an example卷曲会话,它将字段添加到架构中。适应Java应该相对容易。它使用来自here

    的auth.py.

    使用Table.Update()时,必须再次包含完整的表架构。如果您未提供完全匹配的架构,则可以获得:Provided Schema does not match Table。例如,我没有注意细节,在我的一个更新电话中,我没有包含像created这样的旧字段,但它失败了。