Мы должны поставить сложные парси логики c в Афинах или использовать клей - PullRequest
0 голосов
/ 18 января 2020

Мы установили формат файла фиксированной длины в S3. Мы хотим создать Athena Table после преобразования его в Parque. У нас есть около 50-60 разных таких файлов

В настоящее время я могу подумать о двух подходах:

  1. Поместить логи синтаксического анализа фиксированной длины c в сценарий создания таблицы Athena.
  2. Создание задания Glue, которое будет анализировать его и создавать файлы Parque, а затем создать таблицу Athena для этого

Approach-1: Хотя, возможно, он имеет минимальный код, но это будет в скрипте создания таблицы. Мы используем Teraform для создания Infra, поэтому синтаксический анализ logi c (шаблон Regex или Grok) будет частью infra, я скептически отношусь к logi c в инфра-коде.

Approach- 2: Это будет работа Glue, написанная с использованием Spark, она будет гибкой для анализа файла фиксированной длины, мы могли бы написать повторно используемый код для формата фиксированной длины, чтобы использовать его для всех различных файлов. Логи c разобрать бы с разработчиками. Афина будет иметь внешнюю таблицу для выходного местоположения задания Glue. Инфра-код будет содержать только оператор create.

Не могли бы вы предоставить свои представления.

1 Ответ

0 голосов
/ 21 января 2020

Моя рекомендация будет go с подходом № 2. Используя метод readfile, вы можете прочитать большинство файлов формата фиксированной длины и преобразовать их в паркет. При необходимости вы можете выполнить валидацию или быстрое преобразование перед сохранением в паркете.

...