Como o Cálculo Dinâmico Altera a Ordem de Cálculo
O Cálculo Dinâmico otimiza o desempenho do cálculo em lote e altera a ordem em que o Essbase calcula valores. As dimensões esparsas são calculadas primeiro. Tome precauções ao usar o Cálculo Dinâmico em conjuntos de dados assimétricos ou com membros Two Pass.
O uso de valores de dados calculados dinamicamente altera a ordem em que o Essbase calcula os valores e pode ter implicações sobre como você administra o cubo.
Ordem de Cálculo para Cálculo Dinâmico
Quando você usa o Cálculo Dinâmico, o Essbase calcula valores de dimensões esparsas primeiro e, em seguida, denso. Valores densos são calculados na ordem de contas, tempo, séries temporais, outras dimensões densas e, por fim, atributos.
Quando o Essbase calcula valores de dados dinamicamente, ele calcula os dados em uma ordem diferente da ordem de cálculo do banco de dados em lote.
Durante os cálculos em lote, o Essbase calcula o banco de dados na seguinte ordem:
-
Dimensão marcada como contas
-
Dimensão marcada como tempo
-
Outras dimensões densas (na ordem em que aparecem no outline do banco de dados)
-
Outras dimensões esparsas (na ordem em que aparecem no outline do banco de dados)
-
Cálculos em duas etapas
Consulte Ordem de Cálculo do Banco de Dados do Serviço Block Storage.
Para valores calculados dinamicamente, na recuperação, o Essbase calcula os valores calculando o banco de dados na seguinte ordem:
-
Dimensões dispersas
-
Se a dimensão marcada como tempo for esparsa e o outline do banco de dados usar dados de série temporal, o Essbase baseará o cálculo esparso na dimensão de tempo.
-
Caso contrário, o Essbase baseará o cálculo na dimensão que ele normalmente usa para um cálculo em lote.
-
-
Dimensões densas
-
Dimensão marcada como contas, se densa
-
Dimensão marcada como tempo, se densa
-
Cálculos de séries temporais
-
Dimensões densas restantes
-
Cálculos em duas etapas
-
Atributos
-
Se a recuperação de dados usar membros de atributo, a última etapa na ordem de cálculo será a soma dos atributos. O cálculo do atributo executa a agregação dinâmica em blocos de dados que correspondem aos membros do atributo especificados na consulta. Quando a consulta contém membros de cálculo de duas passagens, o cálculo de atributo aplica a fórmula de membro de cálculo de duas passagens após a coleta de todos os valores agregados. Esse cálculo de duas passagens usa os valores de dados do cálculo de atributo, não os valores em um bloco de dados real.
O uso de membros de atributo em sua consulta faz com que o Essbase desconsidere o valor do membro de Saldo de Tempo nos cálculos dinâmicos. Durante as recuperações que não usam atributos, o valor do membro de Saldo de Tempo é aplicado aos cálculos. A diferença no procedimento de cálculo entre o uso e o não uso de membros de atributo gera resultados diferentes para todos os membros de tempo de nível superior que são calculados dinamicamente.
Durante as recuperações que não usam atributos, esses membros calculados dinamicamente são calculados na última etapa e, portanto, aplicam a funcionalidade de saldo de tempo corretamente. No entanto, durante as recuperações que usam atributos, a soma do atributo é a última etapa aplicada. A diferença na ordem de cálculo produz dois resultados diferentes e previsíveis para membros de tempo de nível superior que são calculados dinamicamente.
Ordem de Cálculo para Cálculo Dinâmico de Membros com Duas Aprovações
O Cálculo Dinâmico altera a ordem em que o Essbase calcula valores. Tome precauções ao usar o Cálculo Dinâmico com membros Two Pass. Considere usar o modo híbrido com a ordem de resolução.
Considere as informações a seguir para garantir que o Essbase produza o resultado de cálculo necessário ao calcular dinamicamente valores de dados para membros marcados como de duas passagens (consulte Cálculo de Duas Passas).
Observação:
Não use cálculo em duas etapas com cubos de modo híbrido. Use apenas a ordem de solução.
Se vários membros de dimensão densa do Cálculo Dinâmico forem marcados como dois passos, o Essbase executará o cálculo dinâmico na primeira passagem e, em seguida, calculará os membros de dois passos nesta ordem:
-
Membros de dois passos na dimensão de contas, se houver
-
Membros de dois passos na dimensão de tempo, se houver
-
Membros de dois passos nas dimensões densas restantes na ordem em que as dimensões aparecem no contorno
Por exemplo, no banco de dados Sample.Basic, considere o seguinte:
-
% de Margem na dimensão Medidas Densas (a dimensão marcada como contas) é marcada como Cálculo Dinâmico e dois passos.
-
A variação na dimensão Cenário denso é marcada como Cálculo Dinâmico e dois passos.
O Essbase calcula primeiro o membro da dimensão de contas. Portanto, o Essbase calcula o % de Margem (da dimensão Medidas) e, em seguida, calcula a Variação (da dimensão Cenário).
Se Cenário for uma dimensão esparsa, o Essbase calculará a Variação primeiro, seguindo a ordem de cálculo regular para cálculos dinâmicos. O Essbase calcula o % de Margem. Consulte Ordem de Cálculo para Cálculo Dinâmico.
Esta ordem de cálculo não produz o resultado necessário porque o Essbase precisa calcular % de Margem -> Variação usando a fórmula em % de Margem e não a fórmula em Variação. Você pode evitar esse problema tornando o Cenário uma dimensão densa. Esse problema não ocorrerá se a dimensão Medidas (a dimensão de contas) for esparsa, porque o Essbase ainda calcula a % de Margem primeiro.
Ordem de Cálculo para Dados Assimétricos
O Cálculo Dinâmico do Essbase pode não ser adequado para uso com conjuntos de dados assimétricos. Revise os exemplos neste tópico em relação ao seu caso de uso.
Como a ordem de cálculo do Cálculo Dinâmico difere da ordem de cálculo em batch, em alguns contornos de cubo, você poderá obter resultados de cálculo diferentes se marcar determinados membros como Cálculo Dinâmico. Essas diferenças ocorrem quando o Essbase calcula dinamicamente dados assimétricos.
Os cálculos de dados simétricos produzem os mesmos resultados, independentemente da dimensão calculada.
Usando o conjunto de dados no exemplo simétrico abaixo, o cálculo para Qtr1-> Profit produz o mesmo resultado se você calcular ao longo da dimensão marcada como tempo ou a dimensão marcada como contas. Calculando ao longo da dimensão de tempo, adicione os valores para Jan, Fev e Mar:
50+100+150=300 Calculando ao longo da dimensão de contas, subtraia Trim1 -> COGS de Trim1 -> Vendas:
600–300=300 Tabela 21-1 Exemplo de um Cálculo Simétrico
| Horário -> Contas | Jan | Fev | Mar | Trim1 |
|---|---|---|---|---|
|
Vendas |
100 |
200 |
300 |
600 |
|
COGS |
50 |
100 |
150 |
300 |
|
Profit (Vendas – COGS) |
50 |
100 |
150 |
300 |
Cálculos de dados assimétricos são calculados de forma diferente em diferentes dimensões.
Usando o conjunto de dados no exemplo assimétrico abaixo, o cálculo para Leste -> Vendas produz o resultado correto quando você calcula ao longo da dimensão Mercado, mas produz um resultado incorreto quando você calcula ao longo da dimensão de contas. Calcular ao longo da dimensão Mercado, adicionar os valores para Nova York, Flórida e Connecticut produz os resultados corretos:
50 + 100 + 100 = 250O cálculo ao longo da dimensão de contas, multiplicando o valor Leste -> Preço pelo valor Leste -> UnitsSold produz resultados incorretos:
15 * 50 = 750Tabela 21-2 Exemplo de um Cálculo Assimétrico
| Mercado -> Contas | New York | Flórida | Conectividade | Leste |
|---|---|---|---|---|
|
Unidades Vendidas |
10 |
20 |
20 |
50 |
|
Preço |
5 |
5 |
5 |
15 |
|
Vendas (Preço * UnidadesVendidas) |
50 |
100 |
100 |
250 |
No esboço a seguir, Leste é uma dimensão esparsa e Contas é uma dimensão densa:

