ETL означава: „Извличане, трансформиране, зареждане“, което е процес на работа с поредица от данни в изчислителна единица.

Тъй като AWS Lambda е изчислителна единица, евтина за използване и гъвкава с това, което можете да постигнете или комбинирате, я прави привлекателна опция за този вид работни места. Но става ли?

1- Какви ETL задачи трябва да завършат успешно?

Да приемем, че имате лист в Excel с огромно количество редове заедно с респектиращ брой колони и трябва да почистите, трансформирате и съхраните тези редове в определен ред или форма. Трябва да имате определени компоненти, за да постигнете тази задача.

AWS Lambda предоставя тези комплекти, като може да се свързва с услуги за съхранение като S3, Glacier. Освен това можете да използвате EventBridge, за да създадете поредица от действия, които отговарят на персонализираните схеми, които сте конфигурирали. DynamoDB дава възможност за използване на NoSQL опция, която осигурява доста бърза свързаност с DB. SQS за поставяне на данните във функцията и улавяне на необработените данни за по-късна корекция в DLQ.

Така че можем да гарантираме, че основната архитектура и свързаност са там, за да може Lambda да свърши работата.

2- Само Lambda може да свърши работа?

Разбира се, че не. AWS има друга услуга, наречена Glue, която е услуга за интегриране на данни, създадена да извършва този тип операции. Има свой собствен набор от функции и опции. Но не може да се сравни с Lambda, когато става въпрос за свързаност. Lambda има повече възможности. Да Lambda е изчислителна единица и Glue, декларирана като услуга за интегриране на данни. Но това, което правим тук, е да сравним самия случай на употреба, а не ограниченията.

Това, което може да се направи в Lambda, може да се направи във всяко семейство EC2. Просто трябва да намерите правилното семейство, което да свърши работата. Но имайте предвид, че EC2 е услуга, управлявана от клиента, за която трябва да се погрижите.

Един малък коментар тук, ако вашият ETL консумира много CPU, не използвайте семейството T.

Друг момент, който искам да изясня, е, че с това, което Lambda може да използва, може да възстанови работата, ако възникне проблем с кода като неочакван тип данни като разлика във формата на датата и часа. Lambda може да пренасочи тези редове към DLQ, който може да работи като мрежа, която улавя необичайните редове с данни. Тази свързаност не е представена ясно в други услуги, което може да ви накара да стартирате отново целия файл след ръчно коригиране на кода. Повярвайте ми, бил съм там.

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

Да започнем с недостатъците:

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

Нека повдигнем малко духа:

  • По-малко конфигурация: Тъй като това е управлявана услуга, не е нужно да мислите за наличността на услугата или дали някой друг процес ще използва изчислителната мощност, която ви е необходима за вашата работа. Всичко е погрижено.
  • Готови среди за изпълнение: Ако трябва да използвате Python, просто го изберете и всички необходими инструменти и услуги са готови за използване. Толкова просто.
  • помощни услуги: можете да използвате много услуги, които да ви помогнат лесно да постигнете целта. Благодарение на SDK.

И така, въпросът е работи ли за ETL?

Отговорът е: зависи.

Зависи какво правите, какъв е очакваният резултат и как го използвате. Може да бъде много скъпо, ако използвате много заобикалящи услуги. Или вашият код отнема много време за изпълнение. Всички тези фактори могат да повлияят на вашето решение.

Няма перфектни услуги за ETL. Има служби, които могат да свършат работа. Знаете ли каква работа е необходима за изпълнение? Можете ли да си представите процеса? Тогава можете да отговорите на този въпрос.

Повече съдържание в PlainEnglish.io. Регистрирайте се за нашия безплатен седмичен бюлетин. Следвайте ни в Twitter и LinkedIn. Вижте нашия Community Discord и се присъединете към нашия Talent Collective.