In BigQuery ist es möglich, die Ergebnisse einer Abfrage in eine neue Tabelle zu schreiben. Ich möchte, dass die Tabelle nur erstellt wird, wenn die Abfrage mindestens eine Zeile zurückgibt. Grundsätzlich möchte ich nicht leere Tabellen erstellen. Ich kann keine Option dafür finden. (Ich benutze die Python-Bibliothek, aber ich nehme an, das gleiche gilt für die rohe API)Schreiben von einer Abfrage in eine Tabelle in BigQuery nur, wenn die Abfrage nicht leer ist
Antwort
Da Sie das Ziel in der Abfragedefinition angeben müssen und Sie nicht wissen, was es zurückgibt, wenn Sie es ausführen, können Sie Tack ein LIMIT 1
bis zum Ende?
Sie können die Zeilennummer im job result object überprüfen und dann die Abfrage ohne den Begrenzer erneut ausführen, wenn Ergebnisse in Ihrer neuen Tabelle vorhanden sind.
Entschuldigung, ich habe vergessen, dies zu erwähnen. Natürlich kann man es in zwei Schritten tun, wie Sie vorschlagen. Meine Frage besteht darin, es innerhalb eines Anrufs zu tun. –
Ich war noch nicht so lange in BigQuery, aber es scheint nicht so, als könnten Sie tun, was Sie fragen. Die Abfrage wird ausgeführt und die Ergebnisse entweder in eine Tabelle oder in den Arbeitsspeicher/die Anwendung geschrieben und müssen vor der Ausführung der Abfrage definiert werden. – Bmo
Es gibt keine Option, dies in einem Schritt zu tun. Ich würde empfehlen, die Abfrage auszuführen, die Ergebnisse zu überprüfen und dann eine Tabellenkopie mit WRITE_TRUNCATE durchzuführen, um die Ergebnisse an den endgültigen Speicherort zu übergeben, wenn die Zwischenausgabe mindestens eine Zeile enthält.
- 1. Abfrage, die NUR fehlschlägt, wenn eine Tabelle leer ist
- 2. BigQuery Ausführung nur eine Abfrage
- 3. BigQuery Abfrage Neueste Tabelle Effizientes
- 4. bigquery - langsame Abfrage auf einer kleinen Tabelle
- 5. SQL BigQuery: schwerwiegenden Fehler, wenn in Abfrage
- 6. Eine Stringvergleichsfunktion in bigquery schreiben
- 7. Bigquery - schreiben nur Autorisierung
- 8. Gibt es eine Möglichkeit, eine Tabelle, die aus einer Abfrage in BigQuery erstellt wird, zu partitionieren?
- 9. Abfrageer ist leer, wenn Tabellenausdruck Abfrage leer ist
- 10. BigQuery Abfrage erste verfügbare Spalte
- 11. SELECT Name der Tabelle, wenn die Tabelle leer ist
- 12. Einfügen einer bestimmten Abfrage in die Tabelle
- 13. Wie Abfrage mehrere verschachtelte Felder in Bigquery?
- 14. Linq-Abfrage, um Ergebnisse zurückzugeben, wenn eine ICollection leer ist.
- 15. PHP Mysql Abfrage ist leer
- 16. BigQuery gestreamte Daten sind nicht in Tabelle
- 17. versucht, Abfrage, die in eine Tabelle
- 18. Abfrage einer Tabelle in Back4app
- 19. SQL-Abfrage: alle Elemente in einer Tabelle auflisten, die nicht in einer anderen Tabelle erscheinen
- 20. Schreiben einer Abfrage ohne Unterabfrage
- 21. BigQuery hängt Ergebnisse der Abfrage an Tabelle mit Pflichtfelder an
- 22. mehrere Vorlagen Tabellen in einer Abfrage von Google BigQuery
- 23. einzelne Abfrage von mehreren Abfrage schreiben
- 24. Abfrage BigQuery verschachtelte/wiederholte Felder
- 25. MYSQL Update-Abfrage mit einer temporären Tabelle, wenn eine äquivalente Select-Abfrage nicht
- 26. Wie nur für mehrteilige nicht leer Ergebnisse zurückgeben Abfrage
- 27. Ich versuche, eine Abfrage in C# laufen, aber es funktioniert nicht, wenn die Abfrage richtig ist
- 28. Ich muss eine Abfrage in Sql schreiben
- 29. BigQuery-Abfrageergebnis direkt in GCS schreiben - ist das möglich?
- 30. Rufen Sie eine Abfrage von einer Abfrage in Mysql?
Können Sie keine Standardeinstellungen verwenden? Wenn leer, verwenden Sie dann den Standardwert? – xCloudx8
@ xCloudx8 nicht sicher, wir sind auf der gleichen Seite. Ich spreche darüber: http://Stackoverflow.com/a/14634697/825190 –
Ich bekomme es auch nicht, jede Abfrage in BigQuery erstellt bereits eine Tabelle, auch wenn es anonym ist. Es muss einen zweiten Op geben, der einen Tisch neu schreibt, wenn er nicht leer ist. Sie können das nicht vermeiden, soweit ich weiß. – Pentium10