Cómo el cálculo dinámico cambia el orden de cálculo

Cálculo dinámico optimiza el rendimiento del cálculo por lotes y cambia el orden en el que Essbase calcula los valores. Las dimensiones dispersas se calculan primero. Tome precauciones al utilizar Dynamic Calc en juegos de datos asimétricos o con miembros Two Pass.

El uso de valores de datos calculados dinámicamente cambia el orden en el que Essbase calcula los valores y puede tener implicaciones sobre cómo administrar el cubo.

Orden de cálculo para el cálculo dinámico

Cuando se utiliza Cálculo dinámico, Essbase calcula primero los valores de las dimensiones ligeras y, a continuación, densos. Los valores densos se calculan en el orden de las cuentas, el tiempo, las series temporales, otras dimensiones densas y, por último, los atributos.

Cuando Essbase calcula dinámicamente los valores de datos, los calcula en un orden distinto del orden de cálculo de la base de datos por lotes.

Durante los cálculos por lotes, Essbase calcula la base de datos en el siguiente orden:

  1. Dimensión etiquetada como cuentas

  2. Dimensión etiquetada como hora

  3. Otras dimensiones densas (en el orden en el que aparecen en el esquema de la base de datos)

  4. Otras dimensiones ligeras (en el orden en que aparecen en el esquema de la base de datos)

  5. Cálculos de dos pasos

Consulte Block Storage Database Calculation Order.

Para los valores calculados dinámicamente, al recuperar, Essbase calcula los valores calculando la base de datos en el siguiente orden:

  1. Dimensiones ligeras

    • Si la dimensión etiquetada como tiempo es dispersa y el esquema de la base de datos utiliza datos de serie temporal, Essbase basa el cálculo disperso en la dimensión de tiempo.

    • De lo contrario, Essbase basa el cálculo en la dimensión que normalmente utiliza para un cálculo por lotes.

  2. Dimensiones densas

    1. Dimensión etiquetada como cuentas, si es densa

    2. Dimensión etiquetada como tiempo, si es densa

    3. Cálculos de series temporales

    4. Dimensiones densas restantes

    5. Cálculos de dos pasos

    6. Atributos

Si la recuperación de datos utiliza miembros de atributo, el último paso del orden de cálculo es la suma de los atributos. El cálculo de atributos realiza la agregación sobre la marcha en los bloques de datos que coinciden con los miembros de atributo especificados en la consulta. Cuando la consulta contiene miembros de cálculo de dos transferencias, el cálculo de atributo aplica la fórmula de miembro de cálculo de dos transferencias después de recopilar todos los valores agregados. Este cálculo de dos transferencias utiliza los valores de datos del cálculo de atributos, no los valores de un bloque de datos real.

El uso de miembros de atributo en la consulta hace que Essbase no tenga en cuenta el valor del miembro de equilibrio de tiempo en los cálculos dinámicos. Durante las recuperaciones que no utilizan atributos, el valor del miembro de balance de tiempo se aplica a los cálculos. La diferencia en el procedimiento de cálculo entre el uso y el no uso de miembros de atributo genera resultados diferentes para los miembros de tiempo de nivel superior que se calculan dinámicamente.

Durante las recuperaciones que no utilizan atributos, estos miembros calculados dinámicamente se calculan en el último paso y, por lo tanto, aplican la funcionalidad de balance de tiempo correctamente. Sin embargo, durante las recuperaciones que utilizan atributos, la suma del atributo es el último paso aplicado. La diferencia en el orden de cálculo produce dos resultados diferentes y predecibles para los miembros de tiempo de nivel superior que se calculan dinámicamente.

Orden de cálculo para el cálculo dinámico de miembros de dos pasadas

Cálculo dinámico cambia el orden en el que Essbase calcula los valores. Tome precauciones al usar Dynamic Calc con miembros Two Pass. Considere el uso del modo híbrido con orden de resolución en su lugar.

Tenga en cuenta la siguiente información para asegurarse de que Essbase produce el resultado de cálculo necesario cuando calcula dinámicamente los valores de datos de los miembros etiquetados como de dos pasos (consulte Cálculo de dos pasos).

Note:

No utilice el cálculo en dos pasadas en cubos del modo híbrido. Use solo solve order (Orden de resolución).

Si varios miembros de dimensión densa de Cálculo dinámico se etiquetan como de dos transferencias, Essbase realiza el cálculo dinámico en la primera transferencia y, a continuación, calcula los miembros de dos transferencias en este orden:

  1. Miembros de dos transferencias en la dimensión de cuentas, si existen

  2. Miembros de dos transferencias en la dimensión de tiempo, si existen

  3. Miembros de dos pasos en las dimensiones densas restantes en el orden en que aparecen las dimensiones en el esquema

Por ejemplo, en la base de datos Sample.Basic, suponga lo siguiente:

  • Margin% en la dimensión de medidas densas (la dimensión etiquetada como cuentas) se etiqueta como Cálculo dinámico y de dos pasos.

  • La variación en la dimensión Scenario densa se etiqueta como Cálculo dinámico y de dos transferencias.

