Mondrian — сервер OLAP (аналитической обработки в реальном времени) с открытыми исходными кодами, написанный на языке Java. Разрабатывается и поддерживается корпорацией Pentaho.
Для создания схемы потребуется воспользоваться desktop-приложением Pentaho schema workbench.
OLAP-куб — (On-Line Analytical Processing — интерактивный анализ данных) многомерный массив данных, как правило, разреженный и долговременно хранимый, используемый в OLAP. Может быть реализован на основе универсальных реляционных СУБД или специализированным программным обеспечением. Подробнее в статье OLAP-куб.
Создание схемы
Для создания схемы необходимо выполнить действие: File -> new -> schema. В атрибутах новой схемы заполнить name (наименование схемы).
Для сохранения схемы необходимо выполнить действие: File -> save.
Настройка подключения к БД
Задается соединение с БД: Options -> connection. В появившемся окне в разделе General заполнить:
- Connection Name – Наименование для подключения;
- Connection Type = Postgre SQL – Тип хранения данных;
- Access = Native (JDBC) – Тип подключения;
- Settings:
Создание куба
- В созданной схеме необходимо создать куб (ПКМ по схеме и кликнуть «Add cube»)

В атрибутах нового куба заполнить:
- name – наименование куба.

- Далее необходимо добавить таблица фактов для куба (ПКМ по кубу и кликнуть «Add Table»);

В атрибутах новой таблицы заполнить:
- schema - схема БД;
- name – таблица фактов для куба.

Создание Меры
Добавить меру для куба (ПКМ по кубу и выбрать «Add Measure») и заполнить:

- name – наименование меры (Отображается на веб-интерфейсе);
-
aggregator – тип вычисления, который принимает одно из значений:
- sum;
- count;
- min;
- max;
- avg;
- distinct-count.
- column – наименование атрибута таблицы фактов, по которому будет считаться мера.
Создание Измерения
Измерение для схемы
Измерение для схемы используется в случаях, когда в рамках одной схемы создается несколько кубов. Для нескольких кубов можно использовать одно измерение схемы. При этом нужно лишь добавить ссылку на это измерение в кубе.
1.Создать новое измерение для схемы (ПКМ по схеме и кликнуть на Dimension).

Если измерение создано для схемы, а не для куба то из обязательных атрибутов только поле name – имя. Поле type ¬– тип измерения, заполняется по умолчанию значением StandartDimension, для не временных измерений. Для временных измерений заполняется значением TimeDimension.

2.При раскрытии измерения появляется иерархия. Обязательные атрибуты для иерархии:
- name – наименование иерархии,
- primarykey - столбец таблицы измерения, значения которого совпадают с каким – либо столбцом таблиц (ы) фактов (для связи куба и измерения)

3.Добавить таблицу для измерения (ПКМ по иерархии и кликнуть на Add Table). Среди обязательных атрибутов, уровень имеет следующие:
- schema – схема БД;
- name – наименование таблицы
4.После добавлении таблицы, аналогично нужно добавить хотя бы один уровень (Level). Среди обязательных атрибутов, уровень имеет следующие:
- name – наименование уровня;
- column (столбец, который будет отражаться как измерение в кубе).

5.Чтобы использовать измерение схемы в кубе, нужно кликнуть ПКМ по нужному кубу и нажать add dimension usage

Обязательные атрибуты:
- name – наименование измерения в кубе.
- foreign key – столбец таблицы фактов, значения которого должны совпадать с ключом, указанном в иерархиях измерения.
- source – необходимо выбрать измерение, которое будет использоваться.
Необязательный атрибут:
- caption – имя для измерения, которое будет отражаться для конкретного куба.

Измерение для куба
1.Чтобы использовать измерение для куба, нужно кликнуть ПКМ по нужному кубу и нажать add dimension

Если измерение создано для куба, то заполнить следующие поля:
- name – имя;
- type ¬– тип измерения, заполняется по умолчанию значением StandartDimension, для не временных измерений. Для временных измерений заполняется значением TimeDimension.
- foreignKey – внешний ключ для связи с таблицей фактов куба.

2.При раскрытии измерения появляется иерархия. Обязательные атрибуты для иерархии:
- name – наименование иерархии,
- primarykey - столбец таблицы измерения, значения которого совпадают с каким – либо столбцом таблиц (ы) фактов (для связи куба и измерения)

3.Добавить таблицу для измерения (ПКМ по иерархии и кликнуть на Add Table). Среди обязательных атрибутов, уровень имеет следующие:
- schema – схема БД;
- name – наименование таблицы
4.После добавлении таблицы, аналогично нужно добавить хотя бы один уровень (Level). Среди обязательных атрибутов, уровень имеет следующие:
- name – наименование уровня;
- column (столбец, который будет отражаться как измерение в кубе).
Измерение JOIN
Используемая диаграмма классов:

1.Создать Измерение 2.В уже созданной иерархии кликнуть ПКМ и создать Join 3.Заполнить в Join ссылки на таблицы


4.В самом Join необходимо указать primarykey и foreignkey

5.Создать Level:

6.Заполнить Иерархию для связи с таблицей фактов

7.В кубе нужно создать Dimension Usage

Схема куба:
Измерение с иерархией
Использование Уровней
1.Модель:

2.Создать новое измерение для схемы или для куба

Если предполагается работа с датами, то нужно отметить атрибут type = TimeDimension 3.Далее заполнить поля в Иерархии 4.Добавить таблицу для иерархии 5.После создать первый уровень:
- Заполнить Год:

- Заполнить Месяц:

Использование Closure Table
0.Модель:

1.Создать новое измерение для схемы или для куба

2.Далее заполнить поля в Иерархии

3.Добавить таблицу для иерархии
4.Далее в раскрытой иерархии нужно добавить уровень

5.В созданном уровне нужно добавить Closure


6.Заполнить Closure, для этого нужно выбрать в Table нужную таблицу

7.Заполнить уровень, для этого необходимо заполнить поля:
- name – наименование уровня;
- table – выбрать из выпадающего списка таблицу для измерения;
- column – атрибут первичного ключа таблицы;
- nameColumn – атрибут для отображения значения измерения;
- parentColumn – атрибут для ключа родителя;
- type – тип данных;
- uniqueMembers – отметить галочку для отметки, что данный уровень является первичным по счету;
- levelType – Regular;
- hideMemberlf – Never
- caption – отображаемое имя

8.Заполнить в Closure атрибуты parentColumn и childColumn значениями из выпадающих списков:

9.Для куба создать ссылку на измерение:

10.Заполнить Dimension Usage:

Создание виртуального Куба
Для отображения нескольких кубов на одной схеме используется функция создания виртуальных кубов. Для этого требуется:
1.Создать как минимум два куба с измерениями и мерами
2.В открытой схеме нужно создать виртуальный куб (ПКМ по схеме и кликнуть Add virtual cube)

3.Заполнить, в появившимся окне, наименование (name) для виртуального куба
4.Добавить в виртуальный куб ссылки на измерения обычных кубов, для этого:
- Кликнуть ПКМ по виртуальному кубу и выбрать
Add virtual cube dimension

- В появившемся окне виртуального измерения заполнить атрибуты: name и cubeName в точности, как они называются в исходном кубе

5.Добавить в виртуальный куб ссылки на меры обычных кубов, для этого:
- Кликнуть ПКМ по виртуальному кубу и выбрать
Add virtual cube measure

- В появившемся окне виртуального измерения заполнить атрибуты: name и cubeName в точности, как они называются в исходном кубе
