RESTRUCTURING THE DATABASE / REESTRUCTURAR LA BASE DE DATOS

English (Español a continuación)

I.- TYPES OF RESTRUCTURING

There are two types of restructuring:

  • Implicit restructuring: this is what Essbase performs automatically when some changes are made to the outline.
  • Explicit restructuring: this is done by the user on a voluntary basis.

A) Implicit restructuring

When certain changes are made to the outline Essbase proceeds to restructure the base.

There are different types of restructuring depending on the change made to the outline.

A.1.- Dense restructuring:

  • Occurs when a member of a dense dimension is added, deleted, or moved (if it is a shared member it does not cause restructuring).
  • Also when the order of dimensions is changed.
  • This restructuring also takes place when a dimension is changed from dense to sparse or vice versa.
  • Essbase restructures data files and index files.
  • Empty blocks are not eliminated.
  • Essbase marks all restructured blocks as dirty (so if smart calculation is activated the next default calculation will calculate the entire base).
  • It is the most time-consuming restructuring.

A.2.- Dispersed restructuring:

  • Occurs when a member of a sparse dimension is added, deleted, or moved (if it is a shared member it does not cause restructuring).
  • Also when the order of two sparse dimensions is changed.
  • Essbase restructures the index files.
  • It is a relatively quick restructuring (it will depend on the size of the index).

A.3.- Restructuring only the outline: takes place when the changes affect only the index.

  • Changes in the names of the elements, aliases or in the formulas of members with dynamic calculations.
  • Does not affect index files or data files.
  • This is the fastest restructurings.

When an implicit restructuring is to take place a dialog box opens to select the treatment to be given to the data loaded into the database. There are several possibilities:

  • Keep them all.
  • Maintain those of level 0.
  • Maintain the “input” data.
  • Delete them all (restructuring is faster).

A.4.- Other considerations

If the data is to be kept it is necessary temporarily to have enough free space on the server (while the restructuring is being carried out), equivalent to the size of the database, to back up the data just in case the restructuring has any problem.

  • Once the restructuring is completed this space is released.

Certain member property changes (storages, dynamic calculation, dynamic calculation and storage) can lead to restructuring. Let’s see the cases:

Sparse member:

  • Storage member to:
    • Member of dynamic calculation: restructuring.
    • Member of dynamic calculation and storage: restructuring.
  • Dynamic calculation member to:
    • Storage member: non restructuring.
    • Member of dynamic calculation and storage: non restructuring.
  • Member of dynamic calculation and storage to:
    • Storage member: non restructuring.
    • Dynamic calculation member: non restructuring.

Dense member:

  • Storage member to:
    • Member of dynamic calculation: restructuring.
    • Member of dynamic calculation and storage: non restructuring.
  • Dynamic calculation member to:
    • Storage member: restructuring.
    • Member of dynamic calculation and storage: restructuring.
  • Member of dynamic calculation and storage to:
    • Storage member: non restructuring.
    • Dynamic calculation member: non restructuring.

B) Explicit restructuring

It is the one that the user performs voluntarily.

  • This restructuring is equivalent to a dense restructuring and also the empty blocks are eliminated.
  • An explicit restructuring can be launched from the console or from a maxl.

II.- ACTIONS THAT IMPROVE THE EFFICIENCY OF THE RESTRUCTURING

Restructuring the database can be time consuming unless the data has previously been deleted.

A) Incremental restructuring

Enabling this option Essbase defer dense restructurings.

  • If a database is modified with certain frequency it may be interesting to activate this option since it can generate significant time savings.

When it is activated, if there is a change in the outline or dimension Essbase postpones restructuring the base.

  • Essbase restructures the index and, if necessary, the affected block (changes to the index files or data files) the next time that block is accessed.

This property is activated through the INCRESTRUC command in the configuration file (essbase.cfg).

This property can be activated at the level:

  • One database of an application.
  • All the databases of an application.
  • All databases of all applications.

There are some changes that generate an immediate restructuring of the database even if the “Incremental restructuring” option is activated:

  • Add or delete a dimension that is not attribute.
  • Delete storage members from a sparse dimension.
  • Change the definition of a dimension from dense to sparse or vice versa.
  • If LROs (linked reporting objects) are used in the database.
  • Some additions of members or certain changes in the sparse dimensions

B) Parallel restructuring

By default the restructuring of blocks is done sequentially. This option allows the restructuring to be carried out simultaneously through different lines.

  • The blocks are divided into “n” groups, where “n” is the number of lines to be restructured in parallel.
  • This number “n” is defined with the command RESTRUCTURETHREADS in the configuration file “essbase.cfg”. If “n” is not defined its default value is 1.

C) Other considerations

  • If changes are made frequently in a dimension it is convenient to make it dispersed.
  • If it is going to perform a dense restructuring, it could be convenient to export the level 0 data, clear the data, perform the restructure, reload the data, and calculate.

Español

I.- TIPOS DE REESTRUCTURACIONES

Hay dos tipos de reestructuración:

  • Reestructuración implícita: es la que realiza Essbase de forma automática cuando se realizan algunos cambios en el outline.
  • Reestructuración explicita: es el que realiza el usuario de forma voluntaria.

A) Reestructuración implícita

Cuando se realizan ciertos cambios en el outline Essbase procede a reestructurar la base.

Hay diferentes tipos de reestructuración dependiendo del cambio realizado en el outline.