Se Leste e Vendas estiverem marcados como Cálculo Dinâmico, o Essbase calculará um resultado diferente do que faz se Leste e Vendas não estiverem marcados como Cálculo Dinâmico.
Se Leste e Vendas não forem membros do Cálculo Dinâmico, o Essbase produzirá o resultado correto calculando estas dimensões:
-
Dimensão Dense Accounts — calculando os valores de UnitsSold, Price, and Sales para Nova York, Flórida e Connecticut
-
Dimensão Esparsa Leste — agregando os valores calculados para UnitsSold, Price, and Sales for New York, Florida and Connecticut para obter os valores de Vendas para East
Se Leste e Vendas forem membros do Cálculo Dinâmico, o Essbase produzirá um resultado incorreto calculando estas dimensões:
-
Dimensão Esparsa Leste — agregando os valores de UnitsSold, Price, and Sales para Nova York, Flórida e Connecticut para obter os valores de East
-
Valores para Leste -> Vendas — obtendo os valores agregados nos blocos de dados Leste e executando um cálculo de fórmula com esses valores para obter o valor para Vendas
Para evitar esse problema e garantir que você obtenha os resultados necessários, não marque o membro de Vendas como Cálculo Dinâmico.
Resolver Problema no Modo Híbrido
A ordem de resolução no Essbase determina a ordem na qual o cálculo dinâmico é executado no modo híbrido. É possível personalizar a ordem de resolução ou aceitar o padrão, que é otimizado para alto desempenho e análise de dependência.
O conceito de ordem de resolução se aplica à execução dinâmica de cálculo, iniciada por uma fórmula de membro dinâmico ou por uma dependência dinâmica em um script de cálculo. Quando uma célula é avaliada em uma consulta multidimensional, a ordem na qual os cálculos devem ser resolvidos pode ser ambígua, a menos que a ordem de resolução seja especificada para indicar a prioridade de cálculo necessária.
Você pode definir a ordem de resolução para dimensões ou membros ou pode usar a ordem de resolução padrão do Essbase. A ordem de resolução mínima que você pode definir é 0 e o máximo é 127. Uma ordem de resolução mais alta significa que o membro é calculado posteriormente; por exemplo, um membro com uma ordem de resolução 1 é resolvido antes de um membro com uma ordem de resolução 2.
Quando o modo híbrido está ativado, a ordem de resolução padrão (também conhecida como ordem de cálculo) corresponde à dos bancos de dados de armazenamento em bloco:
| Tipo de Dimensão/Membro | Valor da Ordem de Resolução Padrão |
|---|---|
| Membros armazenados | 0 |
| Membros da Dimensão Esparsa | 10 |
| Membros da dimensão de Conta densa | 30 |
| Membros da dimensão de Tempo densa | 40 |
| Membros da dimensão regular densa | 50 |
| Membros da dimensão de atributo | 90 |
| Membros dinâmicos em dois passos | 100 |
| Membros ou conjuntos nomeados calculados MDX (definidos em MDX Com) | 120 |
Em resumo, a ordem de resolução padrão no modo híbrido determina que os membros armazenados são calculados antes dos membros dinâmicos do cálculo e as dimensões dispersas são calculadas antes das dimensões densas, na ordem em que aparecem no outline (de cima para baixo).
Membros dinâmicos (com ou sem fórmulas) que não possuem uma ordem de resolução especificada herdam a ordem de resolução de sua dimensão, a menos que sejam marcados como dois passos.
O cálculo de dois passos é uma configuração que você pode aplicar, no modo de armazenamento em blocos, a membros com fórmulas que devem ser calculadas duas vezes para produzir o valor correto.
Observação:
Não use cálculo em duas etapas com cubos de modo híbrido. Use apenas a ordem de solução.
O cálculo de dois passos não é aplicável no modo híbrido, e quaisquer membros marcados como dois passos são calculados por último, depois dos atributos. No modo híbrido, você deve implementar uma ordem de resolução personalizada, em vez de dois passos, se a ordem de resolução padrão não atender aos seus requisitos.
A ordem de resolução padrão no modo híbrido é otimizada para esses cenários:
-
Encaminhar referências, nas quais uma fórmula de membro dinâmico faz referência a um membro que vem posteriormente na ordem de estrutura de tópicos. Não há dependência da ordem de tópicos no modo híbrido.
-
A agregação de valores filho com base na ordem do outline corresponde mais à agregação usando fórmulas equivalentes.
-
Membros densos dinâmicos como dependências em fórmulas dispersas. No modo híbrido, se uma fórmula dispersa fizer referência a um membro dinâmico denso, a referência será ignorada, porque as dimensões dispersas são calculadas primeiro. Para alterar isso, atribua uma ordem de resolução à dimensão dispersa que seja maior que a ordem de resolução da dimensão densa (calculada posteriormente a).
Personalizando a Ordem de Resolução
Caso precise ajustar o comportamento de cálculos dinâmicos no modo híbrido, personalizar a ordem de resolução de dimensões e membros o ajudará a fazer isso sem fazer grandes alterações na estrutura de tópicos.
Se você implementar uma ordem de resolução personalizada, ela substituirá a ordem de resolução padrão. Se os membros ou dimensões tiverem a mesma ordem de resolução, a ordem em que aparecem no outline (de cima para baixo) resolverá o conflito.
A não ser que você personalize uma ordem de resolução para determinados membros, a ordem de resolução do membro da dimensão superior se aplica a todos os membros dinâmicos na dimensão.
Para alterar a ordem de solução, use o editor de tópicos na Interface Web do Essbase ou use o Smart View (consulte Alterando a Ordem de Resolução de um PDV Selecionado).
A ordem de resolução mínima que você pode definir é 0 e o máximo é 127. Uma ordem de resolução mais alta significa que o membro será calculado posteriormente.
Para explorar os casos de uso da ordem de resolução, consulte os modelos Ordem de Resolução na seção Técnica da galeria da pasta de trabalho do aplicativo, que você pode encontrar no catálogo de arquivos no Essbase.
Observações sobre a Ordem de Resolução no Modo Não híbrido
Nos cubos de armazenamento agregado,
-
A ordem de resolução é definida como 0 para todas as dimensões.
-
A agregação é executada na ordem da estrutura, exceto:
- Os membros de hierarquia armazenados são processados primeiro.
- Em seguida, os membros da hierarquia dinâmica são processados.
Em cubos de armazenamento de blocos não híbridos, a ordem de resolução padrão é
-
dispersa antes de densa
-
contas antes de hora
-
últimos atributos
Observação:
Se a ordem de resolução dos membros das Contas for definida manualmente para ser maior que a ordem de resolução dos membros do Tempo, as Contas serão avaliadas após os membros da Série de Tempo Dinâmica.