Borrado de datos de cubos de almacenamiento agregado
Puede borrar todos los datos de un cubo de almacenamiento agregado (ASO) de Essbase, o bien puede borrar datos de una región especificada, conservando los datos ubicados en otras regiones. Puede realizar borrados físicos o lógicos.
Para borrar datos, debe tener el mismo permiso de aplicación que para cargar datos (Permiso de actualización de base de datos o superior).
Puede utilizar un trabajo Borrar datos en la interfaz web de Essbase, utilizar el comando clear de la CLI o utilizar la sentencia alter database MaxL con la gramática clear data in region. En los ejemplos de este tema se utiliza MaxL.
Compensación de datos de regiones específicas
Este método es útil cuando se desea eliminar datos volátiles (como los datos correspondientes al último mes), al tiempo que se conservan datos históricos.
Los métodos para borrar datos de una región ASO incluyen borrados físicos y lógicos.
-
Borrado físico
Las celdas de entrada en la región especificada se eliminan físicamente del cubo de almacenamiento agregado, como se muestra a continuación.
Figura 37-2 Borrado Físico de una Región de Datos

Si hay varios segmentos de datos en el cubo, la operación de región de borrado físico fusiona automáticamente todos los segmentos de datos en el segmento de datos principal. Después de borrar los datos de la región especificada, Essbase materializa todas las vistas agregadas que estaban presentes en el segmento de datos principal antes de que se llevara a cabo la operación de borrado de región.
El proceso para el borrado de datos físico se completa en un período de tiempo proporcional al tamaño de los datos de entrada, y no el tamaño de los datos de que se están borrando. Por lo tanto, puede utilizar este método sólo al eliminar grandes segmentos de datos.
Para borrar datos físicamente, utilice la sentencia alter database MaxL con la gramática clear data in region y la palabra clave physical:
alter database appname.dbname clear data in region 'MDX set expression' physical;Para ahorrar tiempo, puede utilizar una lista separada por comas de MDX set expressions para borrar de varias regiones físicas.
-
Borrado lógico
Las células de entrada de la región especificada se escriben en un nuevo segmento de datos con valores de compensación negativos que dan lugar a un valor de cero para las celdas, como resultado un valor de cero para las celdas.
Figura 37-3 Borrado Lógico de una Región de Datos

La operación de región de borrado lógica fusiona automáticamente solo el segmento de datos con valores cero en el segmento de datos principal; no se fusionan otros segmentos de datos del cubo. Después de borrar los datos de la región especificada, Essbase materializa las vistas agregadas solo en el nuevo segmento de datos.
El proceso para el borrado lógico de datos se completa en un periodo de tiempo proporcional al tamaño de los datos que se están borrando. Dado que se crean celdas de compensación, esta opción incrementa el tamaño del cubo.
Para borrar datos de forma lógica, utilice la sentencia alter database MaxL con la gramática clear data in region pero sin la palabra clave physical:
alter database appname.dbname clear data in region 'MDX set expression';Las consultas a la región borrada lógicamente devuelven valores cero en lugar de valores #MISSING. Es posible que deba actualizar las fórmulas que dependen de los valores #MISSING para las celdas vacías.
Para eliminar celdas con un valor de cero, utilice la sentencia alter database MaxL con la cláusula merge, incluida la palabra clave remove_zero_cells:
alter database appname.dbname merge all data remove_zero_cells;Note:
Oracle no recomienda realizar una segunda operación de región de borrado lógica en la misma región, porque la segunda operación no borra las celdas de compensación creadas en la primera operación y no crea nuevas celdas de compensación.
Para especificar la región de ASO que se va a borrar, siga estas directrices:
-
La región debe ser simétrica. Por ejemplo,
-
{(Jan, Budget)}es una región simétrica válida que borra todos los datos de Budget para Jan. -
{(Jan, Forecast1),(Feb, Forecast2)}es una región no válida, ya que consta de dos regiones asimétricas (enero, previsión1 y febrero, previsión2).
-
-
Los miembros individuales de cualquier dimensión de la especificación de región deben ser miembros almacenados.
-
Los miembros de la región no pueden ser:
-
Miembros dinámicos (miembros con fórmulas MDX implícitas o explícitas)
-
Desde dimensiones de atributo
Si necesita borrar las celdas por un atributo, utilice la función MDX Atributo.
-
-
Los miembros de la región pueden ser miembros de nivel superior en jerarquías almacenadas, lo que es una forma práctica de especificar varios miembros de nivel 0.
Por ejemplo, puede especificar Qrt1, que es lo mismo que especificar Jan, Feb y Mar (los secundarios de nivel 0 de Qrt1):

Las dos sentencias MaxL siguientes producen los mismos resultados:
alter database appname.dbname clear data in region '{Qtr1}';alter database appname.dbname clear data in region '{Jan, Feb, Mar}'; -
Solo para los borrados físicos, los miembros de la región pueden ser miembros de nivel superior en jerarquías alternativas.
Por ejemplo, puede especificar la mercancía de gama alta, que es lo mismo que especificar Flat Panel, HDTV, Digital Recorders y Notebooks (los secundarios compartidos de nivel 0 de la mercancía de gama alta):

Las dos sentencias MaxL siguientes producen los mismos resultados:
alter database appname.dbname clear data in region '{High End Merchandise}';alter database appname.dbname clear data in region '{[Flat Panel],[HDTV],[Digital Recorders],[Notebooks]}';Para especificar miembros en jerarquías alternativas al borrar datos de forma lógica, utilice la función MDX de descendientes.
Note:
Cuando la región contiene miembros de nivel superior de jerarquías alternativas, puede experimentar una disminución en el rendimiento. En este caso, considere utilizar solo miembros de nivel 0.
-
La expresión MDX set debe ir entre comillas simples.
Por ejemplo, para borrar todos los datos de enero de los escenarios Forecast1 y Forecast2, utilice esta sentencia:
alter database ASOSamp.Basic clear data in region 'CrossJoin({Jan},{Forecast1, Forecast2})';Durante la operación de borrado de región, no puede realizar operaciones que actualicen el cubo (como cargar datos, fusionar segmentos de datos o borrar datos de otra región) ni exportar datos. Puede consultar el cubo; sin embargo, los resultados de la consulta se basan en el juego de datos antes de la operación de borrado de región.
La cláusula borrar datos en región no puede borrar datos de todo el cubo.
Borrado de todos los datos
Borrar todos los datos de un cubo de almacenamiento agregado es lo mismo que para un cubo de almacenamiento de bloques. Para borrar todo el cubo, utilice la instrucción alter database MaxL con la palabra clave reset:
alter database appname.dbname reset;