НОУ ІНТУІТ, Лекція, Проектування та розробка процесу ETL
Конструювання процесу заповнення таблиць вимірів
Для таблиць вимірювань ХД, які змінюватимуться згодом, у створенні процесу ETL першим основним завданням є вибір первинного ключа таблиці. Вибір ключа здійснюється проектувальником ХД з урахуванням аналізу джерел даних.
Другим основним завданням є перевірка наявності у вимірі відносин "один до одного" та "один до багатьох". Як правило, для такої перевірки використовують сортування.
Потім слід розглянути зміни вимірювання, визначити тип змін і описати процедури роботи з такими вимірюваннями.
Завантаження таблиць вимірювань виконується або шляхом перезапису таблиці вимірювання (для невеликих за обсягом таблиць), або завантажуються лише зміни даних таблиць вимірювань.
Конструювання процесу заповнення таблиць фактів
При конструюванні процесу заповнення таблиць фактів проектувальник вирішує такі основні завдання:
- проаналізувати побудовані таблиці фактів;
- розглянути процес завантаження таблиць фактів;
- розглянути та проаналізувати побудовані агрегати;
- розглянути процес завантаження агрегатів.
Процес завантаження таблиць фактів буває двох типів: початкове завантаження та періодичне завантаження змін.
Проблеми, пов'язані з початковим завантаженням, полягають у тому, що з великою ймовірністю ви не отримаєте коректних історичних даних через великі обсяги даних. Тому важливо оцінити, який тип завантаження для якої таблиці фактів найкраще підходить.
Зазначимо, що в процесі ETL таблиці вимірювання повинні оновлюватися до оновлення таблиць фактів, оскільки релевантні рядки таблиць вимірювань повинні бути розміщені длянових фактів.
Класифікація типів джерел даних
Джерела даних для ХД можна розбити такі основні типи.
- Чи не корпоративні джерела даних:
- моментальні знімки - повна копія джерела;
- специфічні джерела даних – успадковані системи;
- журнали транзакцій БД джерел - переписуються лише зміни;
- набори даних, які отримуються в результаті запиту SQL.
Зазначимо, що стратегія отримання даних значною мірою залежить від типу джерела даних.
Елементи ETL-процесу
Вилучення даних
Метою процесу вилучення даних є швидке вилучення релевантних даних із джерел даних.
Процес вилучення даних із джерел даних можна розбити на такі основні типи:
- Вилучення даних за допомогою додатків, заснованих на виконанні SQL-команд. Ці програми функціонують спільно з іншими програмами систем джерел даних;
- вилучення даних за допомогою вбудованих у СУБД механізмів імпорту/експорту даних. Використання таких механізмів зазвичай забезпечує більш швидке вилучення даних , ніж за допомогою команд SQL;
- вилучення даних за допомогою спеціально розроблених додатків.
Процес отримання даних може виконуватися щодня, щотижня або, в окремих випадках, щомісяця. Зазначимо, що існує цілий клас систем бізнес-аналітики, які вимагають отримання даних у режимі реального часу: наприклад, системи, що аналізують біржові операції (кожну секунду), або системи телекомунікацій.
Процес вилучення даних може виконуватися або серед оперативних систем обробки даних (джерел), або серед функціонування ХД.
Перетворення даних
Процес перетворення даних джерел включає наступні основні дії.
- Перетворення типів даних:
- перетворення , пов'язані з кодуванням даних, наприклад, EBCDIC -> ASCII/UniCode;
- перетворення рядкових даних;
- перетворення форматів даних для представлення дати або часу.
Як правило, дані джерел не мають необхідний рівень якості даних . Зауважимо, що дані у ХД мають бути:
- точними – дані повинні містити правильні кількісні значення метрик або давати пояснення, чому неможливо мати такі значення;
- повні – користувачі ХД повинні знати, що мають доступ до всіх релевантних даних;
- узгодженими – ніякі протиріччя даних не допускаються: агрегати повинні точно відповідати докладним даним;
- унікальними – одні й самі об'єкти предметної області повинні мати однакові найменування та ідентифікуватися в ХД однаковими ключами;
- актуальними – користувачі ХД повинні знати, з якою частотою дані оновлюються (тобто яку дату дані дійсні).
Для забезпечення якості дані під час перетворення піддаються процедурі очищення. Процедура очищення даних необхідна, оскільки системи бізнес-аналітики не працюють з неузгодженими та неточними даними, інакше бізнес-аналіз стає безглуздим.
Очищення даних можна розділити на такі типи:
Процедури очищення також включають створення міток статусу фактів у таблицях вимірювання (нормальний, ненормальний, неможливий, що виходить за межі, аналізований чи ні і т.д.), розпізнавання випадкових і зашумлених значень (заміщення їх NULL-значенням або оцінкою), уніфікація використання NULL-значень, маркування фактів із статусом, що змінився (наприклад, покупець анулював контракт), агрегування фактів і т.п.
завантаження даних
Основна мета процесу завантаження даних полягає у швидкому завантаженні даних у ХД. Зазначимо деякі особливості виконання процесу завантаження даних у ХД.
По-перше, завантаження даних, засноване на використанні команд оновлення SQL, є повільним. Кожна команда SQL виконується СУБД за певним планом виконання, та її обробка включає виконання кількох фаз. Тому завантаження за допомогою вбудованих у СУБД засобів імпорту/експорту є кращим.
По-друге, індекси таблиць завантажуються повільно. У багатьох випадках доцільно видалити індекс та побудувати його заново.
По-третє, слід максимально використовувати паралелізм під час завантаження даних. Вимірювання можуть проводитися одночасно з фактами та секціями таблиць. Аналогічно факти та секції таблиць можуть завантажуватися одночасно з вимірами.
Слід зауважити, що при завантаженні даних повинна бути гарантована цілісність даних, а агрегати повинні бути побудовані і завантажені одночасно з докладними даними.
Налаштування продуктивності завантаження даних у ХД виконується адміністратором ХД за допомогою набору процедур, передбачених використовуваною СУБД.
Таким чином, ми розглянули основні елементи ETL-процесу. Тепер розберемо, як проектувати ETL-процеси.
Проектування процесів перетворення даних за допомогою CASE-інструментів
У комп'ютерних системах організації інформація зберігається у різних БД систем оперативної обробки даних, корпоративних додатках та ХД. Для використання цієї інформації потрібна її систематизація. Систематизація інформаціїпризводить до вирішення завдань комбінування інформації з різних джерел, перетворення її до єдиного формату для корпоративної звітності та інтелектуального аналізу даних.
Для вирішення поставленої задачі використовуються дві технології -технологія ETL-процесів і технологія процесів інтеграції даних, або технологія EII - (Enterprise Information Integration) процесів.
Як уже зазначалося в цій лекції, ETL є процесом у складуванні даних, який виконує три функції в одному програмному середовищі: читання даних з певних джерел (витяг), перетворення даних відповідно до прийнятих угод (перетворення) та запис перетворених даних у джерело призначення ( завантаження).
EII комбінує необроблені дані за допомогою управління та організації запитів до різних систем без попередньої агрегації контенту. Отримані дані не поміщаються, як правило, на зберігання будь-якіх БД або ХД.
CASE-інструменти надають графічне середовище для моделювання та документування ETL-і EII-процесів. У CASE PowerDesigner для цього служить модель руху даних (Information Liquidity Model, або ILM).
ILM надає проектувальнику ХД засоби моделювання та аналізу перетворення даних як на загальному рівні розгляду, так і на детальному рівні розгляду.
- Діаграма руху даних (Information liquidity diagram) – це діаграма високого рівня, яка дозволяє моделювати перетворення даних за допомогою визначення:
- вхідних джерел даних(БД, XML-документів, бізнес-процесів, неструктурованих файлів);
- процесу перетворення(Transformation process), позиції, де перетворення виконуються.Процес перетворення включає набір діаграм перетворення (transformation diagrams), які описують перетворення даних на більш детальному рівні;
- вихідних джерел даних(БД, XML-документів, неструктурованих файлів).
На рис. 15.6 наведено приклад того, як можуть бути пов'язані вхідні та вихідні джерела даних на високому рівні та як перетворення моделюються на діаграмах нижчого рівня.

