Cargar datos en cubos de almacenamiento agregado

Los cubos de almacenamiento agregado (ASO) de Essbase facilitan el análisis de dimensiones muy grandes que contienen hasta un millón o más miembros. Para ayudarle a cargar datos en esquemas tan grandes, puede cargar de forma incremental, gestionar los buffers de carga de datos y fusionar/sustituir segmentos de datos.

Para admitir de forma eficaz la carga de valores de datos en cubos tan grandes, Essbase:

  • Permite procesar varios orígenes de datos mediante buffers de carga de datos temporales.

  • Permite controlar el porcentaje de recursos que utiliza un buffer de carga de datos

  • Permite que un cubo de almacenamiento agregado contenga varios segmentos de datos (una consulta a la base de datos accede a cada segmento y recopila todas las celdas de datos)

  • Proporciona un proceso de carga de datos incremental que se completa en un período de tiempo proporcional al tamaño de los datos incrementales

Para cargar valores en cubos de almacenamiento agregados, puede utilizar la página Trabajos de la interfaz web de Essbase o puede utilizar las sentencias alter database e import data en MaxL. Los ejemplos de este documento se basan en el uso de MaxL.

Note:

Si los valores se han calculado y almacenado mediante una agregación, Essbase actualiza automáticamente los valores almacenados de nivel superior cuando se cambian los valores de datos. No es necesario ningún paso de cálculo adicional. La existencia y el tamaño de una agregación pueden afectar al tiempo que se tarda en realizar una carga de datos.

No puede exportar datos al cargar datos en un cubo.

Al copiar una aplicación ASO, para conservar todos los datos del cubo, debe fusionar todos los segmentos de datos incrementales en el segmento de base de datos principal antes de copiar la aplicación. Los datos de los segmentos de datos incrementales no fusionados no se copian.

Carga Incremental de Datos mediante un Buffer de Carga de Datos

Si utiliza la carga de datos incremental para cargar valores de datos en un cubo de almacenamiento agregado (ASO) de Essbase, puede mejorar el rendimiento. Essbase carga los valores en un buffer de carga de datos temporal en primer lugar, con una escritura final en el almacenamiento después de haber leído todos los orígenes de datos.

El uso de la sentencia import data MaxL para cargar valores de datos desde un único origen de datos no implica el buffer de carga de datos de almacenamiento agregado.

Si utiliza varias sentencias MaxL importar datos de base de datos para cargar valores de datos en cubos de almacenamiento agregado, Essbase puede utilizar un buffer de carga de datos temporal, completando la escritura final en el almacenamiento después de que se hayan leído todos los orígenes de datos. El uso del buffer de carga de datos de almacenamiento agregado puede mejorar significativamente el rendimiento general de la carga de datos.

En el buffer de carga de datos de almacenamiento agregado, Essbase ordena y confirma los valores una vez que se han leído todos los orígenes de datos. Si se encuentran varios registros (o duplicados) para una celda de datos específica, los valores se acumulan. A continuación, Essbase almacena los valores acumulados: sustituyendo, sumando o restando de los valores de datos existentes en el cubo.

Note:

Al utilizar el buffer de carga de datos de almacenamiento agregado, se especifica la opción de sustituir, agregar o restar valores para todo el juego de orígenes de datos al cargar el contenido del buffer de datos en el cubo.

Aunque el buffer de carga de datos existe en la memoria, no puede crear agregaciones ni fusionar segmentos, ya que estas operaciones hacen un uso intensivo de los recursos. Sin embargo, puede cargar datos en otros buffers de carga de datos y realizar consultas y otras operaciones en el cubo. Puede que haya una breve espera para las consultas, hasta que se confirme el juego de datos completo y se creen agregaciones.

