Was ich tun möchte, sollte einfach sein: Angesichts eines BigQuery-Schemas möchte ich alle Tabellen (einschließlich verschachtelter) bis auf einige auswählen. Das Schwierige ist, dass BigQuery eine verschachtelte Struktur hat und die wenigen, die ich ausschließen möchte, in anderen Datensätzen verschachtelt sind.BigQuery select * außer verschachtelte Spalte
Ich habe die SELECT * Ausnahme-Klausel in der BigQuery documentation gefunden, die sehr vielversprechend scheint. Das Problem ist, dass der geschachtelte Strukturausschluss nicht unterstützt wird.
Um zum Beispiel der öffentlichen github_nested Dataset wir eine Abfrage wie
schreiben#standardSQL
SELECT * except (payload) FROM `bigquery-public-data.samples.github_nested` LIMIT 1000
Das tut, was wir durch das Entfernen der Nutzlast Datensatz aus den Ergebnissen erfolgreich erwarten. Stellen wir uns nun vor, dass wir payload.comment nur entfernen wollen und dabei den Rest des Payload-Datensatzes in der Antwort erhalten. Ich versuchte
#standardSQL
SELECT * except (payload.comment) FROM `bigquery-public-data.samples.github_nested` LIMIT 1000
Dies schlägt jedoch fehl.
Wer weiß von einem Weg, dies zu erreichen?
Danke!
Vielen Dank, Elliott. Dies löst das oben skizzierte Problem. Leider war ich ein schreckliches Frage-Poster und erkannte, dass mein Fall mit einem wiederholten Feld (das nicht im Beispiel ist) etwas kniffliger war. Ich werde der Frage ein Update hinzufügen. Entschuldigung! – Spikey
Wenn dies die ursprüngliche Frage beantwortet, stört es Sie als akzeptiert? Fühlen Sie sich frei, eine andere Variante der Frage zu schreiben, die sich auf wiederholte Felder bezieht. Vielen Dank! –
Wenn das die Konvention für Stackoverflow ist, sicher. Danke für die Hilfe! – Spikey