A.1.- Reestructuración densa:

  • Tiene lugar cuando un miembro de una dimensión densa se añade, se borra o se mueve (si se trata de un miembro compartido no genera reestructuración).
  • También cuando se cambia el orden de las dimensiones.
  • Esta reestructuración también tiene lugar cuando se cambia una dimensión de densa a dispersa o viceversa.
  • Essbase reestructura los archivos de datos (data files) y los archivos de índices (index files).
  • Los bloques vacíos no son eliminados.
  • Essbase marca todos los bloques reestructurados como sucios (por lo que si se utiliza cálculo inteligente el siguiente cálculo por defecto va a calcular toda la base).
  • Es la reestructuración que consume más tiempo.

A.2.- Reestructuración dispersa:

  • Tiene lugar cuando un miembro de una dimensión dispersa se añade, se borra o se mueve (si se trata de un miembro compartido no genera reestructuración).
  • También cuando se cambia el orden de dos dimensiones dispersas.
  • Essbase reestructura los archivos de índices (index file).
  • Es una reestructuración relativamente rápida (va a depender del tamaño del índice).

A.3.- Reestructuración únicamente del outline: tiene lugar cuando los cambios afectan únicamente al índice.

  • Cambios en los nombres de los elementos, alias o en las fórmulas de miembros con cálculos dinámicos.
  • No afecta a los archivos de índices (index files) ni a los archivos de datos (data files).
  • Son las reestructuraciones más rápidas.

Cuando se va a lanzar una reestructuración implícita se abre un cuadro de diálogo para seleccionar el tratamiento que se le da a los datos cargados en la base. Caben varias posibilidades:

  • Mantenerlos todos.
  • Mantener los de nivel 0.
  • Mantener los datos “imputs”.
  • Borrarlos todos (la restructuración es más rápida).

A.4.- Otras consideraciones

Si se van a mantener los datos es necesario contar temporalmente en el servidor (mientras se realiza la reestructuración) con suficiente espacio libre (equivalente al tamaño de la base que se va a reestructurar) para realizar un back up de los datos como seguridad para el caso en el que la reestructuración plantee algún problema.

  • Una vez terminada la reestructuración este espacio se libera.

Ciertos cambios de propiedad de miembros (almacenamientos, cálculo dinámico, cálculo dinámico y almacenamiento) pueden genera reestructuración. Veamos los casos:

Miembro disperso:

  • Miembro de almacenamiento a:
    • Miembro de cálculo dinámico: Sí reestructura.
    • Miembro de cálculo dinámico y almacenamiento: Sí reestructura.
  • Miembro de cálculo dinámico a:
    • Miembro de almacenamiento: No reestructura.
    • Miembro de cálculo dinámico y almacenamiento: No reestructura.
  • Miembro de cálculo dinámico y almacenamiento a:
    • Miembro de almacenamiento: No reestructura.
    • Miembro de cálculo dinámico: No reestructura.

Miembro denso:

  • Miembro de almacenamiento a:
    • Miembro de cálculo dinámico: Sí reestructura.
    • Miembro de cálculo dinámico y almacenamiento: No reestructura.
  • Miembro de cálculo dinámico a:
    • Miembro de almacenamiento: Sí reestructura.
    • Miembro de cálculo dinámico y almacenamiento: Sí reestructura.
  • Miembro de cálculo dinámico y almacenamiento a:
    • Miembro de almacenamiento: No reestructura.
    • Miembro de cálculo dinámico: No reestructura.

B) Reestructuración explicita

Es la que realiza el usuario de forma voluntaria.

  • Esta reestructuración equivale a una reestructuración densa y además se eliminan los bloques vacíos.
  • Una reestructuración explicita se puede lanzar desde la consola o desde un maxl.

II.- ACCIONES QUE MEJORAN LAS EFICIENCIA DE LA REESTRUCTURACIÓN

La reestructuración de la base de datos puede consumir mucho tiempo, salvo que previamente se hayan borrado los datos.

A) Incremental reestructuring

Si se activa esta opción Essbase difiere las reestructuraciones densas.

  • Si se modifica una base de datos con cierta frecuencia puede ser interesante activar esta opción ya que puede generar ahorros de tiempo significativos.

Cuando está activado y se produce un cambio en el outline o en una dimensión Essbase pospone la reestructuración de la base.

  • Essbase reestructura el índice y, si es necesario, el bloque afectado (cambios en los index files o data files) la siguiente vez que se accede al mismo.

Esta propiedad se activa a través del comando INCRESTRUC en el archivo de configuración (essbase.cfg).

Esta propiedad se puede activar a nivel:

  • Base de datos de una aplicación.
  • Todas las bases de datos de una aplicación.
  • Todas las bases de datos de todas las aplicaciones.

Hay algunos cambios que generan una reestructuración inmediata de la base de datos aunque la opción “Incremental reestrucuturing” esté activada:

  • Añadir o borra una dimensión que no sea atributo.
  • Borrar miembros de almacenamiento de una dimensión dispersa.
  • Cambiar la definición de una dimensión de densa a dispersa o viceversa.
  • Si se utiliza LROs (linked reporting objects) en la base.
  • Algunas incorporaciones de miembros o ciertos cambios en las dimensiones dispersas

B) Reestructuración paralela

Por defecto la reestructuración de bloques se realiza secuencialmente. Esta opción permite realizar la reestructuración de forma simultánea a través de diferentes líneas.

  • Los bloques se dividen en “n” grupos, siendo “n” el número de líneas que se van a reestructurar de forma paralela.
  • Este número “n” se define con el comando RESTRUCTURETHREADS en el fichero de configuración “essbase.cfg”. Si no se define “n” toma por defecto el valor 1.

C) Otras consideraciones

  • Si se realizan cambios frecuentemente en una dimensión es conveniente hacerla dispersa.
  • Si se va a realizar una reestructuración densa puede convenir exportar los datos nivel 0, borrar los datos, realizar la reestructuración, volver a cargar los datos y calcular.