El buffer de carga de datos existe en la memoria hasta que el contenido del buffer se confirma en el cubo o se reinicia la aplicación, momento en el que se destruye el buffer. Incluso si la operación de confirmación falla, el buffer se destruye y los datos no se cargan en el cubo. Puede destruir manualmente un buffer de carga de datos mediante la sentencia MaxL alter database.

Note:

Al parar la aplicación antes de confirmar el contenido del buffer, se destruye el buffer. En esta situación, después de reiniciar la aplicación, debe inicializar un nuevo buffer y cargar los datos en él.

Para utilizar el buffer de carga de datos para cubos de almacenamiento agregado:

  1. Prepare el buffer de carga de datos, donde los valores de datos se ordenan y acumulan mediante la sentencia alter database MaxL para inicializar un buffer de carga de datos de almacenamiento agregado. Por ejemplo:
    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1;
  2. Cargue datos de los orígenes de datos en el buffer de carga de datos mediante la sentencia Import database MaxL. Utilice varias sentencias para cargar datos de varios orígenes de datos. Puede incluir cualquier combinación de orígenes de datos. Especifique un archivo de reglas si el origen de datos necesita uno.

    En el siguiente ejemplo, se cargan dos orígenes de datos, uno de los cuales utiliza un archivo de reglas, en el mismo buffer de carga de datos:

    import database ASOsamp.Basic data 
       from server data_file 'file_1.txt' 
       to load_buffer with buffer_id 1
       on error abort; 
    import database ASOsamp.Basic data
       from server data_file 'file_2' 
       using server rules_file ‘rule’ 
       to load_buffer with buffer_id 1
       on error abort;
    

    Para cargar datos en varios buffers de carga simultáneamente, consulte Cargas de Varios Datos en Paralelo.

  3. Utilice la sentencia import data MaxL para confirmar el contenido del buffer de carga de datos en el cubo. Por ejemplo:
    import database ASOsamp.Basic data 
       from load_buffer with buffer_id 1;

    Para confirmar el contenido de varios buffers de carga de datos en el cubo con una sentencia MaxL, consulte Cargas de Varios Datos en Paralelo.

El siguiente ejemplo de carga de datos incremental proporciona un rendimiento óptimo cuando los nuevos valores de datos no se cruzan con los valores existentes:

  1. Cree un único buffer de carga de datos mediante las propiedades ignore_missing_values e ignore_zero_values. Por ejemplo:

    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1
       property ignore_missing_values, ignore_zero_values;

    Si el cubo debe estar disponible para enviar solicitudes de datos mientras se actualiza, inicialice el buffer de carga de datos con la gramática resource_usage definida para el 80 %. Por ejemplo:

    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1
       resource_usage 0.8 property
       ignore_missing_values, ignore_zero_values;
  2. Cargue los datos en el buffer. Por ejemplo:

    import database ASOsamp.Basic data 
       from server data_file 'file_1.txt' 
       to load_buffer with buffer_id 1
       on error abort; 
    import database ASOsamp.Basic data
       from server data_file 'file_2'
       to load_buffer with buffer_id 1
       on error abort;
    
  3. Confirme el contenido del buffer de carga de datos en el cubo mediante la creación de un segmento y la adición de valores. Por ejemplo:

    import database ASOsamp.Basic data 
       from load_buffer with buffer_id 1
       add values create slice;

Uso de espacio en disco y recurso de buffer de carga de datos

Al utilizar la carga de datos incremental para cargar valores de datos en un cubo de almacenamiento agregado (ASO) de Essbase, puede poner restricciones en el uso de recursos permitido y en el tiempo de espera para el buffer de carga de datos temporal. Puede reducir el uso de espacio en disco gestionando el tablespace.

Control del Uso de Recursos del Buffer de Carga de Datos

