2015-03-26 6 views
7

traf ich eine sehr interessante Fehlermeldung von BigQuery heute. Ich war die Abfrage eine Tabelle, die ein Feld user.yob (wie im Geburtsjahr) genannt hat. Ich wurde ein bisschen schlampig, wenn ich meine Abfrage schrieb, Projektion auf eine nicht existierende Feld „user.age“ statt user.yob:BigQuery: Fasziniert von Fehlermeldung

SELECT user.age, ... 

Dieses wird folgende Fehlermeldung generiert:

BigQuery error in mk operation: Field 'user.age' not found; did you mean 'user.yob'? 

Jetzt Ich bin sehr neugierig ..

Wie konnte BigQuery das genaue Feld vorschlagen, auf das ich eigentlich projizieren wollte?

Übrigens hat die Tabelle, die ich abgefragt habe, viele viele Felder (ungefähr 50), also ist es nicht wie user.yob das einzige verfügbare Feld.

Antwort

8

BigQuery kennt alle Felder in Ihrer Tabelle, und es wird eine Variation von Levenstein distance Algorithmus ausgeführt, um diejenigen zu finden, die den Namen am nächsten kommen, die nicht gefunden wurden. Wenn die Entfernung nah genug ist, besteht die Möglichkeit, dass der Feldname einfach falsch geschrieben wurde.

+0

Danke, Du und Teams BQ rock! – Pentium10