0

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

我每天都将数据附加到一个表中,并且保持无重复非常重要。我们正在使用 HTTP Rest API

4

1 回答 1

3

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

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

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

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

于 2013-09-03T22:20:52.900 回答