Al realizar una carga de datos incremental, Essbase utiliza la caché de almacenamiento agregado para ordenar los datos. Puede controlar la cantidad de caché que puede utilizar un buffer de carga de datos especificando el porcentaje. El porcentaje es un número entre .01 y 1.0, ambos inclusive; solo dos dígitos después de la coma decimal son significativos, por ejemplo, 0.029 se interpreta como 0.02. Por defecto, el uso de recursos de un buffer de carga de datos se define en 1,0 y el uso total de recursos de todos los buffers de carga de datos creados en una base de datos no puede superar 1,0. Por ejemplo, si existe un buffer de tamaño 0,9, no puede crear otro buffer de tamaño mayor que 0,1.

Note:

Las operaciones de envío crean internamente buffers de carga de tamaño 0.2; por lo tanto, un buffer de carga del tamaño por defecto de 1.0 hará que las operaciones de envío fallen debido a que no hay suficientes recursos de buffer de carga de datos.

Para definir la cantidad de recursos que puede utilizar el buffer, especifique el porcentaje al iniciar la carga de datos en la interfaz web de Essbase. Si utiliza MaxL, utilice la sentencia alter database MaxL con la gramática resource_usage.

Por ejemplo, para definir resource_usage en el 50% del total de la caché, utilice esta sentencia:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   resource_usage .5;

Si tiene previsto ejecutar operaciones de envío simultáneas, utilice el valor de configuración ASOLOADBUFFERWAIT y la sentencia alter database MaxL con la gramática wait_for_resources. ASOLOADBUFFERWAIT se aplica a la creación de buffers de carga de datos de almacenamiento agregado con la opción wait_for_resources y se aplica a asignaciones, cálculos personalizados y operaciones de actualización de datos.

Gestión del Espacio en Disco para Cargas de Datos Incrementales

Las cargas de datos incrementales en cubos de almacenamiento agregado pueden utilizar espacio en disco hasta dos veces el tamaño de los archivos de datos actuales. Por ejemplo, supongamos que el tamaño de los datos de un cubo es de 1 GB y el tamaño de la carga de datos incremental es de 200 MB, para un tamaño total de 1,2 GB. Durante el proceso de carga de datos incremental, Essbase puede utilizar hasta 2,4 GB de espacio en disco.

En los casos en que las bases de datos tengan más de 2 GB, puede reducir el uso de espacio en disco definiendo el tamaño máximo de archivo del tablespace por defecto en no más de 2 GB.

Para definir el tamaño máximo de archivo del tablespace por defecto, puede utilizar la sentencia MaxL alter tablespace.

Propiedades de Buffer de Carga de Datos

Al cargar valores de datos de forma incremental en un buffer de carga de almacenamiento agregado (ASO), puede indicar a Essbase que ignore los valores faltantes y cero en los datos de origen, y puede resolver conflictos de celdas (eliminar agregaciones no válidas mediante la combinación de celdas duplicadas).

Las propiedades del buffer de carga de datos que puede definir son:

  • ignore_missing_values: no tiene en cuenta los valores #MI en el flujo de datos entrante

  • ignore_zero_values: ignora los ceros en el flujo de datos entrantes

  • agreg_use_last: combina las celdas duplicadas con el valor de la última celda cargada en el búfer de carga

    Note:

    Al cargar valores de texto y fecha en una base de datos de almacenamiento agregado, utilice la propiedad aggregate_use_last para ayudar a eliminar las agregaciones no válidas. Para obtener otras directrices, consulte Cargar, borrar y exportar medidas de texto y fecha.

Si utiliza varias propiedades en el comando y hay algún conflicto, la última propiedad mostrada tiene prioridad.

Manejo de Valores que Faltan y Ceros en el Flujo de Datos

Al cargar datos de forma incremental, puede especificar cómo se tratan los valores faltantes y cero en los datos de origen al cargar los datos en el buffer de carga de datos.

Para definir las propiedades del buffer de carga de datos, utilice la sentencia alter database MaxL con la gramática property.

Por ejemplo:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   property ignore_missing_values, ignore_zero_values;

Resolución de conflictos de celdas

