Я пытаюсь разделить данные, запрошенные amazon athena, по годам, месяцам и дням. Однако, когда я пытаюсь выполнить запрос из секционированных данных, я не могу получить никаких записей. Я выполнил инструкции, содержащиеся в этом запись в блоге.
Создать запрос к таблице:
CREATE external TABLE mvc_test2 (
ROLE struct<Scope: string, Id: string>,
ACCOUNT struct<ClientId: string, Id: string, Name: string>,
USER struct<Id: string, Name: string>,
IsAuthenticated INT,
Device struct<IpAddress: string>,
Duration double,
Id string,
ResultMessage string,
Application struct<Version: string, Build: string, Name: string>,
Timestamp string,
ResultCode INT
)
Partitioned by(year string, month string, day string)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://firehose-titlesdesk-logs/Mvc/'
Таблица создана успешно, и в сообщении о результате говорится:
«Запрос выполнен успешно. Если в вашей таблице есть разделы, вам необходимо загрузить эти разделы, чтобы иметь возможность запрашивать данные. Вы можете загрузить все разделы или загрузить их по отдельности. Если вы используете команду« Загрузить все разделы »(MSCK REPAIR TABLE), разделы должны быть в формате, понятном для Hive. Подробнее ".
Бег
msck repair table mvc_test2;
Получаю результат:
«Разделы не в хранилище метаданных: mvc_test2: 2017/06/06/21 mvc_test2: 2017/06/06/22»
На данный момент я не получаю результатов, когда пытаюсь запросить таблицу.
Журналы хранятся в подпапках в формате год / месяц / день / час. например: 's3: // firehose-application-logs / process / year / month / day / hour'
Как правильно разделить данные?