2015-03-26 11 views
7

Ho riscontrato un messaggio di errore molto intrigante da BigQuery oggi. Stavo interrogando una tabella che ha un campo chiamato user.yob (come nell'anno di nascita). Ero essere un po 'sciatto quando ho scritto la mia domanda, si proietta su una inesistente campo "user.age" invece di user.yob:BigQuery: intrigato dal messaggio di errore

SELECT user.age, ... 

Questo ha generato il seguente messaggio di errore:

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

Ora Sono molto curioso ..

Come ha fatto BigQuery a suggerire il campo preciso su cui intendevo effettivamente proiettare?

A proposito, la tabella che stavo interrogando ha molti campi (circa 50 almeno), quindi non è come user.yob era l'unico campo disponibile.

risposta

8

BigQuery conosce tutti i campi della tabella e esegue la variazione dell'algoritmo Levenstein distance per trovare quelli che sembrano più vicini ai nomi che non sono stati trovati. Se la distanza è abbastanza vicina, è possibile che il nome del campo sia stato semplicemente errato.

+0

Grazie, voi e BQ squadre rocce! – Pentium10