Подходит ли AWS Lambda для работы с ETL?

ETL расшифровывается как: «Extract, Transform, Load», что представляет собой процесс работы с серией данных в вычислительном устройстве.
Поскольку AWS Lambda — это вычислительная единица, дешевая в использовании и универсальная в том, чего вы можете достичь или с чем совместить, это делает ее привлекательным вариантом для такого рода работ. Но так ли это?

1 — Что нужно для успешного завершения ETL-работы?

Предположим, что у вас есть лист excel с огромным количеством строк и внушительным количеством столбцов, и вам нужно очистить, преобразовать и сохранить эти строки в определенном порядке или форме. Для выполнения этой задачи вам необходимы определенные компоненты.

AWS Lambda предоставляет эти наборы, имея возможность соединяться с сервисами хранения данных, такими как S3, Glacier. Кроме того, вы можете использовать EventBridge для создания серии действий, которые соответствуют настроенным вами пользовательским схемам. DynamoDB дает возможность использовать вариант NoSQL, который обеспечивает довольно быстрое подключение к БД. SQS для постановки данных в очередь в функцию, и отлавливать необработанные данные для последующей корректировки в DLQ.

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

2 — Только Lambda может выполнить эту работу?

Конечно, нет. У AWS есть еще один сервис под названием Glue, который представляет собой сервис интеграции данных, созданный для выполнения такого рода операций. Он имеет свой собственный набор функций и опций. Но его нельзя сравнивать с Lambda, когда речь идет о подключении. У Lambda больше возможностей. Да, Lambda — это вычислительный модуль, а Glue заявлен как сервис интеграции данных. Но здесь мы сравниваем сам сценарий использования, а не ограничения.

То, что можно сделать в Lambda, можно сделать в любом семействе EC2. Вам просто нужно найти подходящее семейство для выполнения работы. Но не забывайте, что EC2 — это управляемая клиентом служба, о которой вам придется позаботиться.
Одно небольшое замечание: если ваш ETL потребляет много CPU, не используйте семейство T.

Еще один момент, который я хотел бы уточнить: то, что может использовать Lambda, позволяет восстановить работу, если в коде возникает проблема, например, неожиданный тип данных, например, разница в формате даты. Lambda может перенаправить эти строки в DLQ, который может работать как сеть, улавливающая строки необычных данных. В других сервисах эта возможность не так четко представлена, что может заставить вас повторно запустить весь файл после исправления кода вручную. Поверьте мне, я был там.

3- Преимущества и недостатки:

Давайте начнем с недостатков:

Время: вы не можете нормально выполнять задание более 15 минут. Ему требуется больше времени, чтобы разделить файл, выполнить множество функций и сохранить целостность переданных данных.
Мощность: она очень ограничена тем, что вы можете выделить, трудно понять, какой объем памяти нужно выделить, что относится к выделению процессора.
Неправильная конфигурация: поскольку это вычислительная единица, ваш код может быть неправильной конфигурацией. Использование неправильной функции в коде может привести к множеству проблем, которые влияют на распределение памяти и создают узкие места.

Давайте немного поднимем настроение:

Меньше конфигурации: Поскольку это управляемый сервис, вам не нужно думать о доступности сервиса или о том, будет ли какой-либо другой процесс использовать вычислительную мощность, необходимую вам для работы. Обо всем этом уже позаботились.
Готовые рабочие среды: Если вам нужно использовать python, просто выберите его, и все необходимые инструменты, сервисы готовы к использованию. Все просто.
Службы sidekick: Вы можете использовать множество сервисов, которые помогут вам легко достичь цели. Благодаря SDK.

Итак, вопрос: работает ли это для ETL?

Ответ: зависит.

Это зависит от того, что вы делаете, каков ожидаемый результат и как вы его используете. Это может быть очень дорого, если вы используете много сопутствующих сервисов. Или ваш код требует много времени для выполнения. Все эти факторы могут повлиять на ваше решение.

Не существует идеальных сервисов для ETL. Есть сервисы, которые могут выполнить эту работу. Знаете ли вы, какую работу необходимо выполнить? Можете ли вы представить себе процесс? Тогда вы сможете ответить на этот вопрос.

Оцените статью
Procodings.ru
Добавить комментарий