Para resolver conflictos de celdas para celdas duplicadas, puede especificar si desea utilizar la última celda cargada en el buffer de carga.

De forma predeterminada, cuando las celdas con claves idénticas se cargan en el mismo buffer de carga de datos, Essbase resuelve el conflicto de celdas agregando los valores juntos.

Para crear un buffer de carga de datos que combine celdas duplicadas mediante la aceptación del valor de la celda que se cargó por última vez en el buffer de carga, utilice la sentencia alter database MaxL con la gramática aggregate_use_last.

Por ejemplo:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   property aggregate_use_last;

Note:

Cuando se utilizan buffers de carga de datos con la gramática aggregate_use_last, las cargas de datos son significativamente más lentas, incluso si no hay claves duplicadas.

Varias cargas de datos en paralelo

Pueden existir varios buffers de carga de datos en un cubo de almacenamiento agregado (ASO) de Essbase. Si bien solo puede tener activa a la vez una operación para confirmar, puede confirmar varios búferes de carga de datos en la misma operación para confirmar, que se realiza de una forma más rápida que confirmar los búferes de manera individual.

Para cargar datos en varios buffers de carga de datos simultáneamente, utilice sesiones de shell MaxL independientes. Por ejemplo, en una sesión de shell MaxL, cargue datos en un buffer con un ID de 1:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1 resource_usage 0.5;
import database ASOsamp.Basic data
   from data_file "dataload1.txt"
   to load_buffer with buffer_id 1
   on error abort;

Al mismo tiempo, en otra sesión de shell MaxL, cargue datos en un buffer con un ID de 2:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 2 resource_usage 0.5;
import database ASOsamp.Basic data
   from data_file "dataload2.txt"
   to load_buffer with buffer_id 2
   on error abort;

Cuando los datos estén completamente cargados en los buffers de carga de datos, utilice una sentencia MaxL para confirmar el contenido de ambos buffers en la base de datos mediante una lista separada por comas de ID de buffer:

Por ejemplo, esta sentencia carga el contenido de los buffers 1 y 2:

import database ASOsamp.Basic data 
   from load_buffer with buffer_id 1, 2;

Note:

Al cargar datos SQL en cubos de almacenamiento agregado, puede utilizar hasta ocho archivos de reglas para cargar datos en paralelo. Esta funcionalidad es diferente al proceso descrito anteriormente. Al realizar varias cargas de datos SQL en paralelo, puede utilizar una sentencia MaxL de base de datos de importación con la gramática uso de varios archivos_reglas. Essbase inicializa varios buffers de carga de datos de almacenamiento agregado temporal (uno para cada archivo de reglas) y confirma el contenido de todos los buffers en el cubo en una sola operación.

Lista de Buffers de Carga de Datos para un Cubo de Almacenamiento Agregado

Pueden existir varios buffers de carga de datos en un cubo de almacenamiento agregado (ASO) de Essbase. Para obtener una lista y una descripción de los buffers de carga de datos que existen en el cubo, utilice la sentencia MaxL de la base de datos de consultas con la gramática list load_buffers.

La sintaxis de la sentencia MaxL para mostrar los buffers de carga de datos ASO es:

query database appname.dbname list load_buffers;

Esta sentencia devuelve la siguiente información sobre cada buffer de carga de datos existente:

Tabla 37-2 Información del Buffer de Carga de Datos

Campo Descripción

ID_buffer

ID de un buffer de carga de datos (un número entre 1 y 4.294.967.296).

interno

Un valor booleano que especifica si el buffer de carga de datos fue creado internamente por Essbase (TRUE) o por un usuario (FALSE).

activo

Un valor booleano que especifica si una operación de carga de datos está utilizando actualmente el buffer de carga de datos.

resource_usage

Porcentaje (número entre .01 y 1.0 inclusive) de la caché de almacenamiento agregado que el buffer de carga de datos puede utilizar.

método de agregación

