Какой сервис AWS я должен использовать для обработки большого текстового файла? - PullRequest
0 голосов
/ 24 июня 2018

У меня есть сценарий использования, когда мне нужно прочитать очень большой текстовый файл, который может содержать до 1 миллиона записей. Для каждой записи я должен выполнить некоторую проверку, а затем преобразовать ее в другой JSON, а затем перенести в тему SNS. Мне не нужно читать их последовательно, поэтому я могу использовать параллелизм. Один из вариантов - поместить файл в корзину S3, а затем использовать лямбду для обработки файла, который распределяет (асинхронно) записи по нескольким лямбда-функциям, которые заботятся о преобразовании (и проверке), а затем передает его в SNS. Другой вариант - использовать поток кинезис и использовать несколько лямбд, делающих одно и то же. Несколько лямбд, использующих потоки кинезиса

Каким должен быть идеальный способ сделать это?

  1. S3 -> Лямбда -> Множественные лямбды -> SNS
  2. Кинезис -> Несколько лямбд (или лямбда -> Несколько лямбд -> SNS)

1 Ответ

0 голосов
/ 24 июня 2018

Возможно, вы захотите изучить AWS Glue.Этот сервис может выполнять ETL для большинства вещей, хранящихся в S3, поэтому он может избавить вас от необходимости делать это самостоятельно.В сочетании с запуском лямбды S3 это может быть интересным вариантом?

Редактировать: Если файл можно проанализировать с помощью RegExs, возможно, попробуйте Athena?Athena относительно дешева и может обрабатывать большие файлы без заминки.

Если записи имеют предсказуемую длину, вы можете использовать Range-запросы, делите файл перед тем, как передать его в Lambda, предотвращая длительное время выполнения.

Кроме того, вы пробовали анализировать и разбивать файл с помощью Lambda?1 миллион записей - это НЕ ТОЛЬКО, и просто не должно быть проблем с разделением строк и передачей (кусками) для проверки (или, возможно, SNS).

...