Моделювання руху даних (Information Liquidity Modeling)
Рух даних - одне з головних питань для будь-якої організації. Моделювання руху даних дозволяє визначити моделі, де дані генеруються, де завантажуються в систему і як вони перетворюються в процесі їх використання.
PowerDesignerInformation Liquidity Model (ILM) є графічним інструментом моделювання руху даних, який дозволяє побудувати моделі:
- реплікації даних (Data replication) – дані реплікуються з БД джерела БД призначення за допомогою механізму реплікації, такого як Replication Server ;
- перетворення даних (Data transformation) – дані з різних джерел об'єднуються для того, щоб бути витягнутими, перетвореними та завантаженими в інше джерело за допомогою процесу ETL (Extract Transform and Load) та EII (Enterprise Information Integration).
Тепер побудуємо модель руху даних (ILM), що містить діаграму руху даних (Information Liquidity Diagrams), діаграму управління перетворенням (Transformation Control Flow Diagrams) та діаграми перетворення даних (Data Transformation Diagrams), і створимо тим самим модель ETL-процесу.
Створення ILM-моделі
Для того щоб створити ILM-модель, необхідно виконатинаступну послідовність дій.
- Вибрати пункт менюFile -> New
В результаті на екрані буде показано діалогове вікно як на рис. 15.7.

Таким чином, ILM -модель створена. Тепер її потрібно заповнити діаграмами.
Створимо діаграму перетворення. Діаграма перетворення є діаграмою високого рівня документування ETL - і EII -процесів. На ній показуються вхідні та вихідні джерела даних, що залучаються до процесу перетворення. Джерела пов'язуються процесом перетворення, що визначається наступних діаграмах перетворення даних .
Припустимо, в наш ХД Giant Corp дані надходять з наступних джерел: двох оперативних БД системи організації Small Corp та Acme, моделі бізнес-процесів Small Corp Role та XML-моделі Acme Role.
За допомогою панелі інструментів (рис. 15.8) розмітимо об'єкти моделі.