Carregar Dados em Cubos de Armazenamento Agregados
Os cubos de armazenamento agregado (ASO) do Essbase facilitam a análise de dimensões muito grandes contendo até um milhão ou mais membros. Para ajudá-lo a carregar dados em contornos tão grandes, você pode carregar de forma incremental, gerenciar os buffers de carregamento de dados e mesclar/substituir fatias de dados.
Para suportar com eficiência o carregamento de valores de dados em cubos grandes, o Essbase:
-
Permite o processamento de várias origens de dados por meio de buffers de carregamento de dados temporários
-
Permite controlar a porcentagem de recursos que um buffer de carregamento de dados usa
-
Permite que um cubo de armazenamento agregado contenha várias fatias de dados (uma consulta ao banco de dados acessa cada fatia, coletando todas as células de dados)
-
Fornece um processo de carregamento de dados incremental que é concluído em um período de tempo proporcional ao tamanho dos dados incrementais
Para carregar valores para agregar cubos de armazenamento, você pode usar a página Jobs na interface web do Essbase ou pode usar as instruções alterar banco de dados e importar dados no MaxL. Os exemplos neste documento são baseados no uso de MaxL.
Observação:
Se os valores tiverem sido calculados e armazenados por meio de uma agregação, o Essbase atualizará automaticamente os valores armazenados de nível superior quando os valores de dados forem alterados. Nenhuma etapa de cálculo adicional é necessária. A existência e o tamanho de uma agregação podem afetar o tempo necessário para executar um carregamento de dados.
Não é possível exportar dados ao carregar dados em um cubo.
Ao copiar um aplicativo ASO, para reter todos os dados no cubo, você deve mesclar todos os segmentos de dados incrementais no segmento do banco de dados principal antes de copiar o aplicativo. Os dados em segmentos de dados incrementais não mesclados não são copiados.
Carregar Dados Incrementalmente por meio de um Buffer de Carga de Dados
Se você usar o carregamento de dados incremental para carregar valores de dados em um cubo de armazenamento agregado (ASO) do Essbase, poderá melhorar o desempenho. O Essbase carrega os valores em um buffer de carregamento de dados temporário primeiro, com uma gravação final no armazenamento depois que todas as origens de dados tiverem sido lidas.
O uso da instrução importar dados MaxL para carregar valores de dados de uma única origem de dados não envolve o buffer de carga de dados de armazenamento agregado.
Se você usar várias instruções importar dados do banco de dados MaxL para carregar valores de dados para agregar cubos de armazenamento, o Essbase poderá utilizar um buffer de carregamento de dados temporário, concluindo a gravação final no armazenamento após a leitura de todas as origens de dados. O uso do buffer de carga de dados de armazenamento agregado pode melhorar significativamente o desempenho geral da carga de dados.
No buffer de carregamento de dados de armazenamento agregado, o Essbase classifica e confirma os valores após a leitura de todas as origens de dados. Se forem encontrados vários registros (ou registros duplicados) para qualquer célula de dados específica, os valores serão acumulados. O Essbase armazena os valores acumulados — substituindo, adicionando ou subtraindo valores de dados existentes no cubo.
Observação:
Ao usar o buffer de carga de dados de armazenamento agregado, a opção de substituir, adicionar ou subtrair valores é especificada para todo o conjunto de origens de dados ao carregar o conteúdo do buffer de dados no cubo.
Embora o buffer de carga de dados exista na memória, não é possível criar agregações ou mesclar fatias, porque essas operações consomem muitos recursos. No entanto, você pode carregar dados para outros buffers de carregamento de dados e executar consultas e outras operações no cubo. Pode haver uma breve espera por consultas, até que o conjunto de dados completo seja confirmado e as agregações sejam criadas.
O buffer de carga de dados existe na memória até que o conteúdo do buffer seja submetido a commit no cubo ou o aplicativo seja reiniciado, momento em que o buffer é destruído. Mesmo que a operação de commit falhe, o buffer é destruído e os dados não são carregados no cubo. Você pode destruir manualmente um buffer de carga de dados usando a instrução alter database MaxL.
Observação:
Interromper o aplicativo antes de confirmar o conteúdo do buffer destrói o buffer. Nessa situação, depois de reiniciar o aplicativo, você deve inicializar um novo buffer e carregar os dados nele.
Para usar o buffer de carga de dados para cubos de armazenamento agregado:
O exemplo de carregamento de dados incremental a seguir fornece desempenho ideal quando novos valores de dados não se cruzam com valores existentes:
-
Crie um único buffer de carregamento de dados usando as propriedades ignore_missing_values e ignore_zero_values. Por exemplo:
alter database ASOsamp.Basic initialize load_buffer with buffer_id 1 property ignore_missing_values, ignore_zero_values;Se o cubo precisar estar disponível para enviar solicitações de dados durante a atualização, inicialize o buffer de carga de dados com a gramática resource_usage definida para 80%. Por exemplo:
alter database ASOsamp.Basic initialize load_buffer with buffer_id 1 resource_usage 0.8 property ignore_missing_values, ignore_zero_values; -
Carregue os dados no buffer. Por exemplo:
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 o conteúdo do buffer de carga de dados no cubo criando uma fatia e adicionando valores. Por exemplo:
import database ASOsamp.Basic data from load_buffer with buffer_id 1 add values create slice;
Uso de Espaço em Disco e Recurso do Buffer de Carga de Dados
Quando você usa o carregamento de dados incremental para carregar valores de dados em um cubo de armazenamento agregado (ASO) do Essbase, pode colocar restrições no uso de recursos permitido e no tempo de espera para o buffer de carregamento de dados temporário. Você pode reduzir o uso de espaço em disco gerenciando o tablespace.
Controlando o Uso de Recursos do Buffer de Carga de Dados
Ao executar um carregamento de dados incremental, o Essbase usa o cache de armazenamento agregado para classificar dados. Você pode controlar a quantidade de cache que um buffer de carga de dados pode usar especificando a porcentagem. A porcentagem é um número entre .01 e 1.0, inclusive; somente dois dígitos após o ponto decimal são significativos — por exemplo, 0,029 é interpretado como 0,02. Por padrão, o uso de recursos de um buffer de carregamento de dados é definido como 1.0, e o uso total de recursos de todos os buffers de carregamento de dados criados em um banco de dados não pode exceder 1.0. Por exemplo, se existir um buffer de tamanho 0,9, não será possível criar outro buffer de tamanho maior que 0,1.
Observação:
As operações de envio criam internamente buffers de carga de tamanho 0,2; portanto, um buffer de carga do tamanho padrão 1,0 causará falha nas operações de envio por causa de recursos insuficientes de buffer de carga de dados.
Para definir a quantidade de recursos que o buffer pode usar, especifique a porcentagem quando você iniciar o carregamento de dados na interface Web do Essbase. Se estiver usando MaxL, use a instrução alter database MaxL com a gramática resource_usage.
Por exemplo, para definir resource_usage como 50% do cache total, use esta instrução:
alter database ASOsamp.Basic
initialize load_buffer with buffer_id 1
resource_usage .5;Se você planeja executar operações de envio simultâneas, use a definição de configuração ASOLOADBUFFERWAIT e a instrução alter database MaxL com a gramática wait_for_resources. ASOLOADBUFFERWAIT se aplica à criação de buffers de carregamento de dados de armazenamento agregado com a opção wait_for_resources e se aplica a alocações, cálculos personalizados e operações de atualização de dados.
Gerenciando o Espaço em Disco para Cargas de Dados Incrementais
Os carregamentos de dados incrementais em cubos de armazenamento agregado podem usar espaço em disco até duas vezes o tamanho de seus arquivos de dados atuais. Por exemplo, suponha que o tamanho dos dados de um cubo seja 1 GB e o tamanho do carregamento de dados incremental seja 200 MB, para um tamanho total de 1,2 GB. Durante o processo de carregamento de dados incremental, o Essbase pode usar até 2,4 GB de espaço em disco.
Nos casos em que os bancos de dados são maiores que 2 GB, você pode reduzir a utilização de espaço em disco definindo o tamanho máximo do arquivo do tablespace padrão como não mais que 2 GB.
Para definir o tamanho máximo do arquivo do tablespace padrão, você pode usar a instrução alter tablespace MaxL.
Propriedades do Buffer de Carga de Dados
Ao carregar valores de dados incrementalmente em um buffer de carga de armazenamento agregado (ASO), você pode dizer ao Essbase para ignorar valores ausentes e zero nos dados de origem, e pode resolver conflitos de célula (eliminar agregações inválidas combinando células duplicadas).
As propriedades do buffer de carga de dados que você pode definir são:
-
ignore_missing_values: ignora valores #MI no fluxo de dados recebido
-
ignore_zero_values: Ignora zeros no fluxo de dados de entrada
-
Aggreg_use_last: Combina células duplicadas usando o valor da célula que foi carregada por último no buffer de carga
Observação:
Ao carregar valores de texto e data em um banco de dados de armazenamento agregado, use a propriedade aggregate_use_last para ajudar a eliminar agregações inválidas. Para obter outras diretrizes, consulte Carregar, Limpar e Exportar Medidas de Texto e Data.
Se você usar várias propriedades no comando e houver algum conflito, a última propriedade listada terá precedência.
Tratamento de Ausências e Zeros no Fluxo de Dados
Ao carregar dados de forma incremental, você pode especificar como os valores ausentes e zero nos dados de origem são tratados ao carregar os dados no buffer de carregamento de dados.
Para definir propriedades do buffer de carga de dados, use a instrução alter database MaxL com a gramática property.
Por exemplo:
alter database ASOsamp.Basic
initialize load_buffer with buffer_id 1
property ignore_missing_values, ignore_zero_values;Resolvendo Conflitos de Célula
Para resolver conflitos de células para células duplicadas, você pode especificar se deseja usar a última célula carregada no buffer de carga.
Por padrão, quando células com chaves idênticas são carregadas no mesmo buffer de carregamento de dados, o Essbase resolve o conflito de células adicionando os valores juntos.
Para criar um buffer de carga de dados que combine células duplicadas aceitando o valor da célula que foi carregada por último no buffer de carga, use a instrução alter database MaxL com a gramática aggregate_use_last.
Por exemplo:
alter database ASOsamp.Basic
initialize load_buffer with buffer_id 1
property aggregate_use_last;Observação:
Ao usar buffers de carga de dados com a gramática aggregate_use_last, as cargas de dados são significativamente mais lentas, mesmo que não haja nenhuma chave duplicada.
Várias Cargas de Dados em Paralelo
Vários buffers de carregamento de dados podem existir em um cubo de armazenamento agregado (ASO) do Essbase. Embora apenas uma operação commit possa estar ativa por vez, você pode fazer commit em vários buffers de carga de dados no mesmo commit, o que é mais rápido do que fazer commit dos buffers individualmente.
Para carregar dados em vários buffers de carregamento de dados simultaneamente, use sessões separadas do MaxL Shell. Por exemplo, em uma sessão do MaxL Shell, carregue dados em um buffer com um 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;
Simultaneamente, em outra sessão do MaxL Shell, carregue dados em um buffer com um 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;
Quando os dados forem totalmente carregados nos buffers de carga de dados, use uma instrução MaxL para fazer commit do conteúdo de ambos os buffers no banco de dados usando uma lista separada por vírgulas de IDs de buffer:
Por exemplo, esta instrução carrega o conteúdo dos buffers 1 e 2:
import database ASOsamp.Basic data
from load_buffer with buffer_id 1, 2;Observação:
Ao carregar dados SQL em cubos de armazenamento agregado, você pode usar até oito arquivos de regras para carregar dados em paralelo. Esta funcionalidade é diferente do processo descrito acima. Ao executar vários carregamentos de dados SQL em paralelo, você pode usar uma instrução import database MaxL com a gramática using multiple rules_file. O Essbase inicializa vários buffers de carregamento de dados de armazenamento agregado temporário (um para cada arquivo de regras) e confirma o conteúdo de todos os buffers no cubo em uma operação.
Listar Buffers de Carga de Dados para um Cubo de Armazenamento Agregado
Vários buffers de carregamento de dados podem existir em um cubo de armazenamento agregado (ASO) do Essbase. For a list and description of the data load buffers that exist on the cube, use the query database MaxL statement with the list load_buffers grammar.
A sintaxe da instrução MaxL para listar buffers de carregamento de dados ASO é:
query database appname.dbname list load_buffers;Esta instrução retorna as seguintes informações sobre cada buffer de carregamento de dados existente:
Tabela 37-2 Informações do Buffer de Carga de Dados
| Campo | Descrição |
|---|---|
|
id_buffer |
ID de um buffer de carga de dados (um número entre 1 e 4,294,967,296). |
|
interno |
Um Booliano que especifica se o buffer de carga de dados foi criado internamente pelo Essbase (TRUE) ou por um usuário (FALSE). |
|
ativo |
Um booliano que especifica se o buffer de carregamento de dados está atualmente sendo usado por uma operação de carregamento de dados. |
|
resource_usage |
A porcentagem (um número entre .01 e 1.0 inclusive) do cache de armazenamento agregado que o buffer de carga de dados tem permissão para usar. |
| método de agregação |
Um dos métodos usados para combinar vários valores para a mesma célula dentro do buffer:
|
|
ignore_missings |
Um booliano que especifica se os valores #MI devem ser ignorados no fluxo de dados de entrada. |
|
ignore_zeros |
Um Booliano que especifica se os zeros devem ser ignorados no fluxo de dados de entrada. |
Consulte: Banco de Dados de Consulta (Armazenamento Agregado)
Criar uma Fatia de Dados
Você pode confirmar incrementalmente o buffer de carga de dados em um cubo de armazenamento agregado (ASO) do Essbase para criar uma fatia. Depois de carregar a nova fatia no cubo, o Essbase cria todas as views necessárias na fatia (como views agregadas) antes que os novos dados sejam visíveis para consultas.
A criação de um segmento de dados é útil porque melhora o desempenho de carregamentos de dados incrementais. O tempo que uma carga de dados incremental leva é proporcional à quantidade de novos dados; o tamanho do cubo não é um fator.
Para criar um segmento de dados, use a instrução import database MaxL com a gramática create slice.
Por exemplo, para criar um segmento substituindo valores (o padrão), utilize esta instrução:
import database ASOsamp.Basic data
from load_buffer with buffer_id 1
override values create slice;Observação:
Se você utilizar valores de substituição ao criar um intervalo, os valores #MISSING serão substituídos por zeros. O uso dessa opção é significativamente mais lento do que usar as opções de adicionar valores ou subtrair valores.
Consulte: Importar Dados (Armazenamento Agregado)
Mesclar Fatias de Dados Incrementais
Ao carregar dados de forma incremental para um cubo de armazenamento agregado (ASO), você pode mesclar manualmente as fatias de dados incrementais na fatia do cubo principal ou pode usar AUTOMERGE para configurar o Essbase para mesclar automaticamente as fatias durante o carregamento de dados.
Mesclando Automaticamente Fatias de Dados Incrementais Durante um Carregamento de Dados em um Cubo de Armazenamento Agregado
Usando as definições de configuração AUTOMERGE e AUTOMERGEMAXSLICENUMBER, você pode especificar se o Essbase mesclará automaticamente as fatias de dados incrementais durante um carregamento de dados a um cubo de armazenamento agregado.
Opções de configuração AUTOMERGE:
-
SEMPRE—Especifica para mesclar automaticamente fatias de dados incrementais durante um carregamento de dados em um cubo de armazenamento agregado. Por padrão, as mesclagens são executadas uma vez para cada quatro intervalos de dados incrementais consecutivos. No entanto, se a configuração AUTOMERGEMAXSLICENUMBER for usada, o processo de mesclagem automática será ativado quando o valor AUTOMERGEMAXSLICENUMBER for excedido. O tamanho das fatias de dados incrementais não é um fator na seleção de quais são mescladas.
O valor padrão é SEMPRE.
-
NUNCA—Especifica para nunca mesclar automaticamente fatias de dados incrementais durante um carregamento de dados em um cubo de armazenamento agregado. Para mesclar manualmente os segmentos de dados incrementais, use a instrução alter database MaxL com a gramática merge.
-
SELECTIVE—Especifica para ativar o processo de mesclagem automática de segmentos de dados incrementais quando o número de segmentos de dados incrementais especificado na configuração AUTOMERGEMAXSLICENUMBER é excedido. Se o número de fatias de dados incrementais no carregamento de dados não exceder o valor de AUTOMERGEMAXSLICENUMBER, o processo de mesclagem automática não será ativado.
Mesclando Manualmente Fatias de Dados Incrementais
Você pode mesclar todas as fatias incrementais de dados na fatia principal ou mesclar todas as fatias incrementais de dados em uma única fatia, mantendo a fatia principal inalterada. Para mesclar segmentos, você deve ter os mesmos privilégios para carregar dados (Permissão de Atualização do Banco de Dados ou superior).
Depois que a nova view de entrada é gravada no cubo, o Essbase cria as views agregadas para a fatia. As visualizações criadas para o novo segmento são um subconjunto das visualizações que existem no segmento principal.
Observação:
Não é possível exportar dados ao executar uma mesclagem.
Se você limpou dados de uma região usando a operação de limpeza lógica de região, o que resulta em um valor zero para as células que você limpou, você pode optar por remover células de valor zero durante a operação de mesclagem.
Para executar operações de mesclagem, use a instrução alter database MaxL com a gramática merge.
Por exemplo, para mesclar todos os segmentos de dados incrementais no segmento principal, use esta instrução:
alter database ASOsamp.Basic
merge all data;Para mesclar todas as fatias de dados incrementais na fatia principal e remover células de valor zero, use esta instrução:
alter database ASOsamp.Basic
merge all data remove_zero_cells;Para mesclar todas as fatias de dados incrementais em uma única fatia de dados, use esta instrução:
alter database ASOsamp.Basic
merge incremental data;Observação:
Antes de copiar um aplicativo de armazenamento agregado, é necessário mesclar todos os segmentos de dados incrementais no segmento principal. Os dados em segmentos de dados incrementais não mesclados não são copiados.
Links Relacionados
Substituir Dados Usando Conteúdo de Fatia de Dados Incrementais
Para conjuntos de dados de armazenamento agregado (ASO) pequenos o suficiente para recarregar completamente, mantendo a baixa latência de dados, o Essbase pode remover o conteúdo atual de um cubo de armazenamento agregado e substituir o cubo pelo conteúdo de um buffer de carga de dados especificado.
A funcionalidade de substituição atômica faz a transição consultando o conteúdo antigo do cubo para o novo conteúdo sem interromper o serviço. O conjunto de dados recém-carregado é agregado para criar o mesmo conjunto de views que existia para o conjunto de dados substituído.
O Essbase também permite substituir atomicamente o conteúdo de todas as fatias de dados incrementais em um cubo. Considere uma situação em que os dados podem ser separados em um conjunto de dados estático relativamente grande que nunca é atualizado e um conjunto de dados relativamente pequeno e volátil para o qual as atualizações individuais são difíceis de identificar, mas estão confinadas ao conjunto de dados voláteis. Por exemplo, o conjunto de dados grande e estático consiste em dados de transação históricos dos últimos três anos; no entanto, para os dados de transação dos últimos dois meses, os usuários podem alterar uma característica de uma transação no banco de dados de origem. O rastreamento dessas alterações pode ser proibitivamente complexo. É possível carregar o conjunto de dados estáticos como o segmento principal em um cubo e o conjunto de dados voláteis como um ou mais segmentos incrementais.
Ao confirmar fatias durante o carregamento de dados incrementais ASO, o Essbase remove o conteúdo atual de todas as fatias de dados incrementais e cria uma nova fatia (usando a gramática adicionar valores na especificação de commit de buffer da instrução importar banco de dados MaxL) com o conteúdo de um buffer de carga de dados especificado. O conjunto de dados recém-carregado é aumentado com exibições agregadas com base no conjunto de exibições que existe no segmento principal.
Observação:
Para usar a gramática substituir, crie um buffer de carga de dados com a propriedade ignore_missing_values para obter o desempenho ideal. Além disso, você deve garantir que não haja conflitos entre os conjuntos de dados estáticos e voláteis (por exemplo, não deve haver um valor em cada conjunto de dados para a mesma célula).
Para substituir o conteúdo de um banco de dados ou os segmentos de dados incrementais em um cubo, use a instrução importar banco de dados MaxL com a gramática substituir.
Por exemplo, para substituir o conteúdo de um cubo, use esta instrução:
import database ASOsamp.Basic data
from load_buffer with buffer_id 1
override all data;Para substituir o conteúdo de todos os segmentos de dados incrementais por um novo segmento, utilize esta instrução:
import database ASOsamp.Basic data
from load_buffer with buffer_id 1
override incremental data;Observação:
Se a substituição falhar, o Essbase continuará a fornecer o conjunto de dados antigo.
No Smart View, o comando de envio é equivalente ao uso da funcionalidade de carregamento de dados incremental com a gramática substituir.
Ao executar uma operação de envio, novas solicitações de bloqueio, desbloqueio, recuperação e bloqueio aguardarão até que a operação de envio seja concluída.
Consulte: Importar Dados (Armazenamento Agregado)
Exibir Estatísticas de Fatias de Dados Incrementais
O Essbase fornece estatísticas sobre o tamanho e o número de fatias de dados de armazenamento agregado incremental (ASO) e o custo de consultar as fatias de dados incrementais.
O tempo que uma consulta leva para acessar todas as fatias de dados incrementais é expresso como uma porcentagem (entre .01 e 1.0 inclusive). Se um cubo tiver uma fatia principal e várias fatias de dados incrementais, uma estatística de consulta de 0,66 significa que dois terços do tempo de consulta foi gasto consultando as fatias de dados incrementais e um terço foi gasto consultando a fatia de dados principal. Se o custo de consulta das fatias de dados incrementais for muito alto, você poderá mesclar as fatias.
Para exibir as informações sobre segmentos, use a gramática list Aggreg_storage slice_info na instrução MaxL do banco de dados de consulta. Por exemplo,
query database ASOsamp.Basic list aggregate_storage slice_info;
Membros Renegados em Cargas de Dados de Armazenamento Agregado
Os membros Renegados permitem a continuação de um carregamento de dados de armazenamento agregado (ASO) do Essbase, mesmo que uma combinação de membros especificada tenha membros ausentes ou inválidos.
Quando um carregamento de dados encontra um membro ausente ou inválido, o carregamento de dados continua, com o valor de dados do membro ausente ou inválido armazenado no membro que é marcado como o membro renegado na dimensão. Se um membro renegado não estiver definido na dimensão, o registro será rejeitado. Se já existirem dados para o membro renegado, o comportamento dependerá se você selecionou adicionar valores ou substituir valores ao criar o arquivo de regras de carregamento de dados.
Cada dimensão pode ter apenas um membro atribuído como um membro renegado, e o membro renegado deve ser um membro de nível 0.
O seguinte arquivo de carregamento de dados inclui um membro chamado SC:
Product Measures *Data*
NY, Sales 100
SA, Sales 200
SC, Sales 300 No esboço a seguir, nenhum membro é nomeado SC; no entanto, o membro chamado SA é definido como o membro renegado na dimensão Produtos:
Products (+)
NY (+)
SA (+)
Measures (+)
Sales (+)
COGS (+)
Durante o carregamento de dados, o valor de dados para a combinação de membros SC e Vendas, que é 300, é carregado no Acordo de Serviço e Vendas do membro renegado.
No arquivo de carregamento de dados a seguir, existem dois registros para SC e Vendas, cada um com valores diferentes:
Product Measures *Data*
NY, Sales 100
SA, Sales 200
SC, Sales 250
SC, Sales 300 Ambos os valores para SC e Vendas (250 e 300) são carregados no Acordo de Serviço e Vendas. Se você selecionou adicionar valores, o valor na célula será 550 (250 + 300). Se você optou por substituir valores, o valor na célula será o último carregado; nesse caso, 300.
Os exemplos a seguir ilustram o comportamento de membros renegados usando o seguinte arquivo de carregamento de dados:
Months Transaction Type Customer Product Price
Jan, Sale, Discard1, Product1 300
Jan, Sale, Discard1, Discard2 300
Jan, Sale, Customer1, Discard2 300Descartar1 e Descartar2 não existem na estrutura.
-
Exemplo 1:
Se a dimensão Cliente tiver o membro Customer1 marcado como renegado e as outras dimensões não tiverem membros renegados, somente o primeiro registro será carregado na seguinte interseção:
Jan Sale Customer1(Ren) Product1 300Os outros dois registros foram rejeitados porque a dimensão Produto não tem um membro renegado. Os registros rejeitados são registrados no arquivo de log do membro renegado.
-
Exemplo 2:
Se a dimensão Produto tiver o membro Product1 marcado como renegado e as outras dimensões não tiverem membros renegados, somente o último registro será carregado na seguinte interseção:
Jan Sale Customer1 Product1(Ren) 300Os outros dois registros são rejeitados porque a dimensão Cliente não tem um membro renegado. Os registros rejeitados são registrados no arquivo de log do membro renegado.
-
Exemplo 3:
Se as dimensões Cliente e Produto tiverem membros renegados (Customer1 e Product1), todos os registros serão carregados na seguinte interseção:
Jan Sale Customer1(Ren) Product1(Ren) 900 (or 300 if overwrite is enabled)
Exemplo 4:
No exemplo 4, a dimensão Cliente tem RenMember1 marcado como renegado e a dimensão Produto tem RenMember2 marcado como renegado. Usando o arquivo de carregamento de dados a seguir, todos os registros são carregados porque as dimensões Cliente e Produto têm membros renegados.
Customer1 e Product1 não são membros renegados. "Descartar1" e "Descartar2"não existem na estrutura.
Arquivo de Carga de Dados:
Months Transaction Type Customer Product *Data*
Jan, Sale, Discard1, Product1 300
Jan, Sale, Discard1, Discard2 300
Jan, Sale, Customer1, Discard2 300Os valores especificados no arquivo de carregamento de dados para membros de descarte são carregados automaticamente nos membros renegados designados:
Dados carregados:
Months Measures Customer Product Price
Jan Sale RenMember1(ren) ProductR 300
Jan Sale RenMember1(ren) RenMember2(ren) 300
Jan Sale CustomerR RenMember2(ren) 300O registro em log de membros renegados não está ativado por padrão. Para ativar o registro em log, use a definição de configuração RENEGADELOG, que, quando definida como TRUE, permite o registro em log de membros carregados em uma interseção de membro renegado.
Observação:
Os membros Renegados podem ser referenciados em scripts de cálculo e relatório. Os membros Renegados não são suportados em carregamentos de dados tabulares ou operações de atualização de planilha.
Diferenças de Dados de Origem para Cargas de Dados de Armazenamento Agregado
Ao processar registros nos dados de origem em preparação para carregar valores em cubos de armazenamento agregado (ASO), o Essbase processa registros apenas para as interseções de dimensão de nível 0 em que o membro não tem uma fórmula.
O exemplo a seguir mostra uma origem de dados que tem registros apenas para interseções de nível 0. O último campo contém valores de dados e os outros campos são membros de nível 0 de suas respectivas dimensões.
Jan, Curr Year, Digital Cameras, CO, Original Price, 10784
Jan, Prev Year, Camcorders, CO, Original Price, 13573O Essbase ignora registros que especificam membros de nível superior e, no final do carregamento de dados, exibe o número de registros ignorados.
Por exemplo, o seguinte registro seria ignorado porque o membro Mid West é um membro de nível 1:
Jan, Curr Year, Digital Cameras, Mid West, Original Price, 121301A classificação de dados é desnecessária porque o Essbase lê e classifica registros internamente antes de confirmar valores no cubo.