Расчет выбранных кортежей

Выбрав кортеж, вы можете выполнить расчеты Essbase в активной сетке Smart View, ограничив их область определенными срезами данных в кубе блочного хранения.

В следующих разделах описан расчет кортежа:

Синтаксис для использования @GRIDTUPLES в сценарии расчета см. в описании команды FIX…ENDFIX.

Пример использования для расчета кортежа

Выбрав кортеж, вы можете выполнить расчеты Essbase в активной сетке Smart View, ограничив их область определенными срезами данных в кубе блочного хранения.

Выбор кортежа помогает оптимизировать расчеты асимметричной сетки по измерениям, избегая лишних расчетов.

Расчетные кортежи Essbase отличаются от кортежей, используемых в MDX-запросах. Производительность расчета и размер куба главным образом зависят от количества блоков в кубе (с определенным размером блока). По этой причине расчетные кортежи указываются только для комбинаций разреженных элементов. Кроме того, для упрощения создания сценариев расчета в спецификацию расчетных кортежей можно включить несколько элементов из одного разреженного измерения. Например, если указать в качестве расчетного кортежа ("New York", "California", "Actual", "Cola"), то будут вычислены указанные ниже пересечения ячеек.

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

Рассмотрим указанную ниже симметричную сетку. Она симметрична, поскольку для каждого продукта в таблице представлены одинаковые рынки и сценарий (фактические).

Симметричная сетка с фактическими значениями Jan для пяти рынков Cola и тех же пяти рынков Diet Cola

Указанная ниже сетка асимметрична, так как продукт Diet Cola содержит меньше рынков в сетке, чем продукт Cola.

Асимметричная сетка с фактическими значениями Jan для пяти рынков Cola, но только для двух рынков Diet 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:

  • только один элемент из каждого измерения может быть включен в кортеж 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 в сценарии расчета.

Асимметричная сетка с фактическими значениями Jan для пяти рынков Cola, но только для двух рынков Diet Cola

Выбор кортежа, осуществляемый с помощью явных списков кортежей или с помощью функции @GRIDTUPLES, применим только в контексте команды расчета FIX…ENDFIX. Синтаксис инструкции FIX расширен для охвата выбора кортежей:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList — это набор кортежей, разделенных запятыми.
  • dimensionList содержит как минимум два разреженных измерения, элементы которых из активной сетки Smart View используются для определения областей расчета. (В сценариях расчета для определения кортежей можно использовать только разреженные измерения.)
  • fixMbrs — элемент или список элементов.

Примеры выбора кортежа для уменьшения области расчетов

Используя сетку Smart View и инструкцию FIX сценария расчета Essbase, можно рассчитать выбранные кортежи элементов на основе точки обзора сетки (POV). Кроме того, в инструкцию FIX можно явно ввести комбинации кортежей, удалив зависимость от конкретной сетки Smart View, чтобы определить область расчетов.

Расчет выбранных кортежей помогает эффективно работать с асимметричными областями как в сценариях расчета, так и в сетках Smart View.

Рассмотрим несколько примеров.

  • Без выбора кортежа- Расчет в режиме по умолчанию на основе текущей точки обзора сетки Smart View (POV). Расчет не ограничивается какими-либо конкретными кортежами.
  • Выбор именованных разреженных измерений- Расчет кортежей на основе двух или более разреженных измерений, указанных в сценарии расчета. Расчет ограничен элементами из измерений кортежей, которые присутствуют в сетке 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 рабочей книги.