Процес ETL (вилучення, перетворення та завантаження) у сховищі даних
Що таке ETL?
ETL це процес, який витягує дані з різних вихідних систем, потім перетворює дані (наприклад, застосовуючи обчислення, конкатенації тощо) і, нарешті, завантажує дані в систему сховища даних. Повною формою ETL є Extract, Transform and Load.
Спокусливо думати, що створення сховища даних — це просто вилучення даних із кількох джерел і завантаження в базу даних сховища даних. Це далеко від істини і вимагає складного процесу ETL. Процес ETL вимагає активного внеску від різних зацікавлених сторін, включаючи розробників, аналітиків, тестувальників, топ-менеджерів, і є технічно складним.
Щоб зберегти свою цінність як інструменту для осіб, які приймають рішення, система сховища даних має змінюватися разом зі змінами в бізнесі. ETL — це повторювана діяльність (щодня, щотижня, щомісяця) системи сховища даних, яка має бути гнучкою, автоматизованою та добре задокументованою.
Навіщо вам ETL?
Існує багато причин для впровадження ETL в організації:
- Це допомагає компаніям аналізувати свої бізнес-дані для прийняття важливих бізнес-рішень.
- Транзакційні бази даних не можуть відповісти на складні бізнес-питання, на які можна відповісти на прикладі ETL.
- Сховище даних забезпечує загальне сховище даних
- ETL надає спосіб переміщення даних із різних джерел у сховище даних.
- У міру зміни джерел даних сховище даних автоматично оновлюватиметься.
- Добре розроблена та задокументована система ETL майже необхідна для успіху проекту сховища даних.
- Дозволити перевірку правил перетворення, агрегації та обчислень даних.
- Процес ETL дозволяє порівнювати вибіркові дані між вихідною та цільовою системами.
- Процес ETL може виконувати складні перетворення та вимагає додаткової області для зберігання даних.
- ETL допомагає перенести дані в сховище даних. Перетворюйте в різні формати та типи, щоб дотримуватися єдиної системи.
- ETL — це попередньо визначений процес для доступу та обробки вихідних даних у цільовій базі даних.
- ETL у сховищі даних пропонує глибокий історичний контекст для бізнесу.
- Це допомагає підвищити продуктивність, оскільки кодує та повторно використовує без потреби технічних навичок.
Процес ETL у сховищах даних
ETL – це 3-етапний процес
Крок 1) Екстракція
На цьому етапі архітектури ETL дані витягуються з вихідної системи в проміжну область. Перетворення, якщо такі є, виконуються в проміжній області, щоб продуктивність вихідної системи не погіршувалася. Крім того, якщо пошкоджені дані копіюються безпосередньо з джерела в базу даних сховища даних, відкат буде проблемою. Проміжна область дає можливість перевірити витягнуті дані перед тим, як їх перемістити до сховища даних.
Сховище даних має інтегрувати системи, які мають різні
СУБД, обладнання, Operaсистеми та комунікаційні протоколи. Джерела можуть включати застарілі програми, як-от мейнфрейми, налаштовані програми, пристрої точки контакту, як-от банкомати, перемикачі викликів, текстові файли, електронні таблиці, ERP, дані від постачальників, партнерів тощо.
Отже, потрібна логічна карта даних, перш ніж дані будуть витягнуті та завантажені фізично. Ця карта даних описує зв’язок між джерелами та цільовими даними.
Три методи вилучення даних:
- Повне вилучення
- Часткове вилучення - без сповіщення про оновлення.
- Часткове вилучення - із сповіщенням про оновлення
Незалежно від використовуваного методу вилучення не повинно впливати на продуктивність і час відгуку вихідних систем. Ці вихідні системи є робочими базами даних. Будь-яке уповільнення або блокування може вплинути на прибутки компанії.
Деякі перевірки виконуються під час вилучення:
- Звірити записи з вихідними даними
- Переконайтеся, що не завантажено спам/небажані дані
- Перевірка типу даних
- Видаліть усі типи дублікатів/фрагментованих даних
- Перевірте, чи всі ключі на місці чи ні
Крок 2) Трансформація
Дані, отримані з вихідного сервера, є необробленими та непридатними для використання в оригінальному вигляді. Тому його потрібно очистити, намалювати та трансформувати. Фактично, це ключовий крок, на якому процес ETL додає цінності та змінює дані, щоб можна було створювати глибокі звіти BI.
Це одна з важливих концепцій ETL, де ви застосовуєте набір функцій до витягнутих даних. Дані, які не потребують жодного перетворення, називаються як прямий хід or передавати дані.
На етапі трансформації ви можете виконувати спеціальні операції з даними. Наприклад, якщо користувачу потрібна сума доходу від продажів, якої немає в базі даних. Або якщо ім'я та прізвище в таблиці знаходяться в різних стовпцях. Їх можна об'єднати перед завантаженням.
Нижче наведено дані Integrity Проблеми:
- Різне написання однієї особи, як-от Джон, Джон тощо.
- Є кілька способів позначити назву компанії, наприклад Google, Google Inc.
- Використання різних назв, наприклад Клівленд, Клівленд.
- Може бути випадок, коли різні програми створюють різні номери рахунків для одного клієнта.
- У деяких даних необхідні файли залишаються порожніми
- Недійсний продукт, зібраний на POS, оскільки введення вручну може призвести до помилок.
Під час цього етапу виконуються перевірки
- Фільтрування – виберіть лише певні стовпці для завантаження
- Використання правил і таблиць пошуку для стандартизації даних
- Перетворення набору символів і обробка кодування
- Перетворення одиниць вимірювання, як-от перетворення дати, часу, перетворення валют, числове перетворення тощо.
- Перевірка порогового значення даних. Наприклад, вік не може містити більше двох цифр.
- Перевірка потоку даних від проміжної області до проміжних таблиць.
- Обов'язкові поля не повинні бути заповнені.
- Очищення (наприклад, відображення NULL на 0 або чоловічої статі на «M» і жіночої на «F» тощо)
- Розбиття стовпця на кілька та об’єднання кількох стовпців в один.
- Транспонування рядків і стовпців,
- Використовуйте підстановки для об’єднання даних
- Використання будь-якої складної перевірки даних (наприклад, якщо перші два стовпці в рядку порожні, рядок автоматично відхиляється від обробки)
Крок 3) Завантаження
Завантаження даних у базу даних цільового сховища даних є останнім кроком процесу ETL. У типовому сховищі даних величезний обсяг даних потрібно завантажити за відносно короткий період (ночі). Отже, процес завантаження має бути оптимізовано для продуктивності.
У разі збою завантаження механізми відновлення повинні бути налаштовані на перезапуск із точки збою без втрати цілісності даних. Адміністратори сховища даних повинні відстежувати, відновлювати та скасовувати завантаження відповідно до переважної продуктивності сервера.
Види завантаження:
- Початкове навантаження — заповнення всіх таблиць Data Warehouse
- Інкрементне навантаження — періодичне застосування поточних змін за потреби.
- Повне оновлення — видалення вмісту однієї або кількох таблиць і перезавантаження новими даними.
Перевірка навантаження
- Переконайтеся, що дані ключового поля не відсутні або не пусті.
- Перевірте представлення моделювання на основі цільових таблиць.
- Перевірте, чи поєднано значення та обчислені показники.
- Перевірка даних у таблиці розмірів, а також у таблиці історії.
- Перевірте звіти BI за завантаженою таблицею фактів і розмірів.
Інструменти ETL
Є багато Інструменти ETL доступні на ринку. Ось деякі з найвідоміших:
1. MarkLogic:
MarkLogic — це рішення для сховища даних, яке робить інтеграцію даних легшою та швидшою за допомогою низки корпоративних функцій. Він може запитувати різні типи даних, наприклад документи, зв’язки та метадані.
https://www.marklogic.com/product/getting-started/
2. Oracle:
Oracle є провідною базою даних галузі. Він пропонує широкий вибір рішень для сховищ даних як локальних, так і хмарних. Це допомагає оптимізувати взаємодію з клієнтами, підвищуючи ефективність роботи.
https://www.oracle.com/index.html
3. Amazon червонийShift:
Amazon Redshift — це інструмент сховища даних. Це простий і економічно ефективний інструмент для аналізу всіх типів даних за стандартом SQL і існуючі інструменти BI. Це також дозволяє виконувати складні запити до петабайтів структурованих даних.
https://aws.amazon.com/redshift/?nc2=h_m1
Ось повний список корисного Інструменти сховища даних.
Найкращі практики процесу ETL
Нижче наведено найкращі практики щодо етапів процесу ETL.
Ніколи не намагайтеся очистити всі дані:
Кожна організація хотіла б мати всі дані чистими, але більшість із них не готові платити за очікування або не готові чекати. Очищення всього цього займе занадто багато часу, тому краще не намагатися очистити всі дані.
Ніколи нічого не очищайте:
Завжди плануйте щось очистити, тому що головною причиною створення сховища даних є надання чистіших і надійніших даних.
Визначте вартість очищення даних:
Перш ніж очистити всі забруднені дані, вам важливо визначити вартість очищення для кожного забрудненого елемента даних.
Щоб прискорити обробку запитів, створіть допоміжні представлення та індекси:
Щоб зменшити витрати на зберігання, зберігайте зведені дані на стрічкових дисках. Крім того, необхідний компроміс між обсягом даних, які потрібно зберегти, і їх детальним використанням. Компроміс на рівні деталізації даних для зменшення витрат на зберігання.
Підсумки
- ETL означає Extract, Transform і Load.
- ETL надає метод переміщення даних із різних джерел у a сховище даних.
- На першому етапі вилучення дані витягуються з вихідної системи в проміжну область.
- На етапі перетворення дані, отримані з джерела, очищаються та трансформуються.
- Завантаження даних у цільове сховище даних є останнім кроком процесу ETL.