流式错误中BigQuery数据吞吐的不一致性

时间:2016-12-19 10:36:52

标签: google-bigquery

您好,

在将数据流式传输到BigQuery时,我们在使用BigQuery Java库发出https://cloud.google.com/bigquery/docs/reference/rest/v2/tabledata/insertAll请求时,所面临的数据存在一些不一致。

部分批次失败,错误代码为: backendError ,而有些请求超时,异常堆栈跟踪:https://gist.github.com/anonymous/18aea1c72f8d22d2ea1792bb2ffd6139

对于失败的批次,我们观察到与摄取数据相关的3种不同行为:

  1. 该批次中的所有记录都未被提取到BigQuery
  2. 只有部分记录无法被摄入BigQuery
  3. 尽管存在抛出错误,
  4. 所有记录都成功地被摄入BigQuery
  5. 我们的问题是:

    1. 我们如何区分这三种情况。
    2. 对于案例2,我们如何处理部分摄取的数据,即应该重试该批次的哪些记录?
    3. 对于案例3,如果所有记录都被成功摄取,为什么会抛出错误?
    4. 提前致谢...

1 个答案:

答案 0 :(得分:0)

为了获得部分成功,错误响应将指示哪些行已插入以及哪些行失败 - 尤其是解析错误。有些情况下,即使插入成功,响应也无法到达客户端,从而导致超时错误。 通常,您可以重试整个批次,如果您使用概述in the data consistency documentation.

的方法,则会对其进行重复数据删除