Хранилища данных и OLAP
OLAP-система состоит из:
· Источника данных (сервер, поставляющий данные; хранилище БД, таблицы)
· OLAP-сервера (подготавливает данные)
· OLAP-клиенты (пользовательский интерфейс)
Сервер может иметь архитектуру:
· MOLAP (Multidimensional OLAP) - и детальные данные, и агрегаты хранятся в многомерной БД. В этом случае получается наибольшая избыточность, так как многомерные данные полностью содержат реляционные.
· ROLAP (Relational OLAP) - детальные данные остаются там, где они "жили" изначально - в реляционной БД; агрегаты хранятся в той же БД в специально созданных служебных таблицах.
· HOLAP (Hybrid OLAP) - детальные данные остаются на месте (в реляционной БД), а агрегаты хранятся в многомерной БД.
Данные организованны в виде упорядоченных многомерных массивов (кубов).
Основное назначение многомерных СУБД (МСУБД) – реализация систем, ориентированных на динамический, многомерный анализ исторических данных (и текущих). Они ориентированы на обработку произвольных запросов. Поэтому проектирование МБД начинается с определения вопросов, с которыми конечные пользователи хотели бы обратиться к системе.
Например, для ответа на вопрос: «Какие два варианта скидок наиболее эффективны в западном регионе в летний период при продаже «Жигулей» на основе данных за последние 10 лет», в БД должны быть данные об объеме продаж по 4 измерениям:
- Год/Квартал/Месяц/Неделя/День/Счет
- Страна/Регион/Филиал/Менеджер
- Фирма-производитель/Завод-изготовитель/Модель-автомобиль
- Тип скидки
Выберем уровень детализации и агрегации:
- День (365х10=3650 значений)
- Менеджер (300 значений)
- Модель (100 значений)
- Тип скидки (4 значения)
Получим куб, состоящий из 438000000 ячеек. В основе используемого в МСУБД способа хранения лежит предположение, что «пустые» не хранятся. Значения показателей хранится в виде множества логически упорядоченных блоков (массивов), имеющих фиксированную длину. Блок – минимальная индексированная единица. Блоки с полностью неопределенными значениями не хранятся. Реальные значения (на сегодняшний день) могут составлять приблизительно 0,25% всех ячеек (365х30х10х1).
Подход к агрегации влияет и на размер БД и на время выполнения запросов. Их значения должны быть оптимальными.
Структура данных для этого уровня детализации (агрегации).
Измерения: DAY – день, MANAGER – менеджер, MODEL_CAR – модель, FIRMA_CAR – фирма-производитель, DEPARTMENT – подразделение (филиал), REGION –регион, MONTH – месяц, YEAR – год, TIP_DISCOUNT – тип скидки.
Показатели (меры): TOTAL_COST – объем продаж, INT_COST – себестоимость проданного авто, QOANTITY – количество проданного авто, PROFIT – доход, WORK_TIME – количество рабочих часов.
Достоинства МСУБД:
· точно моделируют бизнес-данные
· быстрый доступ без SQL-запросов (на 1,2 порядок)
· содержат заранее рассчитанные сводные данные
Ограничения:
· не позволяют работать с большими БД (только десятки Гб)
· неэффективно используют внешнюю память, так как данные хранятся блоками в упорядоченном виде, и непосредственные значения не всегда удаляются полностью
· не поддерживают репликацию данных
Условия применения:
· небольшой объем данных (<нескольких Гб)
· набор измерений стабилен
· время ответа системы на запрос является критическим параметром
· требуется использовать сложные строенные функции над ячейками гиперкуба