Ядро системи OLAP. Частина 1 - принципи побудови
Механізм OLAP є на сьогодні одним із популярних методів аналізу даних. Є два основні підходи до вирішення цього завдання. Перший називається Multidimensional OLAP (MOLAP) – реалізація механізму з допомогою багатовимірної бази даних за сервера, а другий Relational OLAP (ROLAP) – побудова кубів " на льоту " з урахуванням SQL запитів до реляційної СУБД. Кожен із цих підходів має свої плюси та мінуси. Їхній порівняльний аналіз виходить за рамки цієї статті. Ми опишемо нашу реалізацію ядра настільного ROLAP модуля.
Таке завдання виникло після застосування системи ROLAP, побудованої на основі компонентів Decision Cube, що входять до складу Borland Delphi. На жаль, використання цього набору компонентів показало низьку продуктивність великих обсягах даних. Гостроту цієї проблеми можна знизити, намагаючись відсікти якнайбільше даних перед подачею їх для побудови кубів. Але цього не завжди досить.
В Інтернеті та пресі можна знайти багато інформації про OLAP системи, але практично ніде не сказано про те, як це влаштовано всередині. Тому вирішення більшості проблем нам давалося методом спроб та помилок.
Схема роботи
Загальну схему роботи настільної системи OLAP можна представити наступним чином:
Алгоритм роботи наступний:
- Отримання даних у вигляді плоскої таблиці або результату виконання запиту SQL.
- Кешування даних та перетворення їх до багатовимірного куба.
- Відображення збудованого куба за допомогою крос-таблиці або діаграми і т.п. У загальному випадку до одного куба може бути підключена довільна кількість відображень.
Розглянемо як така система може бути влаштована усередині.Почнемо ми це з того боку, який можна подивитися та помацати, тобто з відображень.
Відображення, що використовуються в OLAP системах, найчастіше бувають двох видів – крос-таблиці та діаграми. Розглянемо крос-таблицю, яка є основним та найбільш поширеним способом відображення куба.
Крос-таблиця
На наведеному нижче малюнку жовтим кольором відображені рядки і стовпці, що містять агреговані результати, світло-сірим кольором відзначені осередки, в які потрапляють факти і темно-сірим осередки, що містять дані розмірностей.
Таким чином, таблицю можна розділити на такі елементи, з якими ми і працюватимемо надалі:
Заповнюючи матрицю з фактами, ми маємо діяти так:
- На підставі даних про вимірювання визначити координати елемента, що додається в матриці.
- Визначити координати стовпців і рядків підсумків, на які впливає елемент, що додається.
- Додати елемент у матрицю та відповідні стовпці та рядки підсумків.
При цьому потрібно відзначити те, що отримана матриця буде сильно розрідженою, чому її організація у вигляді двовимірного масиву (варіант, що лежить на поверхні) не тільки нераціональна, але, швидше за все, і неможлива у зв'язку з великою розмірністю цієї матриці, для зберігання якої не не вистачить жодного обсягу оперативної пам'яті. Наприклад, якщо наш куб містить інформацію про продаж за один рік, і якщо в ньому буде всього 3 виміри – Клієнти (250), Продукти (500) та Дата (365), то ми отримаємо матрицю фактів наступних розмірів:
Кількість елементів = 250 х 500 х 365 = 45 625 000
І це при тому, що заповнених елементів у матриці може бути лише кілька тисяч. Причому чим більше кількість вимірювань, тим більш розрідженою буде матриця.
Тому для роботи з цією матрицею потрібно застосувати спеціальні механізми роботи з розрідженими матрицями. Можливі різні варіанти організації розрідженої матриці. Вони досить добре описані в літературі з програмування, наприклад, у першому томі класичної книги "Мистецтво програмування" Дональда Кнута.
Розглянемо тепер, як можна визначити координати факту, знаючи відповідні виміри. Для цього докладніше розглянемо структуру заголовка:
При цьому можна легко знайти спосіб визначення номерів відповідного осередку та підсумків, у які він потрапляє. Тут можна запропонувати кілька підходів. Один із них – це використання дерева для пошуку відповідних осередків. Це дерево може бути збудовано при проході за вибіркою. Крім того, можна легко визначити аналітичну рекурентну формулу для обчислення необхідної координати.
Підготовка даних
Дані, що зберігаються в таблиці, необхідно перетворити для їх використання. Так, з метою підвищення продуктивності при побудові гіперкуба, бажано знаходити унікальні елементи, що зберігаються в стовпцях, що є вимірами куба. Крім того, можна проводити попереднє агрегування фактів для записів, що мають однакові значення розмірності. Як було зазначено вище, нам важливі унікальні значення, що у полях вимірів. Тоді для їх зберігання можна запропонувати таку структуру:
При використанні такої структури ми значно знижуємо потребу у пам'яті. Що досить актуально, т.к. Для збільшення швидкості роботи бажано зберігати дані в оперативній пам'яті. Крім того, зберігати можна тільки масив елементів, а їх значення вивантажувати на диск, так як вони будуть нам потрібні лише при виведенні крос-таблиці.
Бібліотека компонентів CubeBase
Описані вище ідеї були покладені в основу створення бібліотеки компонентів CubeBase.
TСubeSource здійснює кешування та перетворення даних у внутрішній формат, а також попереднє агрегування даних. Компонент TСubeEngine здійснює обчислення гіперкуба та операції з ним. Фактично він є OLAP-машиною, що здійснює перетворення плоскої таблиці в багатовимірний набір даних. Компонент TCubeGrid виконує виведення на екран крос-таблиці та керування відображенням гіперкуба. TСubeChart дозволяє побачити гіперкуб у вигляді графіків, а компонент TСubePivote керує роботою ядра куба.
Порівняння продуктивності
Даний набір компонент показав набагато вищу швидкодію, ніж Decision Cube. Так, на наборі з 45 тис. записів компоненти Decision Cube зажадали 8 хв. на побудову зведеної таблиці. CubeBase здійснив завантаження даних за 7сек. та побудова зведеної таблиці за 4 сек. Під час тестування на 700 тис. записів Decision Cube ми не дочекалися відгуку протягом 30 хвилин, після чого зняли завдання. CubeBase здійснив завантаження даних за 45 сек. та побудова куба за 15 сек.
На обсягах даних у тисячі записів CubeBase відпрацьовував у десятки разів швидше за Decision Cube. На таблицях у сотні тисяч записів – у сотні разів швидше. А висока продуктивність – один із найважливіших показників OLAP систем.
OLAP система: що це?
Що таке OLAP система і чому вона така важлива для бізнес-аналітики? Якщо ви цікавитеся обробкою даних і прагнете зрозуміти, як ефективно аналізувати великі масиви інформації, системи OLAP можуть стати ключовим інструментом.Ці технології дозволяють збирати, структурувати та аналізувати дані в реальному часі, надаючи менеджерам та аналітикам потужні можливості для прийняття рішень. У статті ми докладно розберемо, як працюють OLAP системи, їх переваги та чим вони відрізняються від інших методів обробки даних. Дізнайтеся, чому OLAP є основним інструментом для сучасної бізнес-аналітики.
OLAP (Online Analytical Processing) – це технологія, яка дозволяє користувачам ефективно аналізувати дані з різних джерел, забезпечуючи швидкий доступ до інформації для прийняття обґрунтованих бізнес-рішень. У цій статті ми докладно розглянемо, що таке OLAP-куби, як працює OLAP-технологія, її переваги та недоліки, а також як правильно вибрати OLAP-рішення для вашої компанії.
Що таке OLAP куб?
OLAP-куб - це багатовимірна структура даних, яка зберігає інформацію у вигляді осередків, організованих за різними вимірами. Уявіть куб, у якого є три або більше вимірювань, таких як час, продукт і географія. Кожен елемент у цьому кубі відповідає певному значенню, яке можна аналізувати.
Куби дозволяють користувачам легко навігувати за даними та робити вибірки на основі різних критеріїв. Наприклад, якщо у вас є куб, який зберігає дані про продажі, ви можете швидко отримати інформацію про продаж певного продукту за певний період часу у певному регіоні. Це робить OLAP-куби особливо корисними для бізнес-аналізу, де потрібна робота з більшими обсягами даних.
OLAP-куби можуть бути різних типів:
- Багатовимірні куби: представляють дані у вигляді багаторівневих структур з кількома вимірами
- Реляційні куби: зберігають дані у традиційних реляційних базах даних, але забезпечують багатовимірний доступом до даних через спеціальні запити.
Використання OLAP-кубів спрощує процес аналізу, що дозволяє користувачам виконувати складні запити без необхідності знання складних SQL-запитів. Це робить дані доступнішими для бізнес-аналітиків та інших користувачів, які можуть не мати глибоких технічних знань.
Що таке OLAP-технологія
OLAP-технологія – це набір методів та інструментів, що дозволяють аналізувати дані у багатовимірних моделях. Основна мета OLAP – надати користувачам можливість виконувати складні аналітичні запити та отримувати результати швидко та ефективно. OLAP-системи можуть обробляти великі обсяги даних, що робить їх незамінними у бізнес-аналітиці та бізнес-розвідці.
OLAP-технологія ділиться на два основні підходи:
- ROLAP (Relational OLAP): використовує бази даних для зберігання даних. Цей підхід дозволяє працювати з великими обсягами даних, але може бути менш ефективним, ніж MOLAP, коли справа стосується швидкості.
- MOLAP (Multidimensional OLAP): зберігає дані у спеціалізованих багатовимірних сховищах. Це забезпечує високу продуктивність та швидку обробку запитів, але може вимагати більше ресурсів для зберігання даних.
OLAP-системи дозволяють користувачам швидко аналізувати дані, створюючи різні уявлення та виконуючи агрегації на льоту. Це означає, що користувачі можуть легко проводити аналіз різних рівнях деталізації, наприклад, від загального огляду до детального аналізу окремих транзакцій.
Як виглядають OLAP-куби
OLAP-куби візуально є багатовимірними структурами, які можуть бути відображені у вигляді таблиць, діаграм або графіків.Кожен куб має виміри (наприклад, час, продукт, регіон) та факти, які є кількісними даними (наприклад, продажі, витрати).
При візуалізації OLAP-кубів дані можуть бути представлені у вигляді:
- Таблиць: показують значення вибраних вимірювань, що дозволяє швидко переглянути інформацію.
- Графіків: таких як стовпчасті або лінійні графіки, які візуалізують тенденції та зміни з часом.
- Дерев: які показують ієрархію даних та дозволяють легко заглиблюватися в деталі.
За допомогою OLAP-кубів користувачі можуть легко прокопувати дані, переходячи від загальних сум до більш докладних значень. Наприклад, аналізуючи продаж за рік, ви можете швидко побачити продаж по місяцях, а потім деталізувати інформацію по днях.
Як працює OLAP?
OLAP працює на основі трьох основних операцій: slice (нарізка), dice (диск) і pivot (поворот). Ці операції дозволяють користувачам маніпулювати даними та отримувати потрібні уявлення.
- Slice (нарізка): це операція, яка дозволяє отримати підмножину даних із куба по одному виміру. Наприклад, ви можете отримати всі продажі лише за 2023 рік, залишаючи інші виміри незмінними.
- Dice (диск): ця операція дозволяє вибрати підмножину даних, враховуючи кілька вимірів. Наприклад, ви можете отримати продажі лише для певного продукту у конкретному регіоні та за певний період часу.
- Pivot (поворот): дозволяє змінити орієнтацію даних, щоб отримати різні уявлення. Це дозволяє користувачам бачити дані з різних кутів та покращує розуміння аналітики.
OLAP-системи можуть працювати з великим обсягом даних та забезпечують високу продуктивність завдяки кешування та оптимізації запитів.Це робить їх ідеальними для бізнес-аналізу, де потрібна швидка обробка та аналіз даних.
Багатовимірні куби даних
Основою OLAP-систем є багатовимірні куби даних, які дозволяють аналізувати інформацію з різних боків. Це ключовий елемент, що забезпечує гнучкість та потужність аналітичних можливостей OLAP.
| Вимірювання | Опис | приклад |
| Продукт | Аналіз за категоріями товарів | Електроніка, одяг |
| Час | Аналіз за тимчасовими періодами | Квартали, місяці |
| Регіон | Аналіз за географічним розташуванням | Європа, Азія |
Як використовувати OLAP?
OLAP використовується в різних областях, включаючи фінансову звітність, управління запасами, аналіз ринку та багатьма іншими. Основні сценарії використання OLAP включають:
- Фінансова аналітика: компанії використовують OLAP для аналізу фінансових показників, складання звітів та прогнозування. Це допомагає краще розуміти доходи, витрати та прибуток.
- Маркетинговий аналіз: OLAP допомагає аналізувати результати маркетингових кампаній, досліджувати поведінку клієнтів та виявляти ринкові тренди.
- Управління запасами: компанії використовують OLAP для аналізу даних про запаси, виявлення вузьких місць та оптимізацію ланцюжка поставок.
- Бізнес-звіти: OLAP дозволяє легко створювати деталізовані звіти для керівництва та акціонерів, спрощуючи процес підготовки даних для прийняття рішень.
Завдяки гнучкості та здатності обробляти великі обсяги даних, OLAP знаходить застосування в будь-якій організації, яка прагне ефективного бізнес-аналітики.
Переваги OLAP
OLAP має безліч переваг, які роблять його привабливим для бізнесу:
- Швидкий доступ до даних: OLAP дозволяє швидко отримувати відповіді на складні аналітичні запити, що покращує прийняття рішень.
- Багатовимірний аналіз: користувачі можуть аналізувати дані з різних точок зору та на різних рівнях деталізації.
- Інтуїтивно зрозумілий інтерфейс: багато OLAP-систем пропонують візуалізацію даних, що робить їх доступними для користувачів без глибоких технічних знань.
- Гнучкість: OLAP дозволяє легко налаштовувати та змінювати уявлення даних, що допомагає адаптуватися до змін у бізнесі.
- Підтримка великого обсягу даних: OLAP-системи здатні обробляти та аналізувати великі обсяги даних, що робить їх ідеальними для великих організацій.
Недоліки OLAP
Незважаючи на безліч переваг, OLAP також має деякі недоліки:
- Вартість впровадження: OLAP-системи можуть бути дорогими у розробці та впровадженні, особливо для невеликих компаній.
- Складність налаштування: для успішного розгортання OLAP може знадобитися значний час та ресурси на налаштування та інтеграцію з існуючими системами.
- Вимоги до ресурсів: OLAP-системи можуть вимагати значних обчислювальних ресурсів та обсягу пам'яті для обробки великих обсягів даних.
- Необхідність навчання: користувачам може знадобитися час для освоєння роботи з OLAP-кубами та інтерфейсами, особливо якщо вони не мають досвіду роботи з аналітичними системами.
Вибір OLAP-рішення
При виборі рішення OLAP важливо враховувати кілька ключових факторів:
- Розмір та складність даних: оцініть обсяг і структуру даних, з якими буде працювати система, щоб вибрати оптимальне рішення.
- Бюджет: визначте бюджет для впровадження та підтримки OLAP-системи, включаючи ліцензії, навчання та технічну підтримку.
- Інтеграція з існуючими системами: переконайтеся, що вибране рішення OLAP може бути легко інтегровано з іншими системами, що використовуються у вашій організації.
- Інтерфейс користувача: оберіть систему з інтуїтивно зрозумілим інтерфейсом, щоб користувачі могли легко отримувати необхідні дані.
- Підтримка та навчання: перевірте, чи надає постачальник підтримку та навчання для користувачів, що може спростити процес впровадження.
OLAP-системи пропонують потужні інструменти для аналізу даних, і правильний вибір рішення може значно підвищити ефективність бізнесу, покращуючи процес прийняття рішень та сприяючи успішному управлінню.
Реклама. Інформація про рекламодавця за посиланнями у статті.
Орлов Олександр (Засновник блогу)
Дякую, що ділитеся своїм досвідом у коментарях. Є питання, напишіть на пошту [email protected]
Поставте оцінку статті
Отримайте консультацію
з імпортозаміщення
BI-системи для вашої компанії
Аналіз даних часто нагадує складне рівняння з багатьма невідомими. Для отримання точних результатів слід враховувати комплекс змінних. Як і в повсякденному житті, де для прийняття зважених рішень важливо брати до уваги велику кількість різних аспектів, так і аналіз даних потребує багатомірного підходу.
Наприклад, щоб вибрати місце для проживання, потрібно враховувати комплекс умов, включаючи вартість житла, інфраструктуру, близькість до місця роботи та якість шкіл для дітей. Так само і в аналізі даних для прийняття рішення необхідно враховувати низку обставин. Розглядаючи дані з різних сторін, ми можемо отримати більш повноцінне уявлення про питання і прийняти найкраще рішення на підставі об'єктивних даних.
Ця багатовимірність дозволяє розглядати ситуацію під різними кутами, виявляючи нюанси та взаємозв'язки, які інакше могли б залишитися непоміченими.В галузі аналізу даних такий багатовимірний підхід забезпечують OLAP-куби.
Оперативна аналітична обробка даних OLAP (Online Analytical Processing) – це технологія, яка готує агреговану інформацію та структурує дані у багатовимірному вигляді, за рахунок чого досягається висока швидкість отримання відповідей на аналітичні запити.
OLAP-куби є масивами даних, які можна порівняти з гіперкубом в математиці. На відміну від двовимірних таблиць, що використовуються в реляційних базах даних, OLAP-куби мають кілька вимірювань, що дозволяє аналізувати дані по багатьох критеріїв одночасно.
Розберемося на прикладі: аналіз демографії з показниками народжуваності та смертності в розрізі дат, регіонів, статі та типу місцевості. Кожен з цих вимірів можна подати у вигляді окремої осі в багатовимірному просторі. OLAP-куб для цього завдання матиме 4 виміри: дата, регіон, підлога та тип місцевості. Кожен осередок куба міститиме значення народжуваності та смертності для конкретної комбінації цих вимірювань (Малюнок 1).
На основі сховища побудований куб, у структурі даного куба (на малюнку не враховано тип території):
- кількість народжених;
- кількість померлих
- рік;
- квартал;
- місяць
- федеральний округ;
- регіон
Це простий приклад того, що насправді вимірів може бути кілька, але візуально це вже дуже складно уявити.
Таким чином, OLAP-куби надають можливість структурувати дані у багатовимірних масивах, що дає аналітикам гнучкість та самостійність у пошуках відповідей на складні питання.
Переваги OLAP
Популярність технології оперативної обробки даних пов'язана з її особливостями:
- Користувач має гнучкий доступ до даних. Він може самостійно отримати необхідну інформацію протягом короткого періоду часу.
- Дані зберігаються в одному місці, тому немає необхідності враховувати особливості роботи з кожним окремим сховищем, налаштовувати їхню взаємодію та вручну шукати конкретну інформацію.
- Рівень деталізації може сягати рівня первинних даних. Користувач OLAP-системи може сам визначити глибину вибірки, що цікавить. Наприклад, можна зробити узагальнений запит про те, скільки всього було проведено угод у компанії протягом року. А можна додати до нього інформацію про кожну конкретну угоду: дату, суму, з ким вона була проведена і так далі.
Існує декілька моделей для створення OLAP-кубів. Найбільш поширеними є схеми «зірка» та «сніжинка» (Малюнок 2).
«Зірка»: у цій схемі центральну роль грає факт-таблиця, що містить основні показники (наприклад, народжуваність та смертність), а кожен вимір представлено окремою таблицею. Ця схема проста в зберіганні та дозволяє швидко виконувати агрегаційні запити та аналізувати великі обсяги даних.
«Сніжинка»: тут виміри нормалізуються, тобто розбиваються кілька пов'язаних таблиць. Ця схема складніша, але дозволяє економити місце з допомогою зменшення надмірності даних.
Для аналізу даних у багатовимірному просторі використовується спеціальна мова MDX (Multidimensional Expressions). На відміну від SQL, що підходить для роботи з двовимірними даними, MDX розроблено для багатовимірного аналізу.
MDX був розроблений нашим співвітчизником, емігрантом Мошею Пасуманським, і вперше представлений компанією Microsoft у 1997 році як розширення OLE DB (OLE DB for OLAP).У 2001 році випущено стандарт XML for Analysis (XMLA), що включив MDX як частину мови запитів mdXML (запити в ньому обернуті на XML-тег). MDX дозволяє виконувати складні запити до OLAP-кубів, забезпечуючи потужний інструмент для аналізу даних. Ця мова стала стандартом для роботи з OLAP-кубами і його підтримка максимально розвинена в продуктах Microsoft.
Порівняння MDX та SQL не зовсім коректне, оскільки ці мови призначені для різних типів даних. SQL підходить для плоских, двовимірних даних, тоді як MDX дозволяє працювати з багатовимірними даними. MDX дає можливість орієнтуватися в багатовимірному просторі і оперує такими поняттями як: axis (вісь), tuple (кортеж), parent (предок), child (нащадок), sibling (родич). Ці поняття дозволяють будувати складні ієрархічні запити, забезпечуючи глибокий аналіз даних.
Детальніше про мову MDX ми розповіли у нашій статті «Мова багатовимірних виразів MDX. Використання в Alpha BI». Матеріал доступний за посиланням >>
Microsoft SQL Server Analysis Services (SSAS) - Одна з найпопулярніших платформ для роботи з OLAP-кубами. SSAS підтримує MDX та надає багатий функціонал для багатовимірного аналізу даних. Цей продукт став де-факто стандартом для OLAP-кубів завдяки своїй потужності, гнучкості та широким можливостям інтеграції.
Розглянемо питання докладніше.
Процесинг OLAP-кубів у SQL Server Analysis Services (SSAS) включає кілька ключових етапів, що сприяють ефективному аналізу даних.
На першому етапі проводиться вилучення даних із різноманітних джерел, таких як реляційні бази даних або текстові файли.Після завершення вилучення дані проходять етап обробки та агрегації, в ході якого формується структура куба, що складається з вимірювань і фактів. Ця структура дозволяє користувачам виконувати складні аналітичні операції, такі як створення зведених таблиць і багатовимірних звітів, що значно підвищує аналітичну цінність представлених даних.
Розмірності в OLAP-кубах відіграють критичну роль у категоризації даних та забезпечують можливість глибокого аналізу фактів. Вони можуть містити тимчасові, географічні та інші атрибути, що сприяють більш детальному вивченню даних. Метрики розмірностей надають контекст для аналізу, що, у свою чергу, робить звіти наочнішими та інформативнішими, дозволяючи більш точно інтерпретувати результати.
Крім того, Microsoft пропонує функціональність для автоматизації процесингу та оновлення даних, що дозволяє системам залишатися актуальними, не вимагаючи постійного/ручного втручання. Використання таких технологій, як Data Warehousing та ETL-процеси, спрощує керування даними та забезпечує їх точність та доступність.
Процесинг OLAP-кубів та розмірностей у Microsoft надає користувачам ефективні інструменти для аналізу та прийняття рішень на основі даних, що робить його важливим елементом у сучасному бізнесі.
Однак OLAP-куби потрібні не лише Microsoft. Багатомірний аналіз необхідний у різних галузях, інші компанії також пропонують свої рішення.
Наприклад, компанія SAP розробила свої інфокуби, що використовуються для аналізу даних у системі SAP BW (Business Warehouse). Робота з ними здійснюється за протоколом XMLA через MDX, хоча діалект MDX у SAP дещо відрізняється від стандарту.
SAP MDX включає розширення та додаткові оператори, які дозволяють більш ефективно працювати з кастомізованими ієрархіями та вимірюваннями, присутніми в інфокубах SAP BW. Крім того, у SAP MDX може бути змінений синтаксис і семантика деяких команд, щоб більш тісно інтегруватися з функціональністю SAP BW та забезпечити більш високу продуктивність при обробці складних аналітичних запитів. Тобто, хоча обидва діалекти є однією метою — виконанню складних аналітичних операцій — їхні відмінності дозволяють їм бути більш ефективними у відповідних екосистемах.
Також свої рішення для багатовимірного аналізу даних пропонує компанія Pentaho. Вони розробили та виклали у відкритий доступ вихідні коди свого OLAP-сервера Mondrian, який підтримує MDX і є хорошим інструментом для аналітики. Однією з головних переваг Mondrian є його відкритий вихідний код, що дозволяє користувачам гнучко адаптувати та модифікувати сервер для своїх специфічних потреб. Mondrian ідеально підходить для організацій, які шукають економічне та кастомізоване рішення для аналізу даних. Він забезпечує інтеграцію з різними системами баз даних та має широкі можливості з налаштування та оптимізації продуктивності.
Російські вендори частково і поступово відмовляються від OLAP-кубів (MDX) і віддають перевагу Tabular (DAX).
Відмова від OLAP-кубів часто пояснюється еволюцією технологій обробки та аналізу даних, але існуючі аргументи не завжди відображають повну картину.
Якщо розглядати процес обробки великих обсягів даних, то OLAP має явні переваги. Він може справлятися з обсягами даних, які значно перевищують місткість оперативної пам'яті сервера.З іншого боку, Tabular є більш сучасним in-memory рішенням, здатним стискати дані, але обмежене обсягом доступної оперативної пам'яті сервера.
Хоча модель Tabular може успішно застосовуватися в ряді корпоративних BI-систем, для більш масштабних проектів часто краще використовувати більш масштабовану модель OLAP.
OLAP-куби надають можливість для тонкого налаштування та детального керування даними. Це означає, що аналітики можуть налаштувати систему так, щоб вона виконувала саме ті завдання, які потрібні бізнесу, ефективно та з мінімальними витратами ресурсів.
Розглядаючи питання з точки зору гнучкості запитів і виразів, можна зробити висновок, що MDX надає широкі можливості для створення складних аналітичних запитів. Він підтримує складні обчислення, вкладені запити та просунуті функції, що дозволяє створювати більш детальні звіти та аналізи. DAX також є потужною мовою формул, але вона в основному орієнтована на табличні дані і не може повноцінно застосовуватися для багатовимірного аналізу.
DAX добре підходить для багатьох завдань, проте MDX надає все ж таки більше можливостей для специфічних багатовимірних сценаріїв.
Російський конструктор корпоративних аналітичних рішень Alpha BI, розуміючи всі переваги роботи з кубами, не лише продовжує підтримувати OLAP, а й активно розвиває цей напрямок. Використовується власний OLAP-сервер, заснований на Mondrian, який був значно покращений за роки роботи.
В Alpha BI додано вертикальне масштабування, переписано модель доступу на рольову дозвільну, підвищено продуктивність, а також не просто підтримуються всі функції MDX, а й розробляються нові.
Наприклад, для задач процесингу OLAP-кубів та розмірностей OLAP-сервер Alpha BI пропонує ефективні механізми кешування.
Кешування активується при першому запиті до даних: результати обчислень (group by) записуються в оперативну пам'ять OLAP-сервера. Це означає, що всі наступні аналітичні запити витягуватимуть інформацію безпосередньо з кешу, мінімізуючи навантаження на базу даних. Так само кешується і елементи розмірностей - при першому відкритті куба всі необхідні довідкові (select distinct) значення завантажуються в кеш OLAP-сервера і залишаються там для швидкого доступу в майбутньому.
Таким чином, ми спостерігаємо дві категорії запусків: "холодні" - при першому зверненні, коли дані відсутні в кеші, і "гарячі" - коли кеш вже заповнений і результати обчислень доступні миттєво.
Таким чином, ми спостерігаємо дві категорії запусків: "холодні" - при першому зверненні, коли дані відсутні в кеші, і "гарячі" - коли кеш вже заповнений і результати обчислень доступні миттєво.
Також в Alpha BI OLAP-куби можуть будуватися на різних сховищах даних, але є одна важлива умова: таблиці повинні керуватися СУБД PostgreSQL, Oracle або ClickHouse. Це дає можливість створювати куби, які можуть працювати в live-режимі із зовнішніми по відношенню до AlphaBI джерелами даних без необхідності перекачування даних у власне сховище.
Покрокову інструкцію створення OLAP-кубів в Alpha BI та сценарії побудови АХД залежно від бізнес-вступних читайте тут >>