Essbase calcula primero el miembro de dimensión de cuentas. Por lo tanto, Essbase calcula el % de margen (a partir de la dimensión Measures) y, a continuación, calcula la varianza (a partir de la dimensión Scenario).

Si Scenario es una dimensión ligera, Essbase calcula la variación en primer lugar, siguiendo el orden de cálculo normal para los cálculos dinámicos. Essbase calcula el porcentaje de margen. Consulte Orden de cálculo para el cálculo dinámico.

Este orden de cálculo no produce el resultado necesario, porque Essbase necesita calcular el % de margen -> Variación utilizando la fórmula en % de margen y no la fórmula en Variación. Puede evitar este problema convirtiendo Scenario en una dimensión densa. Este problema no se produce si la dimensión Measures (la dimensión de cuentas) está dispersa, porque Essbase aún calcula Margin% primero.

Orden de cálculo para datos asimétricos

Puede que Cálculo dinámico de Essbase no sea adecuado para su uso con conjuntos de datos asimétricos. Revise los ejemplos de este tema con el caso de uso.

Debido a que el orden de cálculo de Cálculo dinámico difiere del de los cálculos por lotes, en algunos esquemas de cubo, puede obtener resultados de cálculo diferentes si etiqueta determinados miembros como Cálculo dinámico. Estas diferencias se producen cuando Essbase calcula dinámicamente los datos asimétricos.

Los cálculos de datos simétricos producen los mismos resultados independientemente de la dimensión que se calcule.

Con el juego de datos del siguiente ejemplo simétrico, el cálculo para Qtr1-> Profit produce el mismo resultado tanto si se calcula a lo largo de la dimensión etiquetada como tiempo como dimensión etiquetada como cuentas. Calculando a lo largo de la dimensión de tiempo, agregue los valores para Jan, Feb y Mar:

50+100+150=300 

Calculando a lo largo de la dimensión de cuentas, resta Qtr1 -> COGS de Qtr1 -> Ventas:

600–300=300 

Tabla 21-1 Ejemplo de cálculo simétrico

Tiempo -> Cuentas Ene Feb Mar Trim1

Ventas

100

200

300

600

COGS

50

100

150

300

Ganancias (Ventas – CPV)

50

100

150

300

Los cálculos de datos asimétricos se calculan de forma diferente en diferentes dimensiones.

Con el juego de datos del siguiente ejemplo asimétrico, el cálculo de East -> Sales produce el resultado correcto al calcular a lo largo de la dimensión Market, pero produce un resultado incorrecto al calcular a lo largo de la dimensión Accounts. El cálculo a lo largo de la dimensión Market, la adición de los valores para Nueva York, Florida y Connecticut produce los resultados correctos:

50 + 100 + 100 = 250

Al calcular a lo largo de la dimensión de cuentas, multiplicar el valor East -> Price por el valor East -> UnitsSold produce resultados incorrectos:

15 * 50 = 750

Tabla 21-2 Ejemplo de cálculo asimétrico

Mercado -> Cuentas New York Florida Connecticut Este

Unidades vendidas

10

20

20

50

Price

5

5

5

15

Ventas (precio * unidades vendidas)

50

100

100

250

En el siguiente esquema, East es una dimensión dispersa y Accounts es una dimensión densa:


En esta imagen se muestra un esquema en el que East es una dimensión dispersa y Accounts es una dimensión densa.

Si East y Sales están etiquetados como Cálculo dinámico, Essbase calcula un resultado diferente al que si East y Sales no están etiquetados como Cálculo dinámico.

Si East y Sales no son miembros de Dynamic Calc, Essbase produce el resultado correcto calculando estas dimensiones:

  1. Dimensión Cuentas densas: cálculo de los valores de UnitsSold, Price, and Sales para Nueva York, Florida y Connecticut

  2. Dimensión Sparse East: agregación de los valores calculados para UnitsSold, Price, and Sales para Nueva York, Florida y Connecticut para obtener los valores de Sales para East

Si East y Sales son miembros de Dynamic Calc, Essbase produce un resultado incorrecto calculando estas dimensiones:

  1. Dimensión Sparse East: agregación de los valores de UnitsSold, Price, and Sales para Nueva York, Florida y Connecticut para obtener los valores de East

  2. Valores para East -> Sales: toma de los valores agregados en los bloques de datos East y realiza un cálculo de fórmula con estos valores para obtener el valor de Sales

Para evitar este problema y asegurarse de obtener los resultados necesarios, no etiquete al miembro Sales como Cálculo dinámico.

Orden de resolución en el modo híbrido

El orden de resolución de Essbase determina el orden en el que se ejecutan los cálculos dinámicos en el modo híbrido. Puede personalizar el orden de resolución o aceptar el predeterminado, que está optimizado para conseguir un rendimiento y un análisis de dependencia mejores.

El concepto de orden de resolución se aplica a la ejecución de cálculo dinámico, tanto si se ha iniciado por una fórmula de miembro dinámico como por una dependencia dinámica en un script de cálculo. Cuando se evalúa una celda en una consulta multidimensional, el orden en que se deben resolver los cálculos puede ser ambiguo, a menos que se especifique el orden de resolución para indicar la prioridad de cálculo necesaria.