Uno de los métodos utilizados para combinar varios valores para la misma celda en el buffer:

  • AGGREGATE_SUM: agregue valores cuando el búfer contenga varios valores de la misma celda.

  • AGGREGATE_USE_LAST: permite combinar celdas duplicadas mediante el valor de la última celda cargada en el buffer de carga.

ignore_missings

Un valor booleano que especifica si se deben ignorar los valores #MI en el flujo de datos entrante.

ignorar_zeros

Un valor booleano que especifica si se ignoran los ceros en el flujo de datos entrantes.

Consulte: Query Database (Aggregate Storage)

Crear un segmento de datos

Puede confirmar de forma incremental el buffer de carga de datos en un cubo de almacenamiento agregado (ASO) de Essbase para crear un segmento. Tras cargar el nuevo segmento en el cubo, Essbase crea todas las vistas necesarias en el segmento (por ejemplo, las vistas agregadas) antes de que los nuevos datos estén visibles para la consulta.

La creación de un segmento de datos es útil porque mejora el rendimiento de las cargas de datos incrementales. La cantidad de tiempo que tarda una carga de datos incremental es proporcional a la cantidad de datos nuevos; el tamaño del cubo no es un factor.

Para crear un segmento de datos, utilice la sentencia MaxL de import database con la gramática create slice.

Por ejemplo, para crear una división mediante la sustitución de valores (valor por defecto), utilice esta sentencia:

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override values create slice;

Note:

Si se utilizan valores de sustitución al crear una división, los valores #MISSING se sustituyen por ceros. El uso de esta opción es significativamente más lento que el uso de las opciones de añadir o restar valores.

Consulte: Importación de datos (almacenamiento agregado)

Fusionar segmentos de datos incrementales

Al cargar datos de forma incremental en un cubo de almacenamiento agregado (ASO), puede fusionar manualmente los segmentos de datos incrementales en el segmento de cubo principal, o bien puede utilizar AUTOMERGE para configurar Essbase para fusionar automáticamente los segmentos durante la carga de datos.

Fusión automática de segmentos de datos incrementales durante una carga de datos en un cubo de almacenamiento agregado

Mediante los valores de configuración AUTOMERGE y AUTOMERGEMAXSLICENUMBER, puede especificar si Essbase fusiona automáticamente segmentos de datos incrementales durante una carga de datos en un cubo de almacenamiento agregado.

Opciones de configuración de AUTOMERGE:

  • SIEMPRE: especifica la fusión automática de segmentos de datos incrementales durante una carga de datos en un cubo de almacenamiento agregado. Por defecto, las fusiones se ejecutan una vez por cada cuatro segmentos de datos incrementales consecutivos. Sin embargo, si se utiliza el valor de configuración AUTOMERGEMAXSLICENUMBER, el proceso de fusión automática se activa cuando se supera el valor de AUTOMERGEMAXSLICENUMBER. El tamaño de los segmentos de datos incrementales no es un factor en la selección de los que se fusionan.

    El valor por defecto es SIEMPRE.

  • NEVER: especifica que nunca se fusionen automáticamente segmentos de datos incrementales durante una carga de datos en un cubo de almacenamiento agregado. Para fusionar manualmente los segmentos de datos incrementales, utilice la sentencia MaxL alter database con la gramática merge.

  • SELECTIVE: especifica que se active el proceso de fusión automática de segmentos de datos incrementales cuando se supera el número de segmentos de datos incrementales especificados en el valor de configuración AUTOMERGEMAXSLICENUMBER. Si el número de segmentos de datos incrementales en la carga de datos no supera el valor de AUTOMERGEMAXSLICENUMBER, el proceso de fusión automática no se activa.

Fusión manual de segmentos de datos incremental

Puede fusionar todas las secciones de datos incrementales en el porción principal o fusionar todas las secciones de datos incrementales en un único segmento, mientras que se deja el porción principal sin cambios. Para fusionar segmentos, debe tener los mismos privilegios que para cargar datos (Permiso de actualización de base de datos o superior).

