Al optimizar los cubos de BSO se reduce el tamaño de la base de datos; implica los siguientes procesos:
Never como operador de consolidación para miembros con el tipo de datos Lista inteligente, Fecha, Texto y Porcentaje.Realización de una reestructuración de cubo explícita
En Planning, puede ejecutar una reestructuración de cubo explícita manualmente o mediante un trabajo. También puede reestructurar cubos mediante el comando restructureCube de EPM Automate o la API de REST de Reestructurar cubo.
Note:
Para reestructurar el cubo mediante Calculation Manager:
Análisis de datos en un cubo
Empiece por generar el informe de análisis de bloques de Essbase. Consulte las siguientes fuentes de información:
Note:
El cubo se coloca en el modo de solo lectura cuando exporta los datos del cubo al archivo de exportación que se utiliza como origen para generar el informe de análisis de bloques de Essbase. Dependiendo del tamaño del cubo, la exportación puede tardar un poco. Por ello, se recomienda que clone la instancia en una instancia de prueba para llevar a cabo este análisis.El informe de análisis de bloques de Essbase proporciona información sobre estas tres áreas:
Porcentaje de celdas solo con valores cercanos a cero, que muestra el porcentaje de celdas con valores cercanos a cero (como 0,0000000001604) en bloques
Conversión a cero de valores cercanos a cero en un cubo de BSO
Para eliminar valores cercanos a cero o muy pequeños en dimensiones ligeras del cubo de BSO, utilice la función @round o @truncate, que los convierte en ceros. Posteriormente, estos valores cero se pueden eliminar y reemplazar por bloques #missing. Consulte Eliminación de ceros en un cubo de BSO.
Para convertir a cero los valores cercanos a cero:
Configure el entorno de reglas de negocio para optimizar esta regla. Esta regla está definida actualmente para su ejecución en el nivel 0. Una vez que los valores cercanos a cero se convierten a cero y se borran del cubo (consulte la siguiente sección), esos valores también se borran de los miembros de nivel superior durante la siguiente agregación si SET AGGMISSG está activado.
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK OFF;
SET CREATEBLOCKONEQ OFF;
FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
Note:
UPDATECALC, CREATENONMISSINGBLK y CREATEBLOCKONEQ estén desactivados de forma predeterminada, Oracle recomienda desactivarlos explícitamente en la regla de negocio.SparseDim" por los nombres de las dimensiones de espacio en las que se vayan a reemplazar los bloques cero.FIXPARALLEL para ayudar a mejorar el rendimiento, por ejemplo, FIXPARALLEL(4, @RELATIVE("Scenario",0)).ENDFIXPARALLEL.Diseño de cálculo 1 (para un cálculo denso o ligero)
Este cálculo cambia a cero los valores cercanos a cero.
"DenseMbr" = @round("DenseMbr",<Insert Decimal Place>);
"SparseMbr" = @round("SparseMbr ",<Insert Decimal Place>);
Diseño de cálculo 2 (solo para miembros densos en modo Block)
"DenseBlockHeader" (
@CALCMODE(BLOCK);
"DenseMbr" =@round("DenseMbr",<Insert Decimal Place>);
)
Note:
ReemplaceDenseMbr, SparseMbr y DenseBlockHeader por los valores reales.
Después de ejecutar esta regla, elimine los ceros resultantes. Consulte Eliminación de ceros en un cubo de BSO para obtener instrucciones.
Eliminación de ceros en un cubo de BSO
Para empezar, elimine los bloques cero de las dimensiones ligeras del cubo. Para ello, reemplácelos por bloques #missing.
Para reemplazar los bloques cero con bloques #missing:
Establezca el entorno de la regla de negocio para optimizar esta regla de negocio:
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK OFF;
SET CREATEBLOCKONEQ OFF;
FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
Note:
UPDATECALC, CREATENONMISSINGBLK y CREATEBLOCKONEQ están desactivados de forma predeterminada. Oracle recomienda desactivarlos explícitamente en la regla de negocio.SparseDim" por los nombres de las dimensiones de espacio en las que se vayan a reemplazar los bloques cero.FIXPARALLEL para ayudar a mejorar el rendimiento, por ejemplo, FIXPARALLEL(4, @RELATIVE("Scenario",0)).ENDFIXPARALLEL.Diseño de cálculo 1 (para un cálculo denso o ligero)
Este cálculo genera el valor original y cambia los valores cero a #missing.
"DenseMbr" = "DenseMbr" * "DenseMbr" / "DenseMbr"; "SparseMbr" = "SparseMbr" * "SparseMbr" / "SparseMbr";
Diseño de cálculo 2 (solo para miembros densos en modo Block)
"DenseBlockHeader" (
@CALCMODE(BLOCK);
IF ("DenseMbr" == 0)
"DenseMbr" = #Missing;
ENDIF
Note:
ReemplaceDenseMbr, SparseMbr y DenseBlockHeader por los valores reales.Uso de Never como operador de consolidación para miembros con tipos de datos Lista inteligente, Fecha, Texto y Porcentaje
Los miembros de dimensión con un tipo de datos Lista inteligente, Fecha, Texto y Porcentaje deben usar Never como operador de consolidación. El uso del operador de consolidación de suma aumenta el tamaño del cubo sin añadir ningún valor. El uso de Ignore como operador de consolidación solo detendrá la suma en la dimensión del miembro; no detendrá la acumulación de valores de otras dimensiones, lo que puede crear bloqueos innecesario.