Каков наилучший подход для временного сохранения большого результата запроса (~ 100 тыс. Строк) в S3? - PullRequest
0 голосов
/ 14 июня 2019

У меня есть лямбда-запрос, выполняющий запрос в mysql, затем сохраняющий результат запроса на S3, где он будет использоваться другой лямбда-выражением для выполнения чего-то еще со всеми этими данными.

У меня заканчивается лямбда-память, поскольку результат запроса слишком велик и сохраняется в переменную перед отправкой на S3.

Вы, ребята, имеете представление о том, как я могу подойти к этому?

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Данные отправляются на s3 в формате CSV или JSON? Потому что, если это так, вы можете использовать эту функцию s3 под названием s3 select , которая будет запрашивать этот объект для вас, учитывая некоторый синтаксис sql и сохраняя память в вашей лямбде. Будет ли это работать для варианта использования? Вот сообщение в блоге, где они показывают, как это сделать: https://aws.amazon.com/blogs/aws/s3-glacier-select/

НТН

-Джеймс

0 голосов
/ 14 июня 2019

Как указано в ресурсе Lambda Limit , максимальный объем памяти составляет 3 008 МБ, а максимальный объем хранилища каталогов, который может использовать Lambda, составляет 512 МБ.

Хотя я не знаю вашего точного варианта использования, это пример потоковой передачи данных с эффективным использованием памяти, с использованием python: Поток большого набора данных с эффективным использованием памяти на S3

По моему опыту, лучше использовать инструменты, предназначенные для извлечения / загрузки данных для rds в s3, чем для создания инструментов в Lambda. Например, вы можете использовать конвейер данных для экспорта данных MySQL в Amazon S3 . Конвейер данных может быть сконфигурирован с экземплярами ec2 для обработки больших наборов данных. Гораздо больше и эффективнее, чем Lambda-обработчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...