2

exportieren So habe ich eine Backend-API in Java auf Google App Engine entwickelt. Die API wird verwendet, um Echtzeitstatistiken zurückzugeben, indem Abfragen in BigQuery ausgeführt werden.Wie kann ich meine Kunden BigQuery-Abfrageergebnisse als CSV

Ich habe auch Front End in AngularJS entwickelt, die mit der Backend-API kommuniziert und ermöglicht Benutzern, sich anzumelden und aggregierte Statistiken anzuzeigen.

Ich möchte meine Benutzer Daten als CSV von BigQuery (direkt über meine Front-End-Anwendung) exportieren lassen.

Ich bin nicht sicher, was der beste Weg ist, das zu erreichen. Deine Hilfe wird hoch geschätzt.

+0

Vielleicht sollte ich erwähnen, ich brauche eine Lösung, die skaliert. Der Export nach GCS ist auf 1000 Exporte pro Tag begrenzt, daher mag ich diese Option nicht besonders. Außerdem könnten Daten, die meine Benutzer exportieren sollen, bis zu Millionen von Datensätzen enthalten. – shadyhossin

Antwort

3

Ich konnte sehen Sie dies eine von zwei Möglichkeiten zu tun, je nach Ihren Bedürfnissen:

  1. ein export job to Google Cloud Storage im CSV-Format starten, dann die exportierte CSV von GCS herunterladen.

  2. Lesen Sie Daten von tabledata.list API, konvertieren Sie das fv-Format in CSV auf Ihrem Server und erstellen Sie eine herunterladbare CSV-Datei.

Ich würde wahrscheinlich die erste Option empfehlen. Exportaufträge werden wahrscheinlich besser skaliert, da sie für große Tabellen im Allgemeinen leistungsfähiger sind als wiederholte Aufrufe von tabledata.list. Außerdem müssen Sie keinen benutzerdefinierten Code schreiben, um Ihre Daten in CSV zu konvertieren.

+0

Eigentlich brauchen wir auch eine Alternative, da es zu lange dauert. Die Abfrage dauert 2 Minuten, aber der Export von 100 Zeilen dauert erneut 1-2 Minuten. Dies endet in 3-4 Minuten, was viel zu lang ist, und wurde gebeten, es zu verbessern. Hast du noch andere Ideen? – Pentium10

+0

Wie bei den meisten Operationen in BigQuery sind Exportaufträge nicht für kleine Zeilenzahlen optimiert. Es gibt Bemühungen, die Geschwindigkeit von Exportjobs zu verbessern, aber es ist in einem frühen Stadium und ich kann keine ETA bereitstellen. Angesichts des aktuellen BigQuery-Systems sind die obigen Vorschläge die besten, die ich mir vorstellen kann. In Ihrem Fall mit nur 100 Zeilen wäre die Leistung wahrscheinlich besser mit tabledata.list. –

1

Exportieren nach GCS ist derzeit unsere skalierte Lösung, vielleicht können Sie das Team kontaktieren, um eine bestimmte Quote für Sie zu haben. tabledata.list, die direkte CSV-Ausgabe zurückgibt, steht kurz vor der Einstellung, eine Alternative ist die Verwendung von bq cli's head-Befehl mit --format = csv, aber das ist keine Lösung für die Skalierung.

Verwandte Themen