我在过去一年左右从使用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();
}
答案 0 :(得分:1)
就像任何其他云服务一样,BigQuery没有提供100%的正常运行时间SLA(实际上是99.9%),所以遇到像这样的瞬态错误并不罕见。我们也经常在我们的申请中收到它们。
您需要在应用程序中构建指数退避和重试逻辑以处理此类错误。这样做的一个好方法是使用队列将数据流式传输到BigQuery。这就是我们所做的,它对我们来说非常有效。
更多信息: