Выбрав кортеж, вы можете выполнить расчеты Essbase в активной сетке Smart View, ограничив их область определенными срезами данных в кубе блочного хранения.
В следующих разделах описан расчет кортежа:
Синтаксис для использования @GRIDTUPLES в сценарии расчета см. в описании команды FIX…ENDFIX.
Выбрав кортеж, вы можете выполнить расчеты Essbase в активной сетке Smart View, ограничив их область определенными срезами данных в кубе блочного хранения.
Выбор кортежа помогает оптимизировать расчеты асимметричной сетки по измерениям, избегая лишних расчетов.
Расчетные кортежи Essbase отличаются от кортежей, используемых в MDX-запросах. Производительность расчета и размер куба главным образом зависят от количества блоков в кубе (с определенным размером блока). По этой причине расчетные кортежи указываются только для комбинаций разреженных элементов. Кроме того, для упрощения создания сценариев расчета в спецификацию расчетных кортежей можно включить несколько элементов из одного разреженного измерения. Например, если указать в качестве расчетного кортежа ("New York", "California", "Actual", "Cola"), то будут вычислены указанные ниже пересечения ячеек.
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
Рассмотрим указанную ниже симметричную сетку. Она симметрична, поскольку для каждого продукта в таблице представлены одинаковые рынки и сценарий (фактические).
Указанная ниже сетка асимметрична, так как продукт Diet Cola содержит меньше рынков в сетке, чем продукт Cola.
Если в инструкции FIX или точке обзора сетки Smart View (POV) указано несколько измерений, область расчетов по умолчанию заключается в расчете перекрестного произведения (всех возможных комбинаций) элементов в FIX или сетке. Другими словами, расчет на основе точки обзора, в котором комбинации продуктов и рынков взяты из сетки, охватывает все эти комбинации элементов строк:
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Massachusetts" "Diet Cola"->"Florida" "Diet Cola"->"Connecticut" "Diet Cola"->"New Hampshire"
В результате расчетов может быть больше, чем нужно. Если необходимо рассчитать только комбинации, показанные на сетке, можно указать кортежи, которые необходимо рассчитать, и ограничить расчет меньшим срезом. Расчет кортежей также может сократить время расчета и размер куба.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
Расчетный кортеж — это способ представления среза данных элементов из двух или более разреженных измерений для использования в расчете блочного хранилища Essbase.
Примеры допустимых расчетных кортежей:
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
Если вы пишете выражения MDX, возможно, вы знаете об ограничениях для кортежей, которые применяются к MDX:
Однако при выборе кортежей в сценариях расчетов эти требования для удобства смягчаются. Вы можете свободно записывать выражения кортежей, а кортежи могут описывать списки элементов, как в следующем кортеже: (@Children(East), Cola)
.
Простой способ выбора кортежей — явно вставить их в сценарий расчета в виде списка в инструкции FIX.
Помните, что инструкция FIX имеет указанный ниже формат.
FIX (fixMbrs) COMMANDS ; ENDFIX
В инструкции FIX ниже указаны два кортежа перед началом командного блока. Кортежи заключены в фигурные скобки { }, которые ограничивают набор, представляющий собой совокупность кортежей.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
Другой способ выбора кортежей — контекстуальный. Он зависит от элементов, присутствующих в точке обзора сетки Smart View во время расчета. Для этого в сценарии расчета функцию @GRIDTUPLES необходимо указать в качестве аргумента инструкции FIX.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
Если такой сценарий расчета из Smart View применяется к сетке ниже, рассчитываются только отображаемые комбинации продуктов и рынков. Например, комбинация "Diet Cola"->Massachusetts не рассчитывается, так как она не отображается в сетке явным образом. Обратите внимание, что рассчитываются все сценарии (третье разреженное измерение в этом образце куба), даже если в сетке отображается только значение Actual (Фактический). Это связано с тем, что измерение Scenario не является частью инструкции GRIDTUPLES в сценарии расчета.
Выбор кортежа, осуществляемый с помощью явных списков кортежей или с помощью функции @GRIDTUPLES, применим только в контексте команды расчета FIX…ENDFIX. Синтаксис инструкции FIX расширен для охвата выбора кортежей:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Используя сетку Smart View и инструкцию FIX сценария расчета Essbase, можно рассчитать выбранные кортежи элементов на основе точки обзора сетки (POV). Кроме того, в инструкцию FIX можно явно ввести комбинации кортежей, удалив зависимость от конкретной сетки Smart View, чтобы определить область расчетов.
Расчет выбранных кортежей помогает эффективно работать с асимметричными областями как в сценариях расчета, так и в сетках Smart View.
Рассмотрим несколько примеров.
Чтобы ознакомиться с примерами, выгрузите шаблон рабочей книги CalcTuple_Tuple.xlsx
из раздела Технические > Расчеты
папки Галерея в области Файлы в веб-интерфейсе Essbase. Инструкции см. на листе README рабочей книги.
Демонстрируя особенности расчетов блочного хранения в Essbase по умолчанию, которые возникают, если не выбраны кортежи, приведенный ниже сценарий вычисления рассчитывает перекрестное произведение всех элементов измерений Product и Market из сетки Smart View.
С помощью двух переменных подстановки времени выполнения (RTSV), определенных в блоке SET RUNTIMESUBVARS, расчет ограничивается в зависимости от наличия в сетке точек обзора Product и Market, когда расчет выполняется из Smart View.
SET RUNTIMESUBVARS { ProductGridMembers = POV <RTSV_HINT><svLaunch> <description>All Product's members on the grid</description> <type>member</type> <dimension>Product</dimension><choice>multiple</choice> </svLaunch></RTSV_HINT>; MarketGridMembers = POV <RTSV_HINT><svLaunch> <description>All Market's members on the grid</description> <type>member</type> <dimension>Market</dimension><choice>multiple</choice> </svLaunch></RTSV_HINT>; }; FIX ( &ProductGridMembers, &MarketGridMembers ) Marketing( Marketing = Marketing +1; ); ENDFIX
Выбирая кортеж измерений Product и Market с помощью функции @GRIDUPLES, данный сценарий расчета блочного хранилища Essbase вычисляет кортежи только для этих двух измерений, ограничивая их область действия элементами, присутствующими в сетке Smart View на момент выполнения вычисления в Smart View.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
Фиксируя только разреженные измерения, именованные в кортеже, расчет охватывает гораздо меньшее количество блоков, чем при расчете по умолчанию. Однако все элементы из измерений, не упомянутые в данном исправлении (год, сценарий), вычисляются с помощью этого сценария расчета.
С помощью функции @GRIDTUPLES и переменной подстановки времени выполнения этот сценарий расчета блочного хранилища Essbase вычисляет только выбранные кортежи из сетки на основе выбранных разреженных измерений в запросе RTSV.
Переменная подстановки времени выполнения &DimSelections, которая определена в блоке SET RUNTIMESUBVARS, ограничивает область расчетов только разреженными измерениями куба, за исключением измерения Scenario. Функция @GRIDUPLES, используемая в инструкции FIX, вызывает эту переменную, ограничивая количество вычисляемых пересечений.
SET RUNTIMESUBVARS { DimSelections = "Version", "Site", "Entity", "Product", "Market" <RTSV_HINT><svLaunch> <description>List two or more sparse dimensions used for forming calculation tuples:</description> <type>string</type> </svLaunch></RTSV_HINT>; }; FIX ( {@GRIDTUPLES(&DimSelections)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
Расчет охватывает еще меньшее количество блоков, чем в предыдущем примере, поскольку в данном случае определение кортежа распространяется на более разреженные измерения за пределами раздела "Продукт > Рынок".
Чтобы ознакомиться с примерами, выгрузите шаблон рабочей книги CalcTuple_Tuple.xlsx
из раздела "Технические > Расчеты" папки Галерея в области Файлы веб-интерфейса Essbase. Инструкции см. на листе README рабочей книги.