Después de escribir la nueva vista de entrada en el cubo, Essbase crea las vistas agregadas para el segmento. Las vistas creadas para la nueva porción son un subconjunto de las vistas que existen en la porción principal.

Note:

No puede exportar datos al realizar una fusión.

Si ha borrado datos de una región mediante la operación de borrado de región lógica, que da como resultado un valor cero para las celdas borradas, puede eliminar celdas de valor cero durante la operación de fusión.

Para realizar operaciones de fusión, utilice la sentencia alter database MaxL con la gramática merge.

Por ejemplo, para fusionar todos los segmentos de datos incrementales en el segmento principal, utilice esta sentencia:

alter database ASOsamp.Basic
   merge all data;

Para fusionar todos los segmentos de datos incrementales en el segmento principal y eliminar las celdas de valor cero, utilice esta sentencia:

alter database ASOsamp.Basic
   merge all data remove_zero_cells;

Para fusionar todos los segmentos de datos incrementales en un único segmento de datos, utilice esta sentencia:

alter database ASOsamp.Basic
   merge incremental data;

Note:

Antes de copiar una aplicación de almacenamiento agregado, debe fusionar todos los segmentos de datos incrementales en el segmento principal. Los datos de los segmentos de datos incrementales no fusionados no se copian.

Enlaces relacionados

AUTOMERGE

AUTOMERGEMAXSLICENUMBER

Modificar base de datos (almacenamiento agregado)

Sustituir datos mediante contenido de porción de datos incremental

Para los juegos de datos de almacenamiento agregado (ASO) que son lo suficientemente pequeños como para volver a cargarlos por completo mientras se mantiene una latencia de datos baja, Essbase puede eliminar el contenido actual de un cubo de almacenamiento agregado y sustituir el cubo por el contenido de un buffer de carga de datos especificado.

La funcionalidad de sustitución atómica pasa de consultar el contenido antiguo del cubo al nuevo contenido sin interrumpir el servicio. El juego de datos recién cargado se agrega para crear el mismo juego de vistas que existía para el juego de datos sustituido.

Essbase también permite sustituir atómicamente el contenido de todos los segmentos de datos incrementales de un cubo. Considere una situación en la que los datos se pueden separar en un conjunto de datos estáticos relativamente grande que nunca se actualiza y un conjunto de datos volátiles relativamente pequeño para el que las actualizaciones individuales son difíciles de identificar, pero se limitan al conjunto de datos volátiles. Por ejemplo, el gran conjunto de datos estáticos consta de datos de transacciones históricas de los últimos tres años; sin embargo, para los datos de transacciones de los últimos dos meses, los usuarios pueden cambiar una característica de una transacción en la base de datos origen. El seguimiento de estos cambios puede ser extremadamente complejo. Puede cargar el juego de datos estáticos como el segmento principal en un cubo y el juego de datos volátiles como uno o más segmentos incrementales.

Al confirmar segmentos durante la carga de datos incremental de ASO, Essbase elimina el contenido actual de todos los segmentos de datos incrementales y crea un nuevo segmento (mediante la gramática agregar valores en la especificación de confirmación de buffer de la sentencia MaxL import database) con el contenido de un buffer de carga de datos especificado. El juego de datos recién cargado se aumenta con vistas agregadas basadas en el juego de vistas que existen en el segmento principal.

Note:

Para utilizar la gramática override, cree un buffer de carga de datos con la propiedad ignore_missing_values para un rendimiento óptimo. Además, debe asegurarse de que no haya conflictos entre los juegos de datos estáticos y volátiles (por ejemplo, no debe haber un valor en cada juego de datos para la misma celda).

Para sustituir el contenido de una base de datos o los segmentos de datos incrementales de un cubo, utilice la sentencia MaxL de la base de datos de importación con la gramática override.

