SSAS - кастомизированная детализация на вычисляемых ячейках

OLAP, SSAS  SSAS Категория:  OLAP, SSAS
Опубликовал:         16.03.2012               print

В сводной таблице MS Excel (как и в некоторых других клиентских OLAP приложениях), подключенной к SQL Server Analysis Services (SSAS), при двойном щелчке на ячейке показателя возможно спуститься (продриллиться) к значениям уровня детализации (гранулярности), и, таким образом, посмотреть - из каких значений агрегировалось значение текущей ячейки. Однако, эта операция, называемая Drillthrough, доступна только для физических мер, но не для вычисляемых ячеек, формулы которых прописаны в MDX-скрипте куба. Это ограничение SSAS, и оно, как можно предположить, вызвано тем, что формулы вычисляемых мер могут быть весьма и весьма сложносоставными.


В своем блоге Моша Пасуманский приводит решение, позволяющее обойти данную проблему. Повторим решение и внесём небольшие дополнения.


В OLAP проекте создадим новое действие (Action) для целевого объекта "Все ячейки" (All cells) с типом "Rowset", поскольку данное действие будет возвращать набор строк. В поле ввода выражения (Action Expression) для интересуещей нас группы мер (в Вашем случае подставите свои наименования мер и атрибутов) пропишем инструкцию, как показано на рисунке ниже:




В выражении кастомизированного Drillthrough можно:

  • * перечислить только требуемые атрибуты измерений, связанных с размерной группой;
  • * атрибуты сгруппировать в желаемом порядке;
  • * дать атрибутам читабельные заголовки (алиасы AS ...);
  • * установить предельное количество возвращаемых записей.


В выражении действия используется внешняя процедура ASSP.CurrentCellAttributes(), определяющая контекст текущей вычисляемой ячейки. Скачаем ASSP проект. Открываем проект в Microsoft Visual Studio, убеждаемся, что все так, как показано на рисунке ниже, компилируем проект, а полученную ddl сборку подключаем к Analysis Services (см. статью "Действия и полезные CLR-процедуры для SSAS").




В условии инициализации (Condition) действия возможно указать критерии как для группы мер, для отдельной меры, так и для набора вычисляемых мер. Этот скрытый от пользователей набор необходимо определить в MDX-скрипте куба следующим образом:

-----------------------------------------------------------------------------------------------
-- используется в Action для детализации (drillthrough) параметров кредитных контрактов в дату
CREATE HIDDEN SET CURRENTCUBE.[Вычисляемые показатели контрактов в дату]
AS
' {
 [MEASURES].[Общий остаток ОД]
,[MEASURES].[Сумма кредита]
-- ............ и другие меры
,[MEASURES].[Общие платежи]
} ' ;
-----------------------------------------------------------------------------------------------

После того как опубликуем действие на сервере Analysis Services, в любом OLAP клиенте, поддерживающем действия, по щелчку правой кнопки мыши на ячейках вышеперечисленных мер в контекстном меню будет показываться пункт "Детализация...", выбор которого обеспечит выполнение операции детализации.


Энергия идеи   dvbi.ru                    Последнее изменение: 2017-10-15 16:25:09Z         Возрастная аудитория: 14-70         Комментариев:  0
Теги:  DLL для SSAS
Связанные статьи:

Пожалуйста, проголосуйте и ниже поставьте лайк:   rating
0 0 0


  Comments


Следующая статья:    Утилита Анцитрус-паук для скачивания справочников из web
Предыдущая статья:  Состав работ по DWH / BI проекту