Optimización de cubos de BSO

Al optimizar los cubos de BSO se reduce el tamaño de la base de datos; implica los siguientes procesos:

  • Ejecute una reestructuración explícita.
  • Ejecute el informe de análisis de bloques de Essbase para identificar valores repetidos y ceros en el cubo de BSO.
  • Reemplazar los bloques cero por bloques #missing.
  • Usar 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:

  • No es un refrescamiento de base de datos, sino una reestructuración densa explícita del cubo.
  • Una reestructuración explícita elimina los bloques #missing para reducir el tamaño de la base de datos de BSO.

Para reestructurar el cubo mediante Calculation Manager:

  1. Enel Navegador, seleccione Reglas en Crear y gestionar para abrir Calculation Manager.
  2. Seleccione Acciones y, a continuación, Propiedades de la base de datos.
  3. En Vista empresarial, expanda la base de datos que contiene el cubo que desea reestructurar.
  4. Haga clic con el botón derecho en el cubo que desea reestructurar y seleccioneReestructurar base de datos.

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:

  1. Porcentaje de bloques solo con cero: muestra los bloques que contienen solo ceros como porcentaje de todos los bloques incluidos en el archivo de exportación.
  2. 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

  3. 10 principales valores de celda numérica repetidos por porcentaje de celdas numéricas: muestra los 10 principales valores repetidos como porcentaje de todos los valores del archivo de exportación.
  4. 100 principales combinaciones de miembros densos con valores repetidos: muestra las 100 principales combinaciones de miembros densos con valores repetidos en el cubo. En la columna Valor de celda se muestra un valor para cada miembro para que aparezca en la jerarquía como una columna diferente. Por ejemplo, si el periodo está en la columna, habrá una columna diferente para enero, febrero, etc. Otras dimensiones densas aparecen en las filas. Esto debería ayudarle a identificar las ubicaciones de los valores repetidos.

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:

  1. Cree una regla de negocio para redondear a cero o truncar en cero valores cercanos a cero o muy pequeños.

    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:

    • Aunque UPDATECALC, CREATENONMISSINGBLK y CREATEBLOCKONEQ estén desactivados de forma predeterminada, Oracle recomienda desactivarlos explícitamente en la regla de negocio.
    • Asegúrese de reemplazar "SparseDim" por los nombres de las dimensiones de espacio en las que se vayan a reemplazar los bloques cero.
    • Use FIXPARALLEL para ayudar a mejorar el rendimiento, por ejemplo, FIXPARALLEL(4, @RELATIVE("Scenario",0)).
    • Asegúrese de especificar ENDFIXPARALLEL.
  2. Utilice uno de los siguientes diseños de cálculo optimizados para cambiar los valores cercanos a cero a valores cero. Seleccione el diseño de cálculo que dé mejor resultado en función de su diseño de dimensión, patrones de datos y procesos.

    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:

    Reemplace DenseMbr, 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:

  1. Cree una regla de negocio 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:

    • Si bien UPDATECALC, CREATENONMISSINGBLK y CREATEBLOCKONEQ están desactivados de forma predeterminada. Oracle recomienda desactivarlos explícitamente en la regla de negocio.
    • Asegúrese de reemplazar "SparseDim" por los nombres de las dimensiones de espacio en las que se vayan a reemplazar los bloques cero.
    • Use FIXPARALLEL para ayudar a mejorar el rendimiento, por ejemplo, FIXPARALLEL(4, @RELATIVE("Scenario",0)).
    • Asegúrese de especificar ENDFIXPARALLEL.
  2. Use uno de los siguientes diseños de cálculos optimizados para cambiar los bloques cero a bloques #missing. Seleccione el diseño de cálculo que dé mejor resultado en función de su diseño de dimensión, patrones de datos y procesos.

    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:

    Reemplace DenseMbr, 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.