Por ejemplo, para sustituir el contenido de un cubo, utilice esta sentencia:

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override all data;

Para sustituir el contenido de todos los segmentos de datos incrementales por un nuevo segmento, utilice esta sentencia:

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override incremental data;

Note:

Si falla la sustitución, Essbase sigue sirviendo al conjunto de datos antiguo.

En Smart View, el comando de envío es equivalente al uso de la funcionalidad de carga de datos incremental con la gramática sustituir.

Al realizar una operación de envío, las nuevas solicitudes de bloqueo, desbloqueo, recuperación y bloqueo esperarán hasta que finalice la operación de envío.

Consulte: Importación de datos (almacenamiento agregado)

Ver estadísticas de segmentos de datos incrementales

Essbase proporciona estadísticas sobre el tamaño y el número de segmentos de datos de almacenamiento agregado incremental (ASO) y el costo de consultar los segmentos de datos incrementales.

El tiempo que tarda una consulta en acceder a todos los segmentos de datos incrementales se expresa como un porcentaje (entre .01 y 1.0 inclusive). Si un cubo tiene un segmento principal y varios segmentos de datos incrementales, una estadística de consulta de 0,66 significa que dos tercios del tiempo de consulta se ha dedicado a consultar los segmentos de datos incrementales y un tercio a consultar el segmento de datos principal. Si el costo de la consulta de los segmentos de datos incrementales es demasiado alto, puede fusionar los segmentos.

Para ver la información sobre los segmentos, utilice la gramática list Aggreg_storage slice_info en la sentencia maxL de la base de datos de consultas. Por ejemplo,

query database ASOsamp.Basic list aggregate_storage slice_info;

Consultar base de datos (almacenamiento agregado)

Renegación de miembros en cargas de datos de almacenamiento agregado

Los miembros renegados permiten la continuación de una carga de datos de almacenamiento agregado (ASO) de Essbase incluso si una combinación de miembros especificada tiene miembros faltantes o no válidos.

Cuando una carga de datos encuentra un miembro faltante o no válido, la carga de datos continúa, con el valor de datos del miembro faltante o no válido almacenado en el miembro que se etiqueta como miembro renegado en la dimensión. Si no se define un miembro renegado en la dimensión, se rechaza el registro. Si ya existen datos para el miembro renegado, el comportamiento depende de si ha seleccionado agregar valores o sobrescribir valores al crear el archivo de reglas de carga de datos.

Cada dimensión solo puede tener un miembro asignado como miembro renegado y el miembro renegado debe ser un miembro de nivel 0.

El siguiente archivo de carga de datos incluye un miembro denominado SC:

Product  Measures   *Data*
NY,      Sales       100
SA,      Sales       200
SC,      Sales       300    

En el siguiente esquema, ningún miembro se denomina SC; sin embargo, el miembro denominado SA se define como el miembro renegado en la dimensión Products:

Products (+)
   NY (+)
   SA (+)
Measures (+)
   Sales (+)
   COGS (+)

Durante la carga de datos, el valor de datos para la combinación de miembro SC y Sales, que es 300, se carga en el SA y Sales del miembro renegado.

En el siguiente archivo de carga de datos, existen dos registros para SC y Sales, cada uno con valores diferentes:

Product    Measures    *Data*
NY,        Sales        100
SA,        Sales        200
SC,        Sales        250
SC,        Sales        300 

Ambos valores para SC y Sales (250 y 300) se cargan en SA y Sales. Si ha seleccionado agregar valores, el valor de la celda es 550 (250 + 300). Si ha seleccionado sobrescribir valores, el valor de la celda será el último cargado; en este caso, 300.

Los siguientes ejemplos ilustran el comportamiento de los miembros renegados mediante el siguiente archivo de carga de datos:

Months    Transaction Type    Customer    Product    Price
Jan,      Sale,               Discard1,   Product1   300
Jan,      Sale,               Discard1,   Discard2   300
Jan,      Sale,               Customer1,  Discard2   300

