Ich habe eine Abfrage wie diese, in Standard-SQL:BigQuery - Abfrage optionale Felder auf Datenmenge Schemata
SELECT record.field1, record.field2
FROM dataset.*
WHERE record.field2 == 'something'
aber einige meiner Tabellen nicht auf Schema dieses field2
. dass Fehler
I`m bekommen:
Field name field2 does not exist in STRUCT field at ... [17:34]
Wer weiß, wie kann ich eine optionale Klausel setzt Abfrage ausgewertet nur werden, wenn das Feld in dem Schema existiert?
1) wenn Sie das erwarten in reinem BQ SQL passieren - es ist nicht machbar, also können Sie Feature-Anfragen mit dem [BigQuery-Issue-Tracker] (http://code.google.com/p/google-bigquery/) posten. 2) Sie können zwischenzeitlich einfachen Code schreiben in einem Client Ihrer Wahl, um das Schema der Tabellen in Ihrem Dataset zu lesen und entsprechend zu handeln (sieht aber so aus, als ob Sie nicht wollen - siehe vorhergehendes Bullet) 3) btw - '==' ist in BQ SQL nicht korrekt -> Sie sollten '='; –
Ja ... Ich erstelle diese Abfrage Ad-hoc, um einige allgemeine Metriken zu berechnen, also war das Schreiben von Code mit der API nicht meine erste Option. Wenn es keine FR darüber gibt, werde ich eine öffnen. Danke, Mikhail! –
Ich denke, es gibt potenziell verwandte FR, die in Ihrem Szenario helfen können - um die Fähigkeit zu haben, generische Objekte in UDF (Templating) zu übergeben - Sie können versuchen, im Issue Tracker danach zu suchen. Wenn ich mich nicht irre - es wurde vor einiger Zeit von @ElliottBrossard eingereicht, basierend auf einem anderen Post in SO –