#aws-lambda #databricks
#aws-lambda #databricks
Вопрос:
Я хочу настроить архитектуру, управляемую событиями, для обработки сообщений из SQS и загрузки в AWS S3. События будут малообъемными, и я рассматривал возможность использования Databricks или AWS lambda для обработки этих сообщений, поскольку это 2 инструмента, которые мы уже приобрели.
Я хотел понять, какой из них лучше всего использовать, поскольку я изо всех сил пытаюсь дифференцировать их для этой задачи, поскольку пропускная способность составляет всего до 1000 сообщений в день и вряд ли будет выше на данный момент, поэтому оба способны.
Я просто хотел посмотреть, что другие люди рассмотрят и увидят в качестве различий между двумя этими продуктами, чтобы я мог убедиться, что это проверено на будущее, насколько это возможно?
Мы чаще использовали lambda там, где я работаю, и это может помочь сохранить его согласованным, поскольку у нас больше навыков работы с AWS, но мы стремимся расширить возможности databricks, и я лично считаю, что это проще в использовании.
Если бы это были большие данные, я бы упростил решение.
Спасибо
Ответ №1:
AWS Lambda, похоже, является гораздо лучшим выбором в этом случае. Ниже приведены некоторые преимущества, которые вы получите с помощью Lambda по сравнению с DataBricks.
Плюсы:
- Бесплатно: AWS Lambda предоставляется бесплатно за 1 миллион запросов в месяц и 400 000 ГБ-секунд вычислительного времени в месяц, что означает, что ваша скорость запросов 1000 в день будет легко покрыта этим. Подробнее здесь.
- Очень простая настройка: реализация функции Lambda будет очень простой. Подключите очередь SQS к вашей функции Lambda с помощью консоли AWS или командной строки AWS. Подробнее здесь. Код функции Lambda будет состоять всего из нескольких строк. Он получает сообщение из очереди SQS и записывает в S3.
- Ведение журнала и мониторинг: вам не потребуется отдельной настройки для отслеживания показателей производительности — сколько сообщений было обработано Lambda, сколько из них были успешными, сколько времени это заняло. Все эти показатели автоматически генерируются AWS CloudWatch. Вы также получаете встроенный механизм повторных попыток, просто укажите политику повторных попыток, а AWS Lambda позаботится обо всем остальном.
Минусы:
- Одним из недостатков этого подхода было бы то, что каждый вызов Lambda будет записываться в отдельный файл в S3, поскольку S3 не предоставляет API для добавления к существующим файлам. Таким образом, вы будете получать 1000 файлов в S3 в день. Возможно, вас это устраивает (зависит от того, что вы хотите сделать с этими данными в S3). Если нет, вам либо потребуется отдельное задание для периодического объединения всех файлов, либо выполнить загрузку существующего файла из S3, добавить к нему и загрузить обратно, что делает вашу лямбду немного более сложной.
DataBricks, с другой стороны, создан для различных вариантов использования — загрузки больших наборов данных из Amazon S3 и выполнения аналитики, SQL-подобных запросов, построения моделей ML и т. Д. Это не подходит для данного варианта использования.
Комментарии:
1. Возможное решение для недостатков: если сообщения приходили в непосредственной близости, рассмотрите возможность использования firehose для обработки добавляемого объекта.