- •6.050103 - «Програмна інженерія»
- •Списокскорочень
- •Семестровий модуль 1 Змістовний модуль 1 Системи підтримки ухвалення рішення лекція №1 Введення в бізнес-інтелект
- •Питання для самоперевірки
- •Лекція №2 Поняття сховища даних
- •Питання для самоперевірки
- •Змістовний модуль 2 olap-системи лекція №3 Аналітичні (olap) системи
- •Питання для самоперевірки
- •Лекція №4 Архітектура сховища даних
- •Питання для самоперевірки
- •Змістовний модуль 3 Багатомірні куби Лекція №5 Багатомірний куб. Основні поняття
- •Питання для самоперевірки
- •Лекція №6 Ієрархії вимірів. Схеми кубу «зірка» та «сніжинка»
- •Питання для самоперевірки
- •Лекція №7 Агрегація даних у багатомірному кубі
- •Лекція №8 Агреговані значення для різних видів вимірів
- •Питання для самоперевірки
- •Семестровий модуль 2 Змістовний модуль 4 Підготовка даних для сд лекція №9 Витяг, перетворення й завантаження даних
- •Питання для самоперевірки
- •Лекція №10 Очищення даних
- •Питання для самоперевірки
- •Лекція №11 Очищення даних (продовження)
- •Питання для самоперевірки
- •Змістовний модуль 5 Мова багатомірних виражень mdх лекція №12 Мова багатомірних виражень mdx. Основні поняття
- •Питання для самоперевірки
- •Лекція №13 Мова багатомірних виражень mdx. Запит до кубу
- •Питання для самоперевірки
- •Лекція №14 Функції мови багатомірних виражень mdx
- •Ці запити повертають різні результати.
- •Питання для самоперевірки
- •Змістовний модуль 6 Проблеми побудови сд лекція №15 Ключові показники ефективності
- •Питання для самоперевірки
- •Список літератури
Питання для самоперевірки
У чому відмінність між збалансованою й незбалансованою ієрархіями?
У чому відмінність між збалансованою й нерівною ієрархіями?
Що загального між збалансованою й нерівною ієрархіями?
Які типи фактів Ви знаєте?
Опишіть особливості схеми «зірка».
Опишіть особливості схеми «сніжинка».
Дайте порівняльний аналіз схем «зірка» і «сніжинка».
Які операції над кубами Ви знаєте?
Методичні вказівки до лекції: [2, с. 40–44] ; [3, с. 80-86]; [5, с. 971–976, 984]; [8,с. 30–32].
Вправи
Приведіть приклад збалансованої, незбалансованої й нерівної ієрархії.
Приведіть приклади декількох ієрархій для виміру Час.
Приведіть приклади декількох ієрархій для виміру Товар.
Приведіть приклад адитивного, неадитивного й полуадитивного параметра для предметної області «Аптека».
Дайте приклад схеми «зірка» і «сніжинка» для предметної області «Агентство нерухомості».
Приведіть приклад двовимірного представлення різних типів для куба із предметної області вправи 5.
Лекція №7 Агрегація даних у багатомірному кубі
Розглядаються наступні питання:
схема агрегування даних для формування куба;
розрахунок розміру куба;
класифікація агрегуючих функцій;
види запитів до кубів;
«вибух» даних;
стандартне представлення куба;
загальні стратегії обчислення кубів;
види параметрів.
Розглянемо приклад
Таблиця фактичних даних |
|||
Регіон |
Продукт |
Час |
Продаж |
Р1 |
Книги |
Весна |
9 |
Р1 |
Їжа |
Осінь |
3 |
Р2 |
Книги |
Осінь |
6 |
-
Куб з агрегованими значеннями
Агрегуюча функція - AVG
Регіон
Продукт
Час
AVG (Продаж)
Р1
Книги
Весна
9
Р1
Їжа
Осінь
3
Р2
Книги
Осінь
6
Р1
Книги
All
9
All
Книги
Весна
9
…
Р2
All
All
6
All
Їжа
All
3
All
All
Весна
9
All
All
All
6
Схема агрегування даних для формування куба показана на рис.9.
Розмір
куба даних визначається по формулі
,
де d – кількість вимірів, ni
– кількість різних значень у вимірі,
«+1» відповідає значенню All, агрегуючему
всі можливі значення виміру.
Таким чином, при базовій таблиці в 3 рядки результуючий куб у вигляді простої реляційної таблиці, у якій прямо зберігаються всі агрегати, має 27 рядків.
По кожному вимірі можна задавати власну (і не одну) функцію агрегації.
З погляду складності розпаралелювання агрегуючі функції можна поділити на наступні класи:
Дистрибутивні функції – дозволяють розбивати вхідні дані й обчислювати окремі підсумки, які потім можна поєднувати, наприклад, sum, count, min, max.
Алгебраїчні
функції
– можна представити комбінацією з
дистрибутивних функцій (наприклад,
Average() можна представити як
.
Холістичні функції – неможливо обчислювати на часткових даних або представляти яким-небудь образом, наприклад, rank().
Рис. 9. Агрегування даних
Види запитів до кубів
Крапкові запити (Point queries) – вертається агрегуюче значення міри в якійсь комірці куба, координати якої задаються в запиті. Всі інші запити можна переписати, використовуючи серії крапкових запитів. Тому час виконання крапкових запитів є однієї з найважливіших характеристик алгоритму зберігання OLAP даних.
SELECT SUM(продажі) FROM Продажі
WHERE (регіон = Р1) AND (продукт = книги) AND (сезон = весна)
Результат: комірка (Р1, книги, весна)
Інтервальні запити (Range queries) – вертається деякий набір крапок куба, що задовольняє заданим умовам.
SELECT регіон, продукт, SUM(продажі) FROM Продажі
WHERE ((регіон = Р1) OR ((регіон = Р2)) AND ((продукт = книги) OR (продукт = їжа))
GROUP BY регіон, продукт
Результат: продажі книг і їжі в Р1 і Р2
Зворотні запити (Iceberg queries) – на відміну від крапкових й інтервальних запитів, для відповіді на запит даного типу використовуються значення міри (агрегуючі значення). Зворотний запит повертає всі комірки куба, що задовольняють обмеженням, накладеним на значення міри користувачем.
SELECT регіон, продукт, час, AVG(продажі)
FROM Продажі
GROUP BY регіон, продутий, час
HAVING AVG(продажі) >= 6
(в умові HAVING полягає обмеження на значення міри)
«Вибух» даних
При додаванні вихідних даних у куб обсяг даних і час обчислення куба ростуть експоненційльно, тому що необхідно розраховувати агрегати по кожному з вимірів. Наприклад, десятивимірний куб без ієрархії усередині вимірів з кількістю значень 100 для кожного виміру приводить до структури з 10110=1,120 комірками. Навіть якщо припустити розрідженість 1 до 106 (тобто тільки один з мільйона комірок містить дані), куб однаково буде мати 1,114 непустих комірок. Якщо порожні значення досить легко стискуються, то «вибухом даних» називають ріст кількості агрегатів по всіх вимірах, які необхідно обчислити. Тобто додавання однієї комірки в куб з 10 вимірами, що містять підсумки, приводить до необхідності порахувати порядку 210 підсумкових агрегатів.
Уважається стандартним представлення куба у вигляді графа, у якому вузли визначають представлення (view) для відповіді на запит (рис. 10). Для кожного вузла мітка позначає виміри, по яких у представленні є фактичні дані, за значеннями ALL виконується агрегація.
Рис.10. Представлення куба у вигляді графа
У даній структурі куба матеріалізується набір представлень, що містить агреговані дані. Подібні представлення також називаються підкубами (cuboids).
Вибір підкубов для матеріалізації визначає майбутню продуктивність системи. Можна одержати набір уявлень, при використанні якого для виконання запитів буде вироблятися не більше 1-2 агрегацій (по одному вимірі), що означає дуже швидку відповідь на запит. І навпаки, можлива ситуація, у якій для відповіді на запит необхідно буде створювати всі агрегації від фактичних даних (базового куба). Однак кількість підкубів експоненціально залежить від кількості вимірів (як 2d, де d – кількість вимірів), тому для повної матеріалізації може вимагатися величезний об'єм пам'яті й місця на жорсткому диску.
Часткова матеріалізація пропонує вибір між часом створення кубів і розміром збережених даних, з одного боку, і часом відгуку, з іншої. Замість обчислення повного куба можна обчислити лише деякі з його підкубів або навіть частин підкубів.
Загальні стратегії обчислення кубів
Поза залежністю від методу зберігання (ROLAP, MOLAP), існує набір прийомів, що дозволяють зменшити час створення й обробки запитів до OLAP-Кубів.
Сортування, хешування, угруповання
Під час обчислення куба агрегуються рядки (або комірки), що мають однакові значення по всіх вимірах (так звані дублікати), тому важливо використовувати сортування й групувати дані, щоб спростити обчислення подібних агрегатів. Приміром, якщо необхідно порахувати загальні продажі по регіонах, продуктам, порі року, то більш ефективно сортувати кортежі по регіонах, потім по сезонах і групувати по продуктах.
Одночасне агрегування й хешування проміжних результатів
Ефективніше створювати підкуби високих рівнів з підкубів низьких рівнів, ніж з базової таблиці. Більш того, одночасне обчислення агрегатів може дозволити скоротити дорогі операції звертання до жорстких дисків.
Приміром, для розрахунку продажів по регіонах можна використовувати проміжні результати, отримані при розрахунку підкуба більш низького рівня продажів по регіонах, по днях.
Агрегування від найменшого підкуба-нащадка при наявність багатьох підкубів-нащадків
При обчисленні підкуба високого порядку часто більш ефективно використовувати найменший із уже розрахованих підкубів-нащадків. Приміром, для розрахунку куба продажів по регіонах за умови наявності 2-х розрахованих підкубів (по регіонах і рокам, і по регіонах і продуктам), мабуть, ефективніше використовувати куб по регіонах і рокам, тому що він містить менше комірок.
При створенні кубів типу айсберг можна використовувати наступне правило: «Якщо вказана комірка не задовольняє умові, що накладається на мінімальне значення міри, то жоден з її нащадків не задовольняє умові». Така умова може бути використана для скорочення об'єму оброблюваних даних. Однак дана умова вірна тільки для дистрибутивних агрегуючих функцій.
Параметри складаються із двох компонентів:
чисельна характеристика факту, наприклад, ціна або дохід від продажів;
формула, звичайно проста агрегативна функція, наприклад, сума MIN, MAX, AVG, COUNT, що може поєднувати кілька значень параметрів в одне. Але в деяких випадках можуть використовуватися й більш складні функції – дисперсії, середньоквадратичне відхилення й т.д.).
З погляду обчислень можна виділити три різних класи параметрів.
Адитивні параметри можуть змістовним образом комбінуватися в будь-якому вимірі. Наприклад, має сенс підсумувати загальний обсяг продажів для продукту, місця розташування й часу, оскільки це не викликає накладення серед явищ реального світу, які генерують кожне із цих значень.
Напівадитивні параметри, які не можуть комбінуватися в одному або декількох вимірах. Наприклад, підсумовування запасів по різних товарах і складам має сенс, але підсумовування запасів товарів у різний час безглуздо, оскільки той самий фізичний предмет може враховуватися кілька разів.
Неадитивні параметри не комбінуються в будь-якому вимірі, звичайно тому, що обрана формула не дозволяє об'єднати середні значення низького рівня в середнім значенні більш високого рівня.
Адитивні й неадитивні параметри можуть описувати факти будь-якого роду, у той час як напівадитивні параметри, як правило, використовуються з миттєвими знімками.
Питання для самоперевірки
Як розраховується розмірність куба з агрегованими значеннями?
Які види агрегуючих функцій ви знаєте?
Перелічите види запитів до багатомірних кубів. Поясніть розходження між ними.
Що розуміється під «вибухом» даних?
Що втримується у вузлах графа, який представляє куб?
Поясніть зміст різних способів прискорення обробки даних багатомірного куба.
Які параметри називаються неадитивними?
У чому відмінність між неадитивними й напівадитивними параметрами?
Методичні вказівки до лекції: [3, с. 458–461].
Вправи
Задайте таблицю фактів, що містить у якості міри екзаменаційні оцінки студентів, із чотирма вимірами.
Оціните кількість значень у кожному вимірі із вправи 1. Розрахуйте розмір багатомірного куба з агрегованими значеннями для представлення фактичних даних.
Побудуйте граф для куба із вправи 3.
