Selecionando tuplas, você pode focar seus cálculos do Essbase na grade ativa do Smart View, limitando seu escopo a fatias específicas de dados em seu cubo de armazenamento em blocos.
As seguintes seções descrevem o cálculo de tupla:
Para obter a sintaxe da implantação de @GRIDTUPLES em um script de cálculo, consulte FIX…ENDFIX.
Selecionando tuplas, você pode focar seus cálculos do Essbase na grade ativa do Smart View, limitando seu escopo a fatias específicas de dados em seu cubo de armazenamento em blocos.
A seleção de tupla ajuda você a otimizar os cálculos de grade assimétrica entre as dimensões, evitando cálculo em excesso.
As tuplas de cálculo do Essbase diferem daquelas usadas nas consultas MDX. O desempenho do cálculo e o tamanho do cubo são orientados principalmente pelo número de blocos no cubo (de acordo com um tamanho de bloco específico). Por esse motivo, as tuplas de cálculo são especificadas apenas para combinações de membros dispersos. Além disso, para facilidade do script de cálculo, diversos membros de uma única dimensão dispersa podem ser incluídos em uma especificação de tupla de cálculo. Por exemplo, se você especificar ("New York", "California", "Actual", "Cola") como tupla de cálculo, irá calcular as seguintes interseções de célula:
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
Considere a seguinte grade simétrica. É simétrica porque cada produto tem o mesmo mercado e cenário (Actual) representados na grade.
A grade seguinte é assimétrica, porque o produto Diet Cola tem menos mercados na grade do que o produto Cola.
O escopo de cálculo padrão, quando mais de uma dimensão está em uma instrução FIX ou em um ponto de vista (POV) da grade do Smart View, seria calcular o produto cruzado (todas as combinações possíveis) dos membros na FIX ou na grade. Em outras palavras, um cálculo orientado a POV no qual as combinações de produto e mercado são extraídas da grade calcula todas estas combinações de linha/membro:
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"
Isso pode ter mais atividade de cálculo do que você precisa. Se você quiser calcular apenas as combinações mostradas na grade, poderá especificar quais tuplas calcular e limitar o cálculo a uma fatia menor. As tuplas de cálculo também podem reduzir o tempo de cálculo e o tamanho do cubo.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
Uma tupla de cálculo é a forma de representar uma fatia de dados de membros, em duas ou mais dimensões dispersas, a ser usada em um cálculo de armazenamento em blocos do Essbase.
Exemplos de tuplas de cálculo válidas:
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
Se você escrever expressões MDX, esteja ciente destas restrições de tupla que se aplicam a MDX:
No entanto, quando você selecionar as tuplas nos scripts de cálculo, esses requisitos serão flexibilizados por questões práticas. Você poderá escrever livremente expressões de tupla, e estas poderão descrever listas de membros, conforme esta tupla: (@Children(East), Cola)
.
Uma maneira fácil de selecionar tuplas seria inseri-las explicitamente em um script de cálculo, como uma lista dentro da instrução FIX.
Lembre-se de que o formato de uma instrução FIX é semelhante a este:
FIX (fixMbrs) COMMANDS ; ENDFIX
Na instrução FIX a seguir, duas tuplas são especificadas antes do início do bloco de comandos. As tuplas foram colocadas entre chaves { } que delimitam um conjunto, que é uma coleção de tuplas.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
Outra maneira de selecionar tuplas seria contextualmente, com base em se os membros estão presentes em um POV da grade do Smart View no momento da execução do cálculo. Isso é feito informando a função @GRIDTUPLES como argumento para FIX, no script de cálculo.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
Se você executar esse script de cálculo no Smart View conforme a grade abaixo, somente as combinações exibidas de produtos e mercados serão calculadas. Por exemplo, "Diet Cola"->Massachusetts não é calculado, visto que não é mostrado explicitamente na grade. Observe que todos os cenários (a terceira dimensão dispersa nesse cubo de amostra) são calculados, ainda que somente Actual seja mostrado na grade. Isso se deve ao fato de que a dimensão Cenário não faz parte da instrução GRIDTUPLES no script de cálculo.
A seleção de tupla, quer seja feita usando listas explícitas de tuplas ou usando a função @GRIDTUPLES, só é aplicável no contexto do comando de cálculo FIX…ENDFIX. A sintaxe da instrução FIX é expandida para ativar a seleção de tupla:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Usando uma grade do Smart View e uma instrução FIX de script de cálculo do Essbase, você pode calcular tuplas de membros selecionadas com base no ponto de vista (POV) da grade. Se preferir, você poderá digitar explicitamente as combinações de tuplas em sua instrução FIX, removendo a dependência de uma grade do Smart View em particular para definir o escopo de cálculo.
O cálculo de tuplas selecionadas ajuda a trabalhar de forma eficiente com regiões assimétricas em scripts de cálculo e grades do Smart View.
Considere os seguintes exemplos:
Para testar os exemplos, faça download do modelo de pasta de trabalho CalcTuple_Tuple.xlsx
na seção Técnico > Cálculo
da pasta galeria na área Arquivos da interface web do Essbase. Consulte a planilha README na pasta de trabalho para obter instruções.
Demonstrando o comportamento de cálculo padrão de armazenamento em blocos do Essbase que ocorre quando você não seleciona tuplas, o script de cálculo a seguir calcula o produto cruzado inteiro dos membros das dimensões Produto e Mercado em uma grade do Smart View.
Com a ajuda de duas variáveis de substituição de runtime (RTSV) definidas no bloco SET RUNTIMESUBVARS, o cálculo se limita a quaisquer que sejam os pontos de vista Produto e Mercado presentes na grade quando o cálculo é executado no 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
Usando a função @GRIDTUPLES para selecionar a tupla de dimensões Produto e Mercado, esse script de cálculo de armazenamento em blocos do Essbase só calcula tuplas dessas duas dimensões, limitando seu escopo aos membros presentes em uma grade do Smart View no instante em que o cálculo é executado no Smart View.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
Fixando apenas nas dimensões dispersas nomeadas na tupla, o cálculo inclui um número muito menor de blocos do que um cálculo padrão incluiria. Entretanto, todos os membros das dimensões não mencionadas no fixo (Ano, Cenário) são calculados por esse script de cálculo.
Usando a função @GRIDTUPLES e uma variável de substituição do runtime, esse script de cálculo de armazenamento em blocos do Essbase só calcula as tuplas selecionadas da grade, com base nas seleções de dimensão dispersa no prompt RTSV.
A variável de substituição do runtime &DimSelections, que é definida no bloco SET RUNTIMESUBVARS, limita o escopo de cálculo a apenas as dimensões dispersas do cubo, excluindo Cenário. A função @GRIDTUPLES usada na instrução FIX chama essa variável, limitando o número de interseções que são calculadas.
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
O cálculo inclui um número ainda menor de blocos do que o exemplo anterior, porque nesse caso, a definição de tupla se estende a mais dimensões dispersas além de Product->Market.
Para testar os exemplos, faça download do modelo de pasta de trabalho CalcTuple_Tuple.xlsx
na seção Técnico > Cálculo da pasta galeria na área Arquivos da interface web do Essbase. Consulte a planilha README na pasta de trabalho para obter instruções.