Что такое olap куб простыми словами
Что такое OLAP-куб и принцип его настройки
OLAP-куб – это инструмент, который напоминает сводную таблицу в Excel.
Принцип работы примерно тот же: сгруппировать по одинаковому признаку числа или даты – и далее делать с ними дополнительные действия или вычисления.
Всё начинается с того, что нужно вытащить числа по каким-то критериям.
Какие есть числа про проект? – Реквизиты-числа в объектах (задачах, например) и в справочниках.
Но нужно не просто взять и всё сложить, а вычленить по какому-то признаку. Этим признаком может быть:
OLAP на яблоках
Фрукт | Количество |
---|---|
Яблоко | 2 |
Груша | 3 |
Апельсин | 1 |
Яблоко | 2 |
Груша | 4 |
Апельсин | 1 |
Яблоко | 7 |
Груша | 4 |
Апельсин | 2 |
Проект | Фрукт | Количество |
---|---|---|
Маши | Яблоко | 2 |
Васи | Груша | 3 |
Маши | Апельсин | 1 |
Васи | Яблоко | 2 |
Маши | Груша | 4 |
Васи | Апельсин | 1 |
Маши | Яблоко | 7 |
Васи | Груша | 4 |
Маши | Апельсин | 2 |
Проект | Фрукт | Количество |
---|---|---|
Маши | Яблоко | 9 |
Груша | 4 | |
Апельсин | 3 | |
Васи | Яблоко | 2 |
Груша | 7 | |
Апельсин | 1 |
Проект | Фрукт | Свежий | Количество |
---|---|---|---|
Маши | Яблоко | да | 2 |
Васи | Груша | да | 3 |
Маши | Апельсин | нет | 1 |
Васи | Яблоко | да | 2 |
Маши | Груша | да | 4 |
Васи | Апельсин | нет | 1 |
Маши | Яблоко | да | 7 |
Васи | Груша | да | 4 |
Маши | Апельсин | нет | 2 |
Маши | Яблоко | да | 2 |
Васи | Груша | да | 3 |
Маши | Апельсин | нет | 1 |
Васи | Яблоко | да | 2 |
Маши | Груша | да | 4 |
Васи | Апельсин | да | 1 |
Маши | Яблоко | нет | 7 |
Васи | Груша | да | 4 |
Маши | Апельсин | да | 2 |
Проект | Фрукт | Свежий? | Количество |
---|---|---|---|
Васи | Апельсин | да | 1 |
нет | 1 | ||
Груша | да | 14 | |
Яблоко | да | 4 | |
Маши | Апельсин | да | 2 |
нет | 4 | ||
Груша | да | 8 | |
Яблоко | да | 11 | |
нет | 7 |
Свежий? | Фрукт | Проект | Количество |
---|---|---|---|
да | Апельсин | Васи | 1 |
Маши | 2 | ||
Груша | Васи | 14 | |
Маши | 8 | ||
Яблоко | Васи | 4 | |
Маши | 11 | ||
нет | Апельсин | Васи | 1 |
Маши | 4 | ||
Яблоко | Маши | 7 |
И так далее. Можно добавлять всё новые и новые измерения, по которым будет проводиться расчёт.
Измерений может быть не 2, как в обычной таблице, а не ограниченное количество:
От яблок к ADVANTA
Чтобы увидеть результат, нужно на основе созданного OLAP-куба создать OLAP-отчёт. И/или использовать этот OLAP-куб как источник для дальнейших вычислений.
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:
CC Attribution-Share Alike 4.0 International
Создаем OLAP куб. Часть 1
Продолжая тематику Многомерные кубы, OLAP и MDX и olap для маленькой компании, традиционно, предлагаю начать с простенького «Hello World» куба, который будет анализировать процессы и тенденции голосований на Хабре.
Немного теории.
Каким же должен быть Data Warehouse?
Все очень просто – ваш Data Warehouse должен иметь структуру формы звездочки (star model) или снежинки (snowflake model) и состоять из фактов (facts) и измерений (dimensions).
Факты – это фактические записи (records) о каком-то процессе, который мы хотим анализировать, например, процесс голосования на Хабра, или процесс изменения цены товара на бирже. Очень часто факты содержат какие-нибудь числовые данные, например, фактическое значение голоса или цены.
Измерения – это определяющие атрибуты фактов, и обычно отвечают на всякие вопросы: когда произошел факт, над чем или с чем именно, кто был объектом или субъектом и т.п. В основном, измерения имеют более описательный (то есть текстовый) характер, например, имя пользователя или название месяца, так как конечному пользователю будет намного легче воспринимать результаты описанные текстом (например, название месяца), нежели цифрами (номер месяца в году).
Определив где у нас факты, а где измерения — очень просто построить модель звезды.
Звезда.
В центре указываем нашу таблицу фактов, а лучами выводим измерения.
А теперь снежинка.
Снежинка — это та же звезда, только измерения могут зависеть от измерений следующего уровня, а те в свою очередь могут включать еще уровни.
Каждая из этих моделей имеет свои достоинства и недостатки и собственно выбор модели должен базироваться на требованиях к дизайну куба, скорости загрузки данных, дискового пространства и т.д.
Естественно, конечные Data Warehouse обычно намного сложнее и состоят из нескольких звезд или снежинок, которые могут совместно использовать общие измерения.
HabraDW.
Перейдем к собственно разработке нашего Data Warehouse-а.
Итоговая схема нашей звезды будет такой.
А здесь исходный SQL скрипт, который создает и наполняет (пока что только случайными данными) наше хранилище.
Ну вот, теперь все готово, чтобы загрузить данные в куб.
До встречи в следующей статье.
olap для маленькой компании
В посте Многомерные кубы, OLAP и MDX Vitko написал: «тема очень интересная и с каждым днем становится все более актуальной». К сожалению, это заклинание произносится уже очень давно (по крайней мере я его слышу с 2004 года ), но olap проектов до сих пор очень мало. Возможно, потому что традиционно считается, что всё, что связанно с olap нужно только для крупных компаний с большими объемами накопленных данных и стоит очень дорого. Но это не совсем так. Я хочу рассказать о проекте, который внедрен в одной относительно небольшой компании.
Проект очень древний, начинался ещё в 2003 году. Про некоторые вещи можно сказать «так исторически сложилось». Но, мне кажется общая идея, может быть полезной.
Итак. Компания занимается оптовой торговлей кондитерскими изделиями. Опт кондитерки достаточно специфичный бизнес. При относительно небольших оборотах приходится иметь дело с большими объемами данных. Клиентами компании являются как крупные торговые сети, так и небольшие магазинчики в деревнях области. Плюс огромный ассортимент продукции. Причем клиент может купить любой объем товара – от одного сникерса до вагона печенья (были прецеденты, когда на склад возврата товара поступало половинка зефиринки (история умалчивает какой было причина возврата) ).
Основная учетная система — 1С «Торговля и склад» 7.0, причем dbf версия. Она достаточно успешно справляется с задачами учета товара. Но получить в ней отчеты за большие периоды времени практически нереально. Подобные попытки создают серьезную нагрузку на сервер, начинаются проблемы у операторов 1с, жалобы в It отдел.
Потребность в таких отчетах была постоянная. Сложилась идеальная ситуация для реализации bi проекта: большой объём информации + люди заинтересованные в её анализе.
Для начала, небольшой ролик, демонстрирующий, как пользователь может сам получать информацию.
Посмотреть avi в нормальном качестве можно скачав отсюда 5,25Mb ( 6 минут )
Поработать с локальным кубом можно скачав пример 2,64Mb
или тут 8Mb
Как это реализовано:
В принципе необязательно строить «хранилище». Данные для куба можно получать напрямую из базы 1с ( MsSQL или dbf ). Но в моем случае из 1с данные прошлых периодов периодически удаляются и очищаются справочники. Кроме того перед загрузкой в хранилище данные немного «чистятся».
С кубами работают сотрудники в офисе – руководство, менеджеры, маркетинг, бухгалтерия. Так же информация отправляется поставщикам и торговым представителям в разных городах области.
Любой пользователь может получить информацию разными путями:
Сначала использовался только excel, но возникало много проблем с тем, что екселевские файлы «разбредались», нужно было получить одну «точку входа» для выбора информации.
Поэтому был создан локальный сайт, на котором опубликованы страницы с PivotTable. Сотрудник, который хочет получить пару цифр «здесь и сейчас» заходит на этот сайт и строит отчет в нужной ему форме. Если человеку нужно использовать этот отчет в дальнейшем – он может написать заявку, чтобы его отчет опубликовали в SSRS или сам сохраняет его в excel.
Локальные кубы
Иногда пользователю нужно периодически получать отчеты, содержащие большие объемы данных. Например, отдел маркетинга отправлял отчеты поставщикам в виде екселевских файлов содержащих по несколько десятков страниц.
Olap не «заточен» для получение такой информации – отчеты формировались очень долго.
Как правило, поставщику тоже неудобно работать с большими отчетами. Поэтому большая часть, попробовав работать с локальными кубами, согласилась получать отчетность в таком виде. Список отчетов, которые формировал отдел маркетинга, значительно сократился. Оставшиеся тяжелые отчеты были реализованы в SSRS, созданы подписки (отчеты формируются автоматически и рассылаются поставщикам по расписанию)
Основные параметры системы
Конфигурация сервера:
процессор: 2xAMD Opteron 280
память: 4Gb
дисковые массивы:
операционная система: RAID 1 (зеркало) 2xSCSI 15k
данные: RAID 0+1 4xSCSI 10k
Согласитесь, такую машинку сложно назвать «мощным» сервером
Объем данных:
хранилище 10Гб, данные с 2002 года
агрегация 30%
Размер многомерной базы 350М
кол-во членов «больших измерений»: товары 25 тыс., адреса – 20 тыс.
кол-во документов в день — 400. среднее кол-во строк в документе — 30
Что в итоге получила компания:
Плюсы
Для руководства предприятия
Позволяет посмотреть на ситуацию «сверху», выявить общие закономерности развития бизнеса.
Помогает проследить динамику изменения основных показателей работы организации в целом и оперативно оценивать показатели эффективности работы подчиненных.
Для менеджера
Возможность самостоятельно и в короткие сроки получить информацию необходимую для принятия решения.
Простота работы. Все действия интуитивно понятны
Для поставщиков
Возможность интерактивной работы с информацией
С точки зрения it-специалиста
Уменьшение рутинной работы. Большую часть отчетов пользователь получает самостоятельно.
OLAP и многомерные СУБД: как устроен оперативный анализ данных
Как устроены системы оперативной аналитики данных, почему для BI больше подходит многомерный анализ и какие базы данных используют в OLAP.
В IT-системах компаний обычно есть приложения для комплексного анализа данных. Чаще всего их использует топ-менеджмент, чтобы принимать решения, основанные на данных, а не на интуиции.
Чтобы получить информацию, нужную для принятия взвешенного решения, надо собрать данные из различных источников, обработать и проанализировать. Для этого корпоративное хранилище данных должно быть организовано особым образом, в частности с использованием технологии OLAP. Ее мы и рассмотрим в статье.
Что такое OLAP и зачем нужны такие системы
OLAP — это online analytical processing, оно же — оперативный анализ данных. Давайте попробуем определить это понятие на человеческом языке.
В IT-системах данные хранятся в разных источниках — это несвязанные между собой базы данных, хранилища событий, файлы, быстрые хранилища, системы статистики. В этой куче информации прячется то, что важно знать для эффективного управления IT-продуктом и бизнесом. Но достать нужные сведения из столь разнородной структуры и представить в виде, удобном для менеджеров и аналитиков — проблематично.
Поэтому инженеры придумали системы, которые сами следят за всеми поставщиками данных и собирают всё, что надо знать менеджерам, в одном месте. Это и есть «анализ данных».
А почему «оперативный»? Допустим, вы управляете большим интернет-магазином и прямо сейчас тестируете на эффективность несколько рекламных кампаний. Из всех кампаний нужно отобрать самую эффективную и уже с ней работать дальше. Система обработки данных, конечно, позволит увидеть нужные цифры и принять правильные решения. Но данные из нее надо достать быстро — если построение отчета займет недели, то с такой задержкой хорошие решения принять нельзя.
Поэтому инженеры сделали не просто систему обработки и анализа данных из разнородных источников — они сделали ее быстрой, чтобы вся нужная информация попадала на стол менеджеров практически в режиме реального времени.
OLAP и многомерный анализ данных
Работа OLAP-систем опирается на многомерную модель данных, то есть такие системы позволяют анализировать множество разных параметров с разных сторон. Они обрабатывают многомерные массивы данных, то есть такие, в которых каждый элемент массива связан с другими элементами.
Поэтому OLAP позволяет строить гипотезы, выявлять причинно-следственные связи между разными параметрами, моделировать поведение системы при изменениях.
Данные при этом организованы в виде многомерных кубов — осями будут отслеживаемые параметры, на их пересечении находятся данные. Пользователи могут выбирать нужные параметры и получать информацию по разным измерениям.
Вот так выглядит многомерная модель данных. Источник
Например, для продаж осями куба могут быть товары, тип покупателя, регион, частота покупки и так далее. Пользователь может получить данные о том, какие товары, в каких регионах чаще покупают, или какие типы покупателей чаще делают покупки, или сколько товаров продано в каждом регионе за месяц.
США | Канада | Мексика | |
Январь | 20 000 | 4 000 | 2 000 |
Февраль | 30 000 | 6 000 | 3 000 |
Март | 50 000 | 10 000 | 5 000 |
Для визуализации данных многомерного куба используют обычные таблицы — тут видно число продаж по регионам за месяц
OLAP-система собирает информацию из баз данных, ERP, CRM и других источников, а затем формирует многомерный массив данных. В общем виде структура OLAP выглядит так:
Как можно реализовать OLAP на практике: виды таких систем
Самый простой и очевидный подход — создать систему, которая напрямую ничего не хранит, но умеет быстро вынимать разные записи из разных мест и в правильном виде показывать данные менеджерам. Такие системы хорошо работают, когда данные разложены по однотипным СУБД. Например, все подразделения сидят на реляционной СУБД PostgreSQL.
OLAP с такой архитектурой будет называться Relational OLAP (ROLAP) — OLAP, построенный на отношениях таблиц и баз данных между собой. Такая система не требует предварительной подготовки записей в таблицах для анализа — можно брать все нужные значения напрямую и в режиме онлайн.
Если же данные лежат не только в однотипных корпоративных базах данных, то надо собирать информацию по разным источникам и сводить всё это вместе. Появляется этап предварительной подготовки данных на отдельном сервере. И такая система — это уже Multidimensional OLAP (MOLAP), или многомерный OLAP. Такую штуку построить сложнее, но иногда без нее никак — чем больше ваша компания, тем больше разнородных систем хранения данных в ней будет задействовано. Это наиболее эффективный тип для аналитической обработки, так как позволяет структурировать данные под разные запросы пользователей.
И третий вид — гибрид первых двух типов систем. В очень-очень больших компаниях часть данных проще достать через запросы в базы данных, а часть нужно предварительно готовить средствами многомерной OLAP, работающей с различными источниками.
Самое интересное: многомерный анализ данных
Самая интересная технология из всех этих — многомерный OLAP и многомерные системы, которые применяют для сбора информации из всех подразделений компании. Софт для таких систем чертовски сложен и интересен, он умеет работать с различными источниками, при этом делать это быстро и эффективно, одновременно опрашивая десятки многотерабайтных таблиц.
Однако впечатляющая способность опрашивать разных поставщиков — не самое главное, у таких систем есть еще крутейший набор инструментов для работы с самими данными.
Давайте бросим взгляд на несколько представителей рынка многомерных БД для OLAP:
7) Что такое OLAP?
Что такое OLAP?
Оперативная аналитическая обработка (OLAP) — это категория программного обеспечения, которая позволяет пользователям одновременно анализировать информацию из нескольких систем баз данных. Это технология, которая позволяет аналитикам извлекать и просматривать бизнес-данные с разных точек зрения.
Аналитики часто должны группировать, объединять и объединять данные. Эти операции в реляционных базах данных являются ресурсоемкими. Данные OLAP могут быть предварительно рассчитаны и агрегированы, что ускоряет анализ.
Базы данных OLAP делятся на один или несколько кубов. Кубы разработаны таким образом, что создание и просмотр отчетов становится проще. OLAP означает онлайн-аналитическую обработку.
В этом уроке вы узнаете
OLAP-куб:
В основе концепции OLAP лежит куб OLAP. OLAP-куб — это структура данных, оптимизированная для очень быстрого анализа данных.
Обычно операции с данными и анализ выполняются с использованием простой электронной таблицы, где значения данных располагаются в формате строк и столбцов. Это идеально подходит для двумерных данных. Однако OLAP содержит многомерные данные, причем данные обычно получают из другого и несвязанного источника. Использование электронной таблицы не является оптимальным вариантом. Куб может хранить и анализировать многомерные данные в логической и упорядоченной форме.
Как это работает?
Хранилище данных будет извлекать информацию из нескольких источников данных и форматов, таких как текстовые файлы, таблицы Excel, мультимедийные файлы и т. Д.
Извлеченные данные очищаются и преобразуются. Данные загружаются на сервер OLAP (или куб OLAP), где информация предварительно рассчитывается заранее для дальнейшего анализа.
Основные аналитические операции OLAP
Четыре типа аналитических операций в OLAP:
1) Свернуть:
Свертывание также известно как «консолидация» или «агрегация». Операция свертки может быть выполнена двумя способами
Рассмотрим следующую диаграмму
2) Развертка
При детализации данные разбиты на более мелкие части. Это противоположность процесса накопления. Это можно сделать через
Рассмотрим схему выше
3) Срез:
Здесь выбрано одно измерение и создан новый вложенный куб.
Следующая диаграмма объясняет, как выполнялась операция среза:
Игральная кость:
Эта операция похожа на срез. Разница в кости заключается в том, что вы выбираете 2 или более измерений, которые приводят к созданию вложенного куба.
4) Пивот
В Pivot вы вращаете оси данных, чтобы обеспечить альтернативное представление данных.
В следующем примере сводка основана на типах элементов.
Типы систем OLAP
OLAP Иерархическая структура
Тип OLAP | объяснение |
Реляционный OLAP (ROLAP): | ROLAP — это расширенная СУБД вместе с многомерным отображением данных для выполнения стандартной реляционной операции. |
Многомерный OLAP (MOLAP) | MOLAP Реализует работу в многомерных данных. |
Гибридная онлайн-аналитическая обработка (HOLAP) | В подходе HOLAP агрегированные итоги хранятся в многомерной базе данных, а подробные данные хранятся в реляционной базе данных. Это обеспечивает как эффективность данных модели ROLAP, так и производительность модели MOLAP. |
Настольный OLAP (DOLAP) | В Desktop OLAP пользователь загружает часть данных из базы данных локально или со своего рабочего стола и анализирует их. DOLAP относительно дешевле в развертывании, поскольку предлагает очень мало функций по сравнению с другими системами OLAP. |
Веб OLAP (WOLAP) | Web OLAP — система OLAP, доступная через веб-браузер. WOLAP — это трехуровневая архитектура. Он состоит из трех компонентов: клиент, промежуточное программное обеспечение и сервер базы данных. |
Мобильный OLAP: | Мобильный OLAP помогает пользователям получать доступ и анализировать данные OLAP с помощью своих мобильных устройств. |
Пространственный OLAP: | SOLAP создан для облегчения управления как пространственными, так и непространственными данными в географической информационной системе (ГИС) |
ROLAP
ROLAP работает с данными, которые существуют в реляционной базе данных. Таблицы фактов и измерений хранятся в виде реляционных таблиц. Он также позволяет проводить многомерный анализ данных и является самым быстрорастущим OLAP.
Преимущества модели ROLAP:
Недостатки модели ROLAP:
MOLAP
MOLAP использует многомерные механизмы хранения на основе массива для отображения многомерных представлений данных. В основном они используют куб OLAP.
Узнайте больше об OLAP здесь
Гибридный OLAP
Гибридный OLAP представляет собой смесь как ROLAP, так и MOLAP. Он предлагает быстрое вычисление MOLAP и более высокую масштабируемость ROLAP. HOLAP использует две базы данных.
Преимущества гибридного OLAP:
Недостатки гибридного OLAP: