GoogleApiException:Google.Apis.Requests.RequestError后端错误[500],当流式传输到BigQuery时

时间:2017-02-19 16:12:15

标签: google-bigquery

我在过去一年左右从使用c#编写的Azure服务向BigQuery传输数据,并且最近开始出现越来越多的以下错误(大多数请求成功):

  

消息:[GoogleApiException:Google.Apis.Requests.RequestError An   发生内部错误,无法完成请求。 [500]   错误[       消息[发生内部错误,无法完成请求。]位置[ - ]原因[internalError]域[全局]]]

这是我在我的服务中使用的代码:

public async Task<TableDataInsertAllResponse> Update(List<TableDataInsertAllRequest.RowsData> rows, string tableSuffix)
        {
            var request = new TableDataInsertAllRequest {Rows = rows, TemplateSuffix = tableSuffix};
            var insertRequest = mBigqueryService.Tabledata.InsertAll(request, ProjectId, mDatasetId, mTableId);

            return await insertRequest.ExecuteAsync();
        }

1 个答案:

答案 0 :(得分:1)

就像任何其他云服务一样,BigQuery没有提供100%的正常运行时间SLA(实际上是99.9%),所以遇到像这样的瞬态错误并不罕见。我们也经常在我们的申请中收到它们。

您需要在应用程序中构建指数退避和重试逻辑以处理此类错误。这样做的一个好方法是使用队列将数据流式传输到BigQuery。这就是我们所做的,它对我们来说非常有效。

更多信息:

  1. https://cloud.google.com/bigquery/troubleshooting-errors
  2. https://cloud.google.com/bigquery/loading-data-post-request#exp-backoff
  3. https://cloud.google.com/bigquery/streaming-data-into-bigquery
  4. https://cloud.google.com/bigquery/sla