Розкриття потужності інструментів ETL для AWS

Що таке ETL?

ETL – це абревіатура від Extract, Transform, Load, що в перекладі означає “Витяг, Перетворення та Завантаження”. Це процес, за допомогою якого дані збираються з різних джерел, обробляються для підготовки до використання та потім переміщуються до цільової системи, наприклад, бази даних, сховища даних чи озера даних.

Колись, років 15-20 тому, термін ETL був знайомий лише вузькому колу фахівців. У ті часи пакетні завдання, створені на замовлення, були поширені на локальному обладнанні.

Багато проєктів, навіть не усвідомлюючи цього, виконували певні види ETL-процесів. Хоча, можливо, вони не називали це ETL. Коли я розповідав про архітектури, що включали ETL, і описував ці процеси, це здавалося чимось екзотичним і незвичним.

Сьогодні ситуація кардинально змінилася. Перехід до хмарних технологій став пріоритетом, а інструменти ETL є ключовою складовою архітектури більшості проєктів.

Міграція в хмару передбачає перенесення даних з локальних джерел до хмарних баз даних, адаптуючи їх до хмарної архітектури. І саме це є основним завданням інструментів ETL.

Історичний контекст ETL та його актуальність

Джерело: aws.amazon.com

Основні функції ETL залишаються незмінними.

Інструменти ETL витягують інформацію з різноманітних джерел: баз даних, текстових файлів, веб-сервісів і, останнім часом, з хмарних додатків.

Раніше це часто означало обробку файлів, розташованих у файловій системі Unix. Їх читали, обробляли та готували до подальшого використання.

Структура папок часто виглядала так:

  • Вхідні дані
  • Вихідні дані
  • Помилки
  • Архів

Всередині цих папок існувала додаткова ієрархія, що залежала від дати.

Це був стандартний підхід до підготовки вхідних даних для завантаження в базу даних.

Сьогодні файлові системи Unix не такі поширені, як раніше, а іноді й файлів як таких немає. Натомість використовуються API. Файл як формат вхідних даних не є обов’язковим.

Дані можуть зберігатися в пам’яті, кеші або файлі. Головне, щоб вони відповідали певному формату. Найчастіше це JSON або XML, іноді CSV.

Формат вхідних даних визначаєте ви. Залежить лише від вас, чи буде процес зберігати історію вхідних файлів. Це вже не є стандартною процедурою.

Трансформація даних

Інструменти ETL трансформують витягнуті дані у формат, придатний для аналізу. Це включає очищення, перевірку, збагачення та агрегацію даних.

Раніше дані проходили складну процедурну логіку обробки, написану на Pro-C або PL/SQL, для перетворення і підготовки до цільової схеми даних. Це був такий же обов’язковий процес, як і розділення вхідних файлів по папках.

Чому це було так поширено, якщо в основі це було неправильно? Без постійного зберігання вхідних даних ви втрачали їхню найбільшу перевагу – незмінність. Проєкти просто відмовлялися від цього без можливості відновлення.

Сьогодні принцип такий: чим менше перетворень виконується над необробленими даними, тим краще – принаймні на першому етапі їх зберігання. Можливо, на наступному етапі знадобиться зміна моделі даних, але необроблені дані слід зберігати в максимально незмінному вигляді. Це велика зміна порівняно з попередніми підходами.

Завантаження даних

Інструменти ETL завантажують перетворені дані до цільової бази даних або сховища. Це передбачає створення таблиць, встановлення зв’язків і завантаження даних у відповідні поля.

Етап завантаження залишається відносно незмінним з плином часу. Єдина відмінність – цільова база даних. Раніше це найчастіше був Oracle, а зараз це може бути будь-що, доступне в хмарі AWS.

ETL у хмарному середовищі сьогодення

Для перенесення даних з локальної інфраструктури в хмару (наприклад, AWS), інструмент ETL є необхідним. Цей елемент хмарної архітектури став одним з найважливіших. Якщо цей крок виконано неправильно, то це вплине на всі наступні етапи.

На ринку представлено багато рішень. Я хотів би зупинитися на трьох, з якими маю найбільший досвід:

  • Служба міграції даних (DMS) – нативний сервіс AWS.
  • Informatica ETL – лідер комерційного ринку ETL, що успішно перейшов від локальних рішень до хмарних.
  • Matillion для AWS – порівняно новий гравець на хмарному ринку.

AWS DMS як ETL

Джерело: aws.amazon.com

AWS Data Migration Services (DMS) – це керована служба, яка дозволяє переміщувати дані з різних джерел в AWS. Вона підтримує різні сценарії міграції.

  • Однорідні міграції (наприклад, Oracle до Amazon RDS для Oracle).
  • Гетерогенні міграції (наприклад, Oracle до Amazon Aurora).

DMS може переміщувати дані з різних джерел, включаючи бази даних, сховища даних і SaaS-додатки, до різних цілей, таких як Amazon S3, Amazon Redshift і Amazon RDS.

AWS вважає DMS найкращим інструментом для перенесення даних з будь-якого джерела до хмарних цілей. Хоча основне завдання DMS – просто копіювання даних, він також добре справляється з їхньою трансформацією.

