2015-03-26 3 views
7

Сегодня я встретил очень интересное сообщение об ошибке BigQuery. Я запрашивал таблицу с полем user.yob (как и в году рождения). Я был немного небрежен, когда я написал запрос, проецирование на несуществующего поля «user.age» вместо user.yob:BigQuery: Заинтриговано сообщением об ошибке

SELECT user.age, ... 

Это вызвало следующее сообщение об ошибке:

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

сейчас Мне очень любопытно.

Как BigQuery удалось предложить точное поле, на котором я намеревался проецировать?

Кстати, в таблице, которую я запрашивал, есть много полей (по меньшей мере, 50), так что это не так, как user.yob было единственным доступным полем.

ответ

8

BigQuery знает обо всех полях в вашей таблице, и он выполняет вариацию алгоритма Levenstein distance, чтобы найти те, которые наиболее близки к именам, которые не были найдены. Если расстояние достаточно близко, есть вероятность, что имя поля было просто написано неправильно.

+0

Спасибо, вы и команды команд BQ! – Pentium10