В современном бизнесе данные играют ключевую роль в принятии решений и стратегическом планировании. Одним из важных аспектов работы с данными является эффективное управление временными измерениями.
Эта статья посвящена созданию общих размерностей на основе иерархий дат в AlphaBI. Мы рассмотрим, как правильно настроить иерархии, чтобы обеспечить удобный доступ к временным данным. А также продемонстрируем несколько примеров создания мер, которые помогут в анализе данных.
Создание общей размерности
В начале рассмотрим процесс создания общей размерности «Календарь». Для этого:
Перейдём на вкладку «Аналитическое хранилище данных» и создадим размерность.
Укажем название, код и хранилище.
Размерности в AlphaBI состоят их иерархий. Создадим первую – «Дата». Нужно учитывать, что для каждой иерархии указывается одинаковый первичный ключ. Это необходимо для корректной связи с мерами.
Иерархия должна содержать хотя бы один уровень. Создадим его.
В AlphaBI возможно создать иерархию из нескольких уровней. Главное для них указать порядковый уровень для корректной работы. В нашем примере были созданы многоуровневые иерархии «Г-М-Д» и «Г-К-Д».
Не забудьте синхронизовать новый объект!
Когда мы подготовили все необходимые объекты, можем приступить к реализации куба. Далее будут рассмотрены несколько примеров использования иерархий дат при создании мер. Для демонстрации примеров был создан куб по остаткам магазина.
Использование дат при подсчете количества дней
Если вам необходимо получить значение мер не зависимо от уровня иерархии, то дополнительных действий не требуется. При построении отчета вы можете использовать любую иерархию из размерности.
Рассмотрим пример, когда нужно получить значение показателя в разрезе определённого уровня иерархии. Для решения этой задачи создадим новый расчетный элемент «Кол-во дней на складе».
В меру добавили конструкцию, которая указывает уровень расчета данных (в нашем случае [Г-М-Д].[Дата]):
AlphaBI позволяет получить данные со сдвигом по периоду с помощью функции «PARALLELPERIOD». Сложность в создании такой меры заключается в том, что данные меры в таком случае будет выводиться только по указанной иерархии. Поэтому при реализации показателя вам необходимо указать все иерархии, по которым вы хотите строить отчеты.
Рассмотрим пример такой функции. Как вы можете видеть на рисунке, показатель «Остатки шт Y-1» рассчитан в разрезе «Г-М-Д» и «Г-К-Д». Для определения используемой в отчете иерархии добавлена проверка выбранного уровня.
Расчет показателя с начала месяца по текущую дату
MTD() – функция AlphaBI, которая ограничивает период с начала месяца до текущей даты. Используем ей для расчета остатков.
Создадим меру «Остатки шт». В качестве иерархии используем «Г-М-Д».
Синхронизируем изменения в кубе и увидим, что появилась ошибка: «The Mondrian XML: Mondrian Error:All arguments to function '{}' must have same hierarchy».
Ошибка происходит из-за того, что функция MTD() возвращает первую иерархию в кубе. Чтобы её исправить нужно выполнить следующие шаги:
Необходимо, чтобы иерархи находилась на первом месте в размерности. Для примера сделаем новое измерение «Календарь исправленный».
Размерность календаря должна быть первой в кубе. Используем новое измерение в мере «Остатки шт»:
После внесения измерений куб успешно обновился. Можем приступить к работе с ним.
Выводы
В рамках нашей практики мы реализовали три показателя: «Остатки шт», «Остатки шт Y-1» и «Кол-во дней на складе».
Создадим olap-представление и построим выборку. Если использовать иерархию «Г-М-Д», то три показателя выдают корректные данные.
Однако если использовать любой другой срез, то будет работать только «Кол-во дней без остатка». Это происходит потому, что другие два настроены на конкретные иерархии. Прошу это учитывать при реализации отчетов.
В рамках этой статьи мы рассмотрели:
Процесс создания общих размерностей.
Создание мер на основе иерархий дат.
Данная информация вам обязательно пригодится для реализации своих решений в AlphaBI.