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:
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:
-
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; -
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; -
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:
|
|
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.
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
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.
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;
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 300Discard1 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 300Los 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) 300Los 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 300Los 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) 300El 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, 13573Essbase 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, 121301No es necesario ordenar los datos porque Essbase lee y ordena los registros internamente antes de confirmar los valores en el cubo.