Puede definir el orden de resolución para dimensiones o miembros, o bien puede usar el orden de resolución de Essbase por defecto. El orden de resolución mínimo que puede definir es 0, y el máximo 127. Cuanto mayor sea el número de orden de resolución de un miembro, más tardará en calcularse. Por ejemplo, un miembro con un orden de resolución de 1 se resolverá antes que un miembro con un orden de resolución de 2.

Cuando está activado el modo híbrido, el orden de resolución por defecto (también denominado orden de cálculo) tiene un alto nivel de coincidencia con el de las bases de datos de almacenamiento de bloques:

Tipo de dimensión/miembro Valor de orden de resolución por defecto
Miembros almacenados 0
Miembros de dimensión ligera 10
Miembros de dimensión de cuentas densa 30
Miembros de dimensión de tiempo densa 40
Miembros de dimensión normal densa 50
Miembros de dimensión de atributo 90
Miembros dinámicos en dos pasadas 100
miembros calculados o conjuntos con nombre de MDX (definidos en MDX With) 120

En resumen, el orden de resolución por defecto del modo híbrido dicta que los miembros almacenados se calculen antes de los miembros de cálculo dinámico, mientras que las dimensiones ligeras se calculan antes que las dimensiones densas, en el orden en que aparecen en el esquema (de arriba a abajo).

Los miembros dinámicos (con o sin fórmulas) que no tengan un orden de resolución especificado heredan el orden de resolución de su dimensión, a menos que estén etiquetados como del tipo en dos pasadas.

El cálculo en dos pasadas es una configuración que puede aplicar, en modo de almacenamiento de bloques, a los miembros con fórmulas que se deben calcular dos veces para generar el valor correcto.

Note:

No utilice el cálculo en dos pasadas en cubos del modo híbrido. Use solo solve order (Orden de resolución).

Las dos pasadas no se pueden aplicar en el modo híbrido, y cualquier miembro etiquetado como en dos pasadas se calcula en último lugar, tras los atributos. En el modo híbrido, debe implantar un orden de resolución personalizado, en lugar de dos pasadas, si el orden de resolución por defecto no cumple sus requisitos.

El orden de resolución por defecto en el modo híbrido está optimizado para estos escenarios:

  • Referencias posteriores, en las que una fórmula de miembro dinámica hace referencia a un miembro que vaya detrás en el orden de esquema. No hay ninguna dependencia de orden de esquema en el modo híbrido.

  • La agregación de los valores secundarios basada en el orden de esquema supone un mayor nivel de coincidencia con la agregación mediante fórmulas equivalentes.

  • Miembros densos dinámicos como dependencias dentro de las fórmulas ligeras. En el modo híbrido, si una fórmula ligera hace referencia a un miembro dinámico denso, la referencia se ignora porque las dimensiones ligeras se calculan en primer lugar. Para cambiar esto, asigne un orden de resolución a la dimensión ligera que sea mayor que (se haya calculado después de) el orden de resolución de la dimensión densa.

Personalización del orden de resolución

Si tiene que ajustar el comportamiento del cálculo dinámico en el modo híbrido, personalice el orden de resolución de las dimensiones y los miembros para modificarlo sin hacer cambios importantes en el esquema.

Si implanta un orden de resolución personalizado, este sustituye el orden de resolución por defecto. Si los miembros o las dimensiones tienen el mismo orden de resolución, el orden en que aparecen en el esquema (de arriba a abajo) resuelve el conflicto.

A menos que personalice el orden de resolución para algunos miembros, se aplicará el orden de resolución del miembro principal de la dimensión para todos los miembros dinámicos de la dimensión.

Para cambiar el orden de solución, utilice el editor para esquemas en la interfaz web deEssbase o use Smart View (consulte Cambio del orden de solución de un PDV seleccionado).

El orden de resolución mínimo que puede definir es 0, y el máximo 127. Cuanto mayor sea el orden de resolución, más tarde se calculará el miembro.

Para explorar casos de uso para el orden de resolución, consulte las plantillas Orden de resolución en la sección Técnica de la galería de los libros de trabajo de la aplicación, que puede encontrar en el catálogo de archivos de Essbase.

Notas sobre el orden de resolución en el modo no híbrido

En los cubos de almacenamiento agregado:

  • El orden de resolución está definido en 0 para todas las dimensiones.

  • La agregación se ejecuta según el orden de esquema, excepto si:

    • Los miembros de jerarquías almacenadas se procesan primero.
    • Los miembros de jerarquías dinámicas se procesan a continuación.

En los cubos de almacenamiento de bloques no híbridos, el orden de resolución predeterminado es:

  • ligero antes que denso,

  • cuentas antes que tiempo,

  • los atributos, al final.

Note:

Si el orden de resolución de los miembros de cuentas se define manualmente para que sea superior que el orden de resolución de los miembros de tiempo, las cuentas se evaluarán después de los miembros de la serie de tiempo dinámica.