2015-03-26 11 views
7

W dniu dzisiejszym napotkałem bardzo intrygujący komunikat o błędzie z BigQuery. Zapytałem o tabelę, która ma pole o nazwie user.yob (jak w roku urodzenia). Ja będąc nieco niechlujny kiedy pisałem moje zapytanie, projekcji na nieistniejącego pola „user.age” zamiast user.yob:BigQuery: Zaintrygowany komunikatem o błędzie

SELECT user.age, ... 

ten generowany jest następujący komunikat o błędzie:

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

teraz Jestem bardzo ciekawy ..

W jaki sposób BigQuery zdążył zasugerować dokładne pole, na którym faktycznie miałem polegać?

Nawiasem mówiąc, tabela, której dotyczyło zapytanie, zawiera wiele pól (przynajmniej około 50), więc nie jest tak, że jedynym dostępnym polem było user.yob.

Odpowiedz

8

BigQuery wie o wszystkich polach w tabeli i uruchamia wariację algorytmu Levenstein distance, aby znaleźć te, które wyglądają najbliżej nazw, które nie zostały znalezione. Jeśli odległość jest wystarczająco blisko, istnieje szansa, że ​​nazwa pola była po prostu błędnie napisana.

+0

Dzięki, ty i zespoły BQ kołyszą! – Pentium10

Powiązane problemy