Discard1 y Discard2 no existen en el esquema.

  • Ejemplo 1:

    Si la dimensión Customer tiene el miembro Customer1 etiquetado como renegado y las demás dimensiones no tienen miembros renegados, solo se carga el primer registro en la siguiente intersección:

    Jan    Sale    Customer1(Ren)    Product1    300

    Los otros dos registros se rechazan porque la dimensión Product no tiene un miembro renegado. Los registros rechazados se registran en el archivo log del miembro renegado.

  • Ejemplo 2:

    Si la dimensión Product tiene el miembro Product1 etiquetado como renegado y las demás dimensiones no tienen miembros renegados, solo se carga el último registro en la siguiente intersección:

    Jan    Sale    Customer1    Product1(Ren)    300

    Los otros dos registros se rechazan porque la dimensión Customer no tiene un miembro renegado. Los registros rechazados se registran en el archivo log del miembro renegado.

  • Ejemplo 3:

    Si las dimensiones Cliente y Producto tienen miembros renegados (Cliente1 y Producto1), todos los registros se cargan en la siguiente intersección:

    Jan    Sale    Customer1(Ren)    Product1(Ren)    900 (or 300 if overwrite is enabled)

Ejemplo 4:

En el ejemplo 4, la dimensión Cliente tiene RenMember1 etiquetado como renegado y la dimensión Producto tiene RenMember2 etiquetado como renegado. Mediante el siguiente archivo de carga de datos, se cargan todos los registros porque tanto las dimensiones Customer como Product tienen miembros renegados.

Customer1 y Product1 no son miembros renegados. "Desechar1" y "Desechar2" no existen en el esquema.

Archivo de Carga de Datos:

Months  Transaction Type  Customer    Product   *Data*
Jan,     Sale,            Discard1,   Product1   300
Jan,     Sale,            Discard1,   Discard2   300
Jan,     Sale,            Customer1,  Discard2   300

Los valores especificados en el archivo de carga de datos para los miembros de descarte se cargan automáticamente en los miembros renegados designados:

Datos cargados:

Months  Measures   Customer          Product           Price
Jan     Sale       RenMember1(ren)   ProductR          300
Jan     Sale       RenMember1(ren)   RenMember2(ren)   300
Jan     Sale       CustomerR         RenMember2(ren)   300

El registro de los miembros renegados no está activado por defecto. Para activar el registro, utilice el valor de configuración RENEGADELOG, que, cuando se define en TRUE, activa el registro de miembros cargados en una intersección de miembros renegados.

Note:

Se puede hacer referencia a los miembros renegados en scripts de cálculo e informes. Los miembros renegados no se admiten en cargas de datos tabulares ni en operaciones de actualización de hojas de cálculo.

Diferencias de datos de origen para cargas de datos de almacenamiento agregado

Al procesar registros en los datos de origen como preparación para cargar valores en cubos de almacenamiento agregado (ASO), Essbase procesa registros solo para las intersecciones de dimensión de nivel 0 en las que el miembro no tiene una fórmula.

El siguiente ejemplo muestra un origen de datos que tiene registros solo para intersecciones de nivel 0. El último campo contiene valores de datos y los demás campos son miembros de nivel 0 de sus respectivas dimensiones.

Jan, Curr Year, Digital Cameras, CO, Original Price, 10784
Jan, Prev Year, Camcorders, CO, Original Price, 13573

Essbase ignora los registros que especifican miembros de nivel superior y, al final de la carga de datos, muestra el número de registros omitidos.

Por ejemplo, se omitiría el siguiente registro porque el miembro Mid West es un miembro de nivel 1:

Jan, Curr Year, Digital Cameras, Mid West, Original Price, 121301

No es necesario ordenar los datos porque Essbase lee y ordena los registros internamente antes de confirmar los valores en el cubo.