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 в точности, как они называются в исходном кубе