2017-01-03 6 views
0

Ich habe einen ETL-Prozess, der Daten von einem Mongo-Cluster zu BigQuery streamt. Dies geschieht wöchentlich über cron und bei Bedarf manuell. Ich habe für jeden unserer Kunden einen eigenen Datensatz, bei dem die Tabellenstrukturen identisch sind.BigQuery gestreamte Daten sind nicht in Tabelle

Ich habe gerade den Prozess ausgeführt, nur um zu finden, dass, während alle meine Daten-Chunks eine "Erfolg" -Antwort ({"kind": "bigquery # tableDataInsertAllResponse"}) von der insertAll API zurückgegeben, die Tabelle für einen leer ist spezifischer Datensatz

Ich hatte gesehen, dass dies ein paar Mal zuvor passiert ist, konnte aber nie neu erstellen. Ich habe es jetzt zweimal mit den gleichen Ergebnissen ausgeführt. Ich weiß, dass mein Code funktioniert, weil die anderen Datensätze korrekt ausgefüllt sind.

Es gibt keinen 'streaming buffer' in den Tabellendetails und das Ausführen einer count (*) -Abfrage gibt 0 response zurück. Ich habe sogar versucht, zwischengespeicherte Ergebnisse aus der Abfrage zu entfernen, um die Frische zu erzwingen - aber nichts hilft.

Bearbeiten - Nach 10 Minuten aus meinem Datenstrom (ich habe Zeitstempel Protokolle) - Teildaten erscheint jetzt in der Tabelle; nach weiteren 40 Minuten sieht es jedoch nicht so aus, als würden neue Daten einfließen.

Hat noch jemand Schluckauf beim Streaming-Dienst?

Möglicherweise ist erwähnenswert, dass ein Teil meines Prozesses die vorhandene Tabelle in eine Sicherungstabelle kopiert, die ursprüngliche Tabelle entfernt und sie mit dem neuesten Schema neu erstellt. Könnte dies Auswirkungen auf die Einfügungen bestimmter Randfälle haben?

Antwort

2

Wahrscheinlich ist es das, was mit Ihnen geschieht: BigQuery table truncation before streaming not working

Wenn Sie eine Tabelle löschen oder erstellen können, müssen Sie mindestens 2 Minuten warten, um Streaming-Daten auf zu starten.

Da Sie erwähnt haben, dass alle anderen Tabellen korrekt funktionieren und nur die Tabelle, die den Löschvorgang durchführt, keine Daten speichert, erklärt dies wahrscheinlich, was Sie beobachten.

Um dieses Problem zu beheben, können Sie entweder ein wenig länger warten, bevor die Daten-Streaming nach den delete und create Operationen oder vielleicht die Strategie zu ändern, die Daten zu laden (vielleicht ist es in eine CSV-Datei zu speichern und dann job Einsatz Methoden des zum Hochladen Daten in die Tabelle).

Verwandte Themen