При создании стола в Афине; это дает мне следующее исключение:
нет жизнеспособной альтернативы на входе
При создании стола в Афине; это дает мне следующее исключение:
нет жизнеспособной альтернативы на входе
в имени таблицы нельзя использовать дефисы .. (хотя мастер позволяет это) .. Просто удалите дефис, и это сработает как шарм
2017_04_03_some_data
. Я перешел на some_data_20170403
, и это сработало.
- person Jonathan Morales Vélez; 02.05.2017
'-'
- person campeterson; 01.09.2017
)
отсутствовал в конце. :)
- person ChikuMiku; 23.04.2018
К сожалению, на данный момент сообщения об ошибках проверки синтаксиса в Athena не очень информативны, эта ошибка может означать практически любые возможные синтаксические ошибки в операторе create table.
Хотя сейчас это раздражает, вам необходимо проверить, соответствует ли синтаксис Создание документации по таблицам
Вот несколько примеров:
>
.
- person CorayThan; 07.06.2017
Эта ошибка обычно возникает, когда синтаксис DDL содержит несколько глупых ошибок. Существует несколько ответов, объясняющих различные ошибки в зависимости от их состояния. Простое решение этой проблемы - терпеливо изучить DDL и проверить следующие моменты построчно:-
В моем случае это было из-за запятой после последнего столбца в таблице. Например:
CREATE EXTERNAL TABLE IF NOT EXISTS my_table (
one STRING,
two STRING,
) LOCATION 's3://my-bucket/some/path';
После того, как я удалил запятую в конце two STRING,
, все заработало.
Мой случай: это была внешняя таблица, и в этом месте была опечатка (следовательно, не существовало)
Пара советов:
Слэши. У меня были косые черты. У меня был DDL от Афины, сохраненный как строка Python.
WITH SERDEPROPERTIES (
'escapeChar'='\\',
'quoteChar'='\"',
'separatorChar'=',')
был изменен на
WITH SERDEPROPERTIES (
'escapeChar'='\',
'quoteChar'='"',
'separatorChar'=',')
И все развалилось.
Пришлось сделать это:
WITH SERDEPROPERTIES (
'escapeChar'='\\\\',
'quoteChar'='\\\"',
'separatorChar'=',')
В моем случае это была лишняя запятая в разделе РАЗДЕЛАНО ПО,
В моем случае мне не хватало одинарных кавычек для URL-адреса S3.
В моем случае одно из имен столбцов таблицы было заключено в одинарные кавычки, как указано в документации AWS :( ('bucket')
Как отмечали другие пользователи, стандартное сообщение об ошибке проверки синтаксиса, предоставляемое Athena, не особенно полезно. Тщательная проверка необходимого синтаксиса DDL (см. справочник по типам данных HIVE), другие пользователи, упомянутые выше, могут быть довольно утомительными, поскольку они довольно обширны.
Итак, дополнительный прием для устранения неполадок - позволить собственному механизму анализа данных AWS (AWS Glue) подсказать вам, где может быть отключен DDL. Идея состоит в том, чтобы позволить AWS Glue проанализировать данные, используя собственные внутренние правила, а затем показать вам, где вы могли допустить ошибку.
В частности, вот шаги, которые помогли мне устранить неполадки с моим оператором DDL, который доставлял мне много проблем:
После поиска и следования всем хорошим ответам здесь. Моя проблема заключалась в том, что при работе в Node.js мне нужно было удалить необязательный ESCAPED BY '\', используемый в настройках строки, чтобы мой запрос работал. Надеюсь, это поможет другим.
Что не было очевидным для меня в первый раз, когда я использовал пользовательский интерфейс, так это то, что если вы получите ошибку в мастере создания таблицы, вы можете отменить ее, и в новом окне запроса должен быть использован запрос, который не удалось записать, для редактирования и исправления.
В моей базе данных был обман, поэтому я добавил обратные кавычки в запрос и перезапустил его.
Это случилось со мной из-за комментариев в запросе.
Я понял, что это возможно, когда попробовал кнопку «Форматировать запрос», и она превратила все это почти в одну строку, в основном закомментированную. Я предполагаю, что синтаксический анализатор запросов запускает это средство форматирования перед отправкой запроса в Афину.
Удалил комментарии, запустил запрос, и ангел получил свои крылья!