AWS Athena - Запросить большую внешнюю таблицу, сгенерированную с помощью сканера Glue? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть большой набор файлов журналов истории на aws s3, которые насчитывают миллиарды строк,

Я использовал сканер клея с десериализатором grok для генерации внешней таблицы в Афине, но его запрос оказалсябыть невыполнимым

Мои запросы истекли, и я пытаюсь найти другой способ обработки этих данных.

Из того, что я понимаю, через Афину внешние таблицы не являются реальными таблицами базы данных, а представляют собой представленияданных в файлах, и запросы выполняются по самим файлам, а не по таблицам базы данных.

Как превратить этот большой набор данных в структуру, удобную для запросов?

Редактировать 1: Дляразъяснение, я не заинтересован в изменении формы файлов журнала, о которых заботятся.Скорее я хочу способ работать с текущей файловой базой у меня на s3.Мне нужно запросить эти старые журналы и в его текущем состоянии это невозможно.Я ищу способ конвертировать эти файлы в оптимальный формат или использовать текущую внешнюю таблицу для выполнения моих запросов.

Прямо сейчас, по умолчанию для сканера, внешние таблицы разделены только по дням и экземплярам, ​​мой шаблон grok разбивает отформатированные журналы на еще пару столбцов, которые я хотел бы перераспределить, если это возможно, что,Я полагаю, это облегчит выполнение моих запросов.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

По умолчанию время ожидания Афины составляет 30 минут.Этот период ожидания может быть увеличен, но с помощью команды AWS можно получить билет поддержки.Однако сначала вы должны оптимизировать свои данные и запросы, поскольку 30 минут - подходящее время для выполнения большинства запросов.

Вот несколько советов по оптимизации данных, которые значительно повысят производительность Афины:

  • Используйте столбчатые форматы, такие как orc / parquet со сжатием, для хранения ваших данных.
  • Разделите ваши данные.В вашем случае вы можете разбить свои журналы на основе года -> месяца -> дня.
  • Создайте большее и меньшее количество файлов на раздел вместо малого и большего количества файлов.

В следующей статье AWS представлена ​​подробная информация о настройке производительности в amazon-athena

10 лучших советов по настройке производительности для amazon-athena

0 голосов
/ 26 сентября 2019

Ваш where condition должен быть на разделах (хотя бы одно условие).Отправив заявку в службу поддержки, вы можете увеличить время ожидания в Афинах.В качестве альтернативы вы можете использовать Redshift Spectrum

Но вы можете серьезно подумать об оптимизации запроса.Тайм-аут запроса Афины составляет 30 минут.Это означает, что ваш запрос выполнялся в течение 30 минут до истечения времени ожидания.

...