Ein Api-Server läuft auf Kubernetes Engine (GKE). Benutzer können relativ kleine Datenmengen (~ 100 MB, mehrere CSV-Dateien mit derselben Datenstruktur) von Clientanwendungen auf Cloud Storage (GCS) hochladen. Sobald der Upload abgeschlossen ist, muss ich alle Daten aus allen neuen .csv-Dateien in eine einzige vorhandene BigQuery-Tabelle mit einigen benutzerspezifischen Parametern importieren (markieren Sie jede Zeile mit einer Benutzer-ID, die etwa so sein mag). Ordnung spielt keine Rolle.Wie wird der Daten-Upload von Cloud Storage zu BigQuery von Kubernetes Engine ausgelöst?
Google Docs bietet hierfür GUI-basierte Lösungen und Befehlszeilenlösungen an. Obwohl ich davon ausgehe, gibt es eine Möglichkeit, den Upload auszulösen und dessen Fortschritt vom GKE-basierten Server selbst zu verfolgen. Wie mache ich das?
Nicht sicher, ob das wichtig ist: GKE api Server wird auf NodeJS geschrieben.
Sie können die CSV-Datei als Verbundtabelle definieren (als Teil eines BigQuery-Abfrageauftrags) und dann eine Abfrage wie "SELECT *, FROM MyCsvTable;" ausführen? Sie können angeben, dass sie als Teil des Abfrageauftrags an die vorhandene Tabelle angefügt werden sollen. –
@ElliottBrossard meinst du "Abfrage von CSV, ohne es auf BigQuery hochzuladen"? Ich denke, das wird viel weniger effizient sein, als mit diesen Daten in BigQuery selbst nach dem Upload umzugehen – stkvtflw
Es hängt von dem Modell, das ich denke. Wenn Sie viele 100 MB-Dateien gleichzeitig verarbeiten möchten, stimme ich zu, dass das Laden der CSV-Dateien in BigQuery die bessere Wahl ist. Für eine "Echtzeit" -Lösung könnten Sie föderierte Tabellen verwenden. Haben Sie in jedem Fall versucht, die BigQuery-API von NodeJS zu verwenden? Es hört sich so an, als müssten Sie es verwenden. –