正如标题所提到的,当我启动一个bigquery上传作业时会发生什么,比方说,在JSON文件中加载50%的行后,作业失败了。 bigquery是否会回滚加载作业的所有内容,还是我加载了50%的数据?
我每天将数据附加到单个表中并保持重复是非常重要的。我们正在使用HTTP Rest API
答案 0 :(得分:3)
BigQuery以原子方式附加数据。如果加载失败,您将永远不会获得表中的一半数据。如果作业成功完成,则所有数据将立即显示。
您可以使用两个额外的技巧来防止重复:
指定加载作业的作业ID。想象一下,你通过启动工作中途拔出网线...你怎么知道它是否成功了?如果作业创建请求失败,则指定作业ID可让您稍后查找作业。
对临时表执行加载,并将WRITE_TRUNCATE指定为writeDisposition。这意味着您可以在映射到临时表的同时运行导入作业,如果您不知道作业是否成功,只需运行另一个作业,它将覆盖数据。成功完成加载作业后,运行带有writeDisposition到WRITE_APPEND的表复制作业,以将新数据附加到主表。