2016-08-01 6 views
1

Die BigQuery documentation für die Abfrage von Daten mit asynchronen Jobs mit der Java-API besagt, dass wir nicht für das Ergebnis abfragen müssen, wenn wir jobs.getQueryResults(jobId) ohne Timeout aufrufen. Gemäß der Jobdokumentation here gibt es jedoch ein Standard-Zeitlimit von 10 Sekunden.Wie erstellt man einen Job "getQueryResults" in BigQuery ohne Zeitüberschreitung?

Meine Frage ist, wie Sie getQueryResults ohne Zeitüberschreitung aufrufen können. Sollte ich eine extrem große Zahl als Timeout Parameter setzen oder der Parameter sollte da wohl 0 sein?

Antwort

0

Mit "keine Zeitüberschreitung" meinst du ewig zu warten?

Die von BigQuery verwendete zugrunde liegende Infrastruktur (Google API-Frontend) lässt keine Verbindungen von unbegrenzter Dauer zu. Am besten stellen Sie einen angemessenen Zeitüberschreitungswert ein und versuchen es erneut, wenn Sie eine Zeitüberschreitung erhalten.

Dies ist wahrscheinlich eine gute Best Practice sowieso, da Dinge wie Netzwerk-Schluckauf Fehler in der Anfrage verursachen können, und durch Wiederholen der getQueryResults Operation können Sie die Ergebnisse erhalten, ohne die Abfrage erneut ausführen zu müssen.

Verwandte Themen