2017-02-19 1 views
0

Ich streame Daten für BigQuery für das vergangene Jahr oder so von einem Service in Azure in C# geschrieben und vor kurzem begonnen, zunehmende Menge zu erhalten die folgenden Fehler (die meisten der Anfragen erfolgreich):GoogleApiException: Google.Apis.Requests.RequestError Backend Fehler [500] beim Streamen zu BigQuery

Nachricht: [GoogleApiException: Google.Apis.Requests.RequestError Ein interne Fehler aufgetreten, und die Anforderung kann nicht abgeschlossen werden. [500] Fehler [ Nachricht [ist ein interner Fehler aufgetreten ist, und die Anforderung kann nicht abgeschlossen werden] Standort [-.] Grund [InternalError] Domain [global]]]

Dies ist der Code ich benutze in meinem Dienst:

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(); 
     } 

Antwort

1

Genau wie jede andere Cloud-Service, hat BigQuery nicht 100% Uptime SLA bieten (es tatsächlich 99,9% ist), so ungewöhnlich ist es nicht vorübergehende Fehler wie diese zu begegnen. Wir erhalten sie auch häufig in unseren Anwendungen.

Sie müssen exponentielle Backoff- und Retry-Logik in Ihre Anwendung (en) erstellen, um solche Fehler zu behandeln. Eine gute Möglichkeit ist das Verwenden einer Warteschlange zum Streamen Ihrer Daten nach BigQuery. Das ist was wir machen und es funktioniert sehr gut für uns.

Einige weitere Informationen:

  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
+0

Exponential Backoff ist schön zu haben, aber nicht zwingend in diesem speziellen Dienst, weil es mehr ist ein Überwachungsdienst. Dieser Service ist seit ungefähr einem Jahr in Betrieb und wir haben in den letzten zwei Monaten damit begonnen, diese Fehler zu bekommen, und deren Anzahl steigt. – orso

+0

Sie könnten ein Ticket über Ihren Google-Support-Kanal erstellen, aber ich bin mir ziemlich sicher, dass sie Ihnen die gleiche Art von Antwort geben. Sie haben uns das gesagt, als wir es getan haben. –

+0

Danke Graham! Ich werde es versuchen. – orso