Разделение данных csv в корзине s3 для запросов с помощью Athena - PullRequest
0 голосов
/ 08 мая 2020

У меня есть данные журнала csv, поступающие каждый час в одном ведре s3, и я хочу разделить его для повышения производительности запросов, а также преобразования в паркет.

Также как я могу автоматически добавлять разделы для новых журналов которые будут добавлены.

Примечание:

  1. имена файлов csv соответствуют стандартному формату даты
  2. файлы записываются из внешнего источника и не могут быть отредактированы для записи в папки но только в основном ведре
  3. Хотел отдельно конвертировать csv файлы в паркет

1 Ответ

0 голосов
/ 10 мая 2020

Похоже, что ваша ситуация:

  • Объекты загружаются в корзину Amazon S3
  • Вы хотите, чтобы эти объекты были помещены в иерархию путей для поддержки Amazon Athena разбиение на разделы

Вы можете настроить событие Amazon S3 для запуска AWS лямбда-функции всякий раз, когда создается новый объект.

Функция Lambda будет:

  • Прочитать имя файла (или содержимое файла), чтобы определить, где его следует разместить в иерархии
  • Выполнить CopyObject(), чтобы поместить объект в правильном месте (S3 не имеет команды 'move')
  • Удалить исходный объект с помощью DeleteObject()

Будьте осторожны, чтобы вышеуказанная операция не привела к событию который снова запускает функцию Lambda (например, сделайте это в другой папке или сегменте), в противном случае возникнет бесконечное l oop.

Когда вы wi sh to конвертируете файлы CSV в Parquet , см .:

* 103 2 * Преобразование в столбцы - Amazon Athena Использование AWS Athena для преобразования CSV-файла в Parquet | Блог CloudForecast
...