加载一部分JSON文件后,当bigquery上传作业失败时会发生什么?

时间:2013-09-03 19:01:11

标签: google-bigquery

正如标题所提到的,当我启动一个bigquery上传作业时会发生什么,比方说,在JSON文件中加载50%的行后,作业失败了。 bigquery是否会回滚加载作业的所有内容,还是我加载了50%的数据?

我每天将数据附加到单个表中并保持重复是非常重要的。我们正在使用HTTP Rest API

1 个答案:

答案 0 :(得分:3)

BigQuery以原子方式附加数据。如果加载失败,您将永远不会获得表中的一半数据。如果作业成功完成,则所有数据将立即显示。

您可以使用两个额外的技巧来防止重复:

  1. 指定加载作业的作业ID。想象一下,你通过启动工作中途拔出网线...你怎么知道它是否成功了?如果作业创建请求失败,则指定作业ID可让您稍后查找作业。

  2. 对临时表执行加载,并将WRITE_TRUNCATE指定为writeDisposition。这意味着您可以在映射到临时表的同时运行导入作业,如果您不知道作业是否成功,只需运行另一个作业,它将覆盖数据。成功完成加载作业后,运行带有writeDisposition到WRITE_APPEND的表复制作业,以将新数据附加到主表。