Ви можете налаштувати завдання DMS у форматі JSON, щоб автоматизувати перетворення даних під час копіювання:

  • Об’єднання вихідних таблиць або стовпців в одне значення.
  • Розділення вихідного значення на декілька цільових полів.
  • Заміна вихідних даних іншими значеннями.
  • Видалення непотрібних даних або створення нових на основі контексту.

Отже, DMS можна використовувати як ETL інструмент для вашого проєкту. Хоча він може бути не таким багатофункціональним, як інші варіанти, він виконує свою роботу, якщо ви чітко визначили ціль.

Фактор доцільності

DMS має певні ETL-можливості, але він в першу чергу призначений для міграції даних. Є деякі сценарії, коли DMS є кращим варіантом, ніж Informatica або Matillion:

  • DMS добре підходить для однорідних міграцій, коли вихідна та цільова бази даних одного типу.
  • DMS пропонує базові можливості перетворення даних, але може бути недостатньо розвинений в цьому плані.
  • Якість даних та управління ними в DMS досить обмежені. Але ці сфери можна покращити на наступних етапах проєкту.
  • DMS може бути економічно вигіднішим варіантом для організацій з обмеженим бюджетом. Він має простішу модель ціноутворення, ніж інші ETL інструменти.

Matillion ETL

Джерело: matillion.com

Matillion – це хмарне рішення для інтеграції даних з різних джерел, включаючи бази даних, SaaS-додатки та файлові системи. Він пропонує візуальний інтерфейс для створення конвеєрів ETL та підтримує різні сервіси AWS, такі як Amazon S3, Amazon Redshift та Amazon RDS.

Matillion простий у використанні і підходить для організацій, які тільки починають використовувати ETL інструменти або мають нескладні вимоги до інтеграції даних.

Matillion – це свого роду “чистий аркуш”. Він має певні попередньо визначені можливості, але їх потрібно налаштувати. Matillion не виконає роботу за вас автоматично.

Matillion часто позиціонує себе як ELT, а не ETL інструмент, що означає, що завантаження даних відбувається перед їх трансформацією.

Фактор доцільності

Matillion ефективніше трансформує дані вже після їхнього завантаження до бази даних. Причина цього – необхідність написання спеціального коду для кожного випадку. Ефективність буде залежати від якості цього коду.

Тому краще виконувати трансформацію в цільовій базі даних, залишивши Matillion просте завдання 1:1 – завантаження даних. Так буде менше шансів на помилку.

Хоча Matillion має широкий спектр функцій для інтеграції даних, він може не забезпечити такий рівень якості даних і управління ними, як інші ETL інструменти.

Matillion може масштабуватися відповідно до потреб організації, але він може бути не дуже ефективним для обробки великих обсягів даних. Паралельна обробка даних обмежена. Informatica, в цьому плані, є більш просунутим рішенням.

Однак для багатьох організацій Matillion забезпечує достатню масштабованість та можливості паралельної обробки.

Informatica ETL

Джерело: informatica.com

Informatica для AWS – це хмарний ETL інструмент, призначений для інтеграції та управління даними з різних джерел в AWS. Це керована служба, яка має широкий спектр можливостей для інтеграції даних, профілювання, якості та управління ними.

Основні характеристики Informatica для AWS:

  • Informatica масштабується відповідно до потреб. Він може обробляти великі обсяги даних та інтегрувати їх з різних джерел.
  • Informatica має ряд функцій безпеки, таких як шифрування, контроль доступу та журнали аудиту.
  • Informatica має візуальний інтерфейс для створення ETL конвеєрів. Він також надає готові конектори і шаблони.
  • Informatica інтегрується з різними сервісами AWS.

Фактор доцільності

Informatica є найбагатшим за функціоналом ETL інструментом у цьому списку. Однак, він може бути дорожчим і складнішим у використанні, ніж інші варіанти.

Informatica може бути дорогим, особливо для малих та середніх організацій. Модель ціноутворення залежить від використання.

Він також може бути складним у налаштуванні, особливо для новачків. Це може вимагати значних витрат часу та ресурсів.

Informatica має складну криву навчання, що може бути недоліком для тих, хто потребує швидкої інтеграції даних.

Informatica може бути не таким ефективним для інтеграції даних з джерел, що не належать до AWS. В цьому випадку DMS або Matillion можуть бути кращими.

Informatica є закритою системою. Можливості налаштування обмежені. Потрібно працювати з тим, що надається “з коробки”. Це обмежує гнучкість рішення.

Висновок

Не існує універсального рішення для ETL в AWS.

Можна обрати складне та дороге рішення, таке як Informatica, якщо:

  • Проєкт великий, і ви впевнені, що всі джерела даних будуть підключені до Informatica.
  • У вас є кваліфікована команда розробників та конфігураторів Informatica.
  • Ви можете забезпечити надійну технічну підтримку та готові за це платити.

Якщо це не так, то можна розглянути Matillion:

  • Якщо потреби проєкту не є надто складними.
  • Якщо потрібна гнучкість та можливість включити у процес специфічні кроки.
  • Якщо ви готові створювати більшість функцій з нуля разом з командою.

Для менш складних проєктів, DMS для AWS може бути оптимальним вибором.

Для подальшого ознайомлення, розгляньте інструменти для перетворення даних.