- Подготовка данных
1.1. Постановка задачи и анализ датасета
1.2. Создание физической модели
1.3. Загрузка данных
1.4. Создание логической модели - Анализ данных
2.1. Построение OLAP-представления - Презентация
3.1. Контейнеры, виджеты, настройка UI
3.2. События, фильтры
В предыдущих статьях цикла мы подготовили данные. Теперь перейдем к этапу анализа данных с помощью функционала построения OLAP-представлений с использованием MDX-запросов. На этом этапе подготовим данные, которые будут служить источниками для виджетов.
OLAP (от англ. OnLine Analytical Processing) – это технология оперативной аналитической обработки данных, основанная на многомерном иерархическом представлении данных и позволяющая создавать произвольные запросы внутри общего массива данных.
OLAP значительно ускоряет процесс обработки запроса и выполнения расчетов, обеспечивая анализ данных в различных разрезах. В Alpha BI для OLAP создаются многомерные кубы в аналитическом хранилище данных. Создание такого куба было рассмотрено в предыдущей статье.
На основе кубов строится OLAP-представления. Используя данные одного куба, можно создать неограниченное количество представлений.
В OLAP-представлениях можно использовать как готовые меры, созданные в кубе, так и создавать пользовательские вычисления через расчетные меры. При создании расчетных мер многомерных выражений применяется синтаксис языка MDX.
MDX (от англ. Multidimensional Expressions) - это язык запросов, предназначенный для работы с многомерными структурами данных, подобный SQL, но работающий с измерениями, иерархиями и другими объектами многомерных моделей. Он используется для извлечения, анализа и манипулирования данными в OLAP-серверах.
OLAP-представления в Alpha BI можно создавать в специально-предназначенном для этого разделе “OLAP”, если создаваемые представления представляют собой конечный результат или же предполагается их переиспользование для нескольких отчетов/дашбордов. Либо можно их создать непосредственно в дашборде. В статье рассмотрим второй вариант - создадим дашборд и в нем создадим все необходимые представления.
На дашборде, который необходимо создать, расположено 6 виджетов. Исходя из анализа, проведенного в статье, видим, что два виджета (“Продажи по сегментам клиентов” и “Прибыль по сегментам клиентов”) построены по одному и тому же измерению и отличаются только мерами. Значит для них можно создать один источник с общим измерением и двумя мерами. В итоге необходимо создать 5 OLAP-представлений. Перечислим их:
№ | Виджет | Измерения | Меры |
---|---|---|---|
1 | Продажи по сегментам клиентов Прибыль по сегментам клиентов |
Сегмент клиентов | Продажи Прибыль |
2 | Прибыль корпоративного сегмента по региону | Иерархия Регион - Округ - Город | Прибыль |
3 | Динамика продаж и прибыли | Иерархия Месяц - День | Продажи Прибыль |
4 | Прибыль и продажи (менеджер/округ) | Иерархия Менеджер - Округ | Продажи Прибыль Продажи прошлого месяца Прибыль накопительным итогом |
5 | Заказанные товары по категориям | Иерархия Категория - Подкатегория - Товар | Кол-во заказов Средняя цена Медианная цена |
Сначала создайте аналитическую панель
Для этого:
- Из главного меню перейдите в модуль “Аналитические панели” и нажмите на кнопку “Создать аналитическую панель”.
- Нажмите кнопку «Меню» и выберите пункт «Свойства». Откроется окно «Свойства аналитической панели». В данном окне укажите наименование создаваемой аналитической панели и, при необходимости, задайте ей фон. После ввода наименования и определения фона нажмите кнопку «ОК». Далее нажмите кнопку
, чтобы аналитическая панель сохранилась и отобразилась в списке аналитических панелей.
- Перейдите на вкладку «Данные». Эта вкладка предназначена для того, чтобы определить источник данных, которые требуется отобразить в виджете аналитической панели.
Создайте первый источник “Продажи по сегментам клиентов”
- Для добавления источника нажмите кнопку «Добавить» и выберете пункт “OLAP”. Откроется редактор OLAP-представления
- Задайте наименование источника в поле “Заголовок” и в выпадающем списке выберете куб “superStoreUS”.
- На вкладке “Куб” отобразятся все размерности и меры куба. Формирование структуры OLAP-представления осуществляется перемещением элементов куба из области источников данных OLAP-представления в область формирования структуры OLAP-представления, состоящую из осей: «Столбцы», «Строки», «Значения» и «Фильтры» с помощью drag-and-drop. Размерности можно добавлять в оси «Столбцы», «Строки» и «Фильтры», предварительно выделив уровень иерархии размерности, а меры - на ось “Значения”. Перенесите иерархию “Сегмент клиента” на ось “Строки” и меру “Продажи” - на ось “Значения”.
- Требуется округлить значения меры до тысяч и добавить единицу измерения “₽”. Для этого создайте расчетную меру. Перейдите на вкладку “Запрос” и нажмите кнопку
напротив пункта “Расчетные элементы”. Откроется окно создания расчетного элемента. Задайте наименование расчетной меры и укажите формат значений:
- В окне создания расчетного элемента перейдите на вкладку «Формула» и задайте формулу в MDX-формате:
[Measures].[sales]/1000
- После того, как формула была прописана, нажмите на кнопку «Применить». В результате «Расчетная мера» отобразится в расчетных элементах. Переместите ее в ось «Значения». А добавленную ранее меру “Продажи” удалите по кнопке
.
- Добавьте вторую расчетную меру “Прибыль, тыс ₽” с формулой:
[Measures].[profit]/1000
Переместите ее в ось “Значения”.
- Необходимо получить плоскую таблицу, скрыв элемент верхнего уровня “Сегмент клиента“. Для этого нажмите на кнопку настроек
- Откроется окно, в котором установкой «флажков» выберите конкретные элементы.
Для удобства измените уровень в выпадающем списке и нажмите на кнопку “Все”.
- Отсортируйте таблицу по убыванию суммы продаж. Для этого в области отображения результата вызовите контекстное меню в наименовании столбца “Продажи, тыс ₽”, выберите пункт «Сортировка», а затем тип сортировки - “По убыванию”.
- После настройки источника данных нажмите кнопку «Сохранить». Созданный источник может использоваться несколькими виджетами или можно создавать источники для каждого виджета в отдельности.
- Сохраните аналитическую панель
Создайте источник “Прибыль корпоративного сегмента по региону”
- Скопируйте созданный источник, выделив его и нажав на кнопку “Создать копию”. Откройте новый источник, переименуйте его на “Прибыль корпоративного сегмента по региону”.
- Перенесите иерархию “Регион” в ось “Строки”, а расчетную меру “Прибыль, тыс ₽” со вкладки “Запрос” - в ось “Значения”. Скройте элемент верхнего уровня, оставив только дочерние элементы, в настройках иерархии “Регион”. Отсортируйте OLAP-представление по убыванию значения меры.
- Требуется отфильтровать представление по сегменту клиента, чтобы отображались только клиенты с категорией “Corporate”. Для этого перенесите иерархию “Сегмент клиента” в ось “Фильтры”. Перейдите в настройки оси и на вкладке “Элементы” проставьте флажок только напротив нужной категории. Нажмите кнопку “Применить”.
- Итоговый вид OLAP-представления “Прибыль корпоративного сегмента по региону”:
Сохраните OLAP-представление и аналитическую панель.
Создайте источник “Динамика продаж и прибыли”
- Создайте новый источник, переименуйте его на “Динамика продаж и прибыли”, выберете куб “superStoreUS”.
- Перенесите иерархию “Дата заказа” в ось “Строки”, а меры “Прибыль” и “Продажи” - в ось “Значения”. В настройках иерархии “Дата заказа” отобразите элементы уровня “Месяц”.
- Скройте строки с пустыми значениями, для этого нажмите на кнопку
на оси строк.
- Сохраните OLAP-представление и аналитическую панель.
Создайте источник “Прибыль и продажи по менеджерам/округам”
- Создайте новый источник, переименуйте его на “Прибыль и продажи по менеджерам/округам”, выберете куб “superStoreUS”.
- Перенесите иерархию “Менеджер/Регион” размерности “Регоин” в ось “Строки”, а меры “Прибыль” и “Продажи” - в ось “Значения”. Раскройте иерархию по кнопке
.
- Требуется добавить две расчетные меры “Продажи прошлого месяца” и “Прибыль накоп с нач года”.
Формула для расчетной меры “Продажи прошлого месяца”:
sum(
ParallelPeriod(
[order_date].[period_ymd_hier].[month],
1,
[order_date].[period_ymd_hier].[2015].[2]
),
[Measures].[sales]
)
Здесь ParallelPeriod()
- функция, которая возвращает прошлый месяц относительно элемента [order_date].[period_ymd_hier].[2015].[2]
(февраль 2015 года). В следующих уроках покажем, как сделать эту формулу динамичной, так чтобы прошлый месяц отсчитывался от выбранного пользователем месяца через фильтр.
Код элемента [order_date].[period_ymd_hier].[2015].[2]
можно получить на боковой вкладке “Элементы” редактора формул. Раскройте ее
Раскройте иерархию размерности “Дата заказа” до уровня “Месяц”. Выберите элемент “Февраль”. Дважды кликните по его названию – в область формулы добавится код этого элемента
Функция sum()
суммирует значение меры “Продажи” за прошлый месяц.
Формула для расчетной меры “Прибыль накоп с нач года”:
SUM(
PeriodsToDate(
[order_date].[period_ymd_hier].DefaultMember,
[order_date].[period_ymd_hier].[2015].[2]
),
[Measures].[profit]
)
Здесь для текущего элемента суммируются значения меры “Прибыль” от первого элемента уровня (т.е. января 2015 года) до февраля 2015 года.
Функция PeriodsToDate()
возвращает набор элементов, начиная с элемента, заданного первым параметром ([order_date].[period_ymd_hier].DefaultMember
), и заканчивая элементом, заданным вторым параметром ([order_date].[period_ymd_hier].[2015].[2]
).
Аналогично предыдущей формуле в следующих уроках покажем, как сделать ее зависимой от контекста пользовательских фильтров.
- Перенесите созданные расчетные меры в ось “Значения”. Итоговый вид представления:
- Сохраните OLAP-представление и аналитическую панель.
Создайте источник “Заказанные товары по категориям”
- Создайте новый источник, переименуйте его на “Заказанные товары по категориям”, выберете куб “superStoreUS”.
- Перенесите иерархию “Категория товара” размерности “Товар” в ось “Строки”, а меры “Кол-во заказов” и “Средняя цена” - в ось “Значения”. Раскройте иерархию по кнопке
.
- Добавьте расчетную меру “Медианная цена” со следующей формулой:
MEDIAN({[order_dim].[order_hier].Levels(2).Members},[Measures].[unit_price])
Здесь с помощью функции MEDIAN()
рассчитывается медиана для меры “Цена” (unit_price). А в качестве первого параметра указывается набор элементов, уникальный для всех строк в хранилище - элементы 2 уровня “Row ID” иерархии “Заказ”.
- Перенесите созданную расчетную меру в ось “Значения”. Итоговый вид представления:
- Сохраните OLAP-представление и аналитическую панель.
Вы создали 5 OLAP-представлений, на основе которых в следующем уроке создадите виджеты для аналитической панели.