Referências de Nível em Construções de Dimensão

Os níveis são definidos a partir de uma hierarquia de baixo para cima, em que os membros da folha são de nível 0, e cada etapa mais próxima do nome da dimensão aumenta o nível em 1. Ao criar dimensões do Essbase de uma origem de baixo para cima, use o método de criação Nível. Se os dados de origem contiverem nulos, use o método de criação Nulos no nível do processo.

Em uma origem de dados ascendente, cada registro define um único membro de uma dimensão. A definição começa com as informações mais específicas sobre o membro e fornece informações progressivamente mais gerais. Um registro típico especifica o nome do novo membro, o nome de seu pai, o pai de seu pai e assim por diante.

Por exemplo, no esboço ilustrado abaixo, os membros de nível inferior estão no fundo das ramificações da dimensão Produto.

Figura 14-3 Números de Geração e Nível


Esta imagem mostra o número de geração e o número de nível de cada membro.

Para criar o outline usando um job de criação de dimensão, você pode inserir a seguinte origem de dados de baixo para cima:

100-10-12  100-10  100
100-20-12  100-20  100

Normalmente, você executaria uma criação de dimensão usando o método de criação Nível quando os membros de nível inferior fossem sequenciados da esquerda para a direita. Os membros de nível 0 (nível de folha) estão no primeiro campo, os membros de nível 1 estão no segundo campo e assim por diante. Esta organização é o oposto de como os dados são apresentados para referências de geração (de cima para baixo).

Suponha que você tenha um cubo com uma dimensão Produto e queira usar o seguinte arquivo de dados de baixo para cima, delimitado por tabulação, para criar mais membros do produto para a dimensão Produto.

600-10-11	600-10	600
600-20-10	600-20	600
600-20-18	600-20	600

A fonte de dados é "bottom-up" na medida em que a primeira coluna da fonte de dados contém novos membros de nível de folha (600-10-11, 600-20-10 e 600-20-18). A segunda coluna contém os pais dos novos membros (600-10 e 600-20), e a terceira coluna contém os pais dos pais (600).

A regra de carregamento de compilação de dimensão usa o método de criação de referência de nível para adicionar os membros à dimensão Produto. A regra especifica o número do nível e o tipo de campo para cada campo da origem de dados. Você também deve selecionar o método de criação Nível nas propriedades de dimensão da regra, a menos que seus dados de origem contenham nulos (para esse caso de uso, consulte Lidando com Campos Vazios, abaixo).

Regra de criação de dimensão para uma criação de nível

O Essbase cria a seguinte hierarquia a partir da origem de dados e regra:

Figura 14-4 Níveis


Esta imagem mostra os novos membros que são criados durante a criação do nível.

Lidando com campos vazios

Ao criar dimensões a partir de referências de geração ou nível nos dados de origem, você pode optar por processar valores nulos. O processamento nulo especifica quais ações o Essbase deve executar ao encontrar campos vazios na origem dos dados.

Observação:

Opções de processamento nulas estão disponíveis apenas para regras de criação de dimensão regulares (não baseadas em índice).

Se o processamento nulo não estiver ativado, o Essbase rejeitará todos os registros com valores nulos e gravará um erro no log de erros.

Para ativar o processamento nulo, selecione um dos métodos de criação de processamento nulo nas propriedades da dimensão quando você criar a nova regra de criação de dimensão.


Métodos de criação de processamento nulo nas propriedades de dimensão para uma nova regra

Se você usar o método de criação Nível do processo nulo, ele instruirá o Essbase a esperar alguns valores nulos ao processar referências de nível nos dados de origem, o que ajuda a evitar erros.

Exemplo

Para este exemplo de criação de dimensão, suponha que você queira adicionar uma hierarquia ragged/assimétrica como a seguinte em uma nova dimensão de Canal no Sample Basic.


A dimensão do canal contém quatro níveis de profundidade de membros. Os IDs de canal estão no nível 0. Os IDs de canal indireto têm três níveis de membros acima deles, e os IDs de canal direto têm quatro níveis de membros acima deles, tornando esta uma hierarquia desequilibrada/arrastada.

A origem de dados é de baixo para cima, o que significa que os níveis mais baixos aparecem primeiro em cada registro. Portanto, faz sentido usar um método de criação de referências de nível. No entanto, serão necessárias instruções de tratamento nulas. Os três primeiros registros de dados de origem contêm campos nulos, pois não há dados de local para os canais indiretos.

Channel-04,,Indirect,"All Channels"
Channel-07,,Indirect,"All Channels"
Channel-24,,Indirect,"All Channels"
Channel-21,Outlet,Direct,"All Channels"
Channel-29,Mall,Direct,"All Channels"
Channel-31,Kiosk,Direct,"All Channels"

Você pode criar uma regra para criar as dimensões e evitar erros relacionados a nulos, usando o método de criação Nível do processo nulo.

Para criar uma regra para este exemplo,

  1. Importe/crie o cubo Básico de Amostra, usando a pasta de trabalho do aplicativo disponível na galeria no catálogo de arquivos do Essbase Server.

  2. Crie um arquivo de dados delimitado por vírgulas como o seguinte, nomeie-o como levchannel.txt e faça upload dele para o diretório de cubo Sample Basic.

    Channel-04,,Indirect,"All Channels"
    Channel-07,,Indirect,"All Channels"
    Channel-24,,Indirect,"All Channels"
    Channel-21,Outlet,Direct,"All Channels"
    Channel-29,Mall,Direct,"All Channels"
    Channel-31,Kiosk,Direct,"All Channels"
  3. Na Home page, abra o aplicativo e, em seguida, abra o banco de dados (cubo).

  4. Selecione a guia Scripts e clique em Regras.


    A guia Scripts está selecionada e o bloco Regras está destacado, na interface web do Essbase.

  5. Clique em Criar e escolha Criação de Dimensão (Regular).


    Na caixa de diálogo do banco de dados, o botão Criar é pressionado e a opção Criação de Dimensão (Regular) é selecionada

  6. Na caixa de diálogo Nova Regra,

    1. Informe um nome de regra; por exemplo, canal de relevância.

    2. Para Tipo de Origem, selecione Arquivo, clique em Catálogo e navegue até levchannel.txt.

      Quando você clica em Catálogo, espera-se que o arquivo esteja localizado no diretório de cubo no Essbase Server por padrão, portanto, você já deve tê-lo carregado usando a seção Arquivos da interface Web do Essbase. Se o arquivo estiver na sua máquina cliente, clique em File Browser para localizar o arquivo.

    3. Deixe os campos Número de Registro do Cabeçalho e Número de Registro de Criação de Dimensão como 0. Registros de cabeçalho não são úteis para builds de dimensão.

    4. Clique em Continuar.

    5. A regra de criação de dimensão é aberta com campos indefinidos e dados de visualização (do arquivo de texto) preenchendo a grade abaixo dos campos.
      Editor de regra de criação de dimensão para a nova regra "levchannel", com campos indefinidos de 1 a 4 como colunas de metadados aguardando para serem preenchidas. Em cada campo estão os valores de dados importados do arquivo de dados de origem.

  7. Como esta é uma nova regra, ainda não há dimensões associadas.

    1. Clique em Dimensões.
      Botão Dimensões no editor de regras

    2. Digite o novo nome da dimensão Canal e clique em Adicionar.
  8. Agora você precisa definir o método de criação e verificar outras instruções operacionais de criação de dimensão. Clique no link Canal para editar as propriedades da dimensão.

  9. Altere Método de Criação para Nível de processo nulo.


    Janela Editar Dimensões no editor de regras de criação de dimensão, com o nível de Processo nulo selecionado.

    Clique em OK.

  10. Clique no seletor de Dimensão no Campo 1 e selecione Canal.
    Campo 1 no editor de regras de criação de dimensão, preenchido com dados e com a dimensão Canal selecionada.

  11. Altere o seletor Tipo do Campo 1 para Nível.

  12. Incremente o Nível para 0, pois os IDs de canal estão no nível 0.

  13. Em Campos 2 - 4, Canal agora deve ser selecionado como a dimensão. Altere os seletores Tipo para Nível e marque os números de nível como 1 para o Campo 2, 2 para o Campo 3 e 3 para o Campo 4.


    Regra de criação de dimensão para criar uma dimensão de Canal com uma hierarquia ragged usando o método de criação de nulos no nível do Processo. O campo 1 é definido como Canal, Nível, 0 e contém IDs de canal. O Campo 2 é definido como Canal, Nível, 1 e contém três campos nulos e três campos de local (Outlet, Mall e Kiosk). O campo 3 é definido como Canal, Nível, 2 e Indireto para três registros e Direto para três registros. O campo 4 é definido como Canal, Nível, 3 e contém Todos os Canais.

  14. Verifique a regra, em seguida, salve e feche. Se houver erros, consulte Requisitos para Arquivos de Regra de Criação de Dimensão Válidos.

  15. Execute o job de criação de dimensão.

  16. Exiba a estrutura de tópicos para confirmar se a dimensão Canal e a hierarquia esperada de membros foram adicionadas.

Fluxo de Processamento Nulo para Builds de Dimensão Baseados em Nível

Se o processamento nulo estiver ativado, o Essbase processará nulos no nível das seguintes maneiras:

  • Campo de nível nulo: Se um valor nulo ocorrer quando o Essbase esperar um campo de Nível, o Essbase promoverá o próximo campo de Nível para substituir o campo ausente.

    Exemplo

    A criação da dimensão coloca Indireto no Nível 1 em vez do Nível 2, porque o Campo 2 para o Nível 1 contém um valor nulo.


    O Campo 1 é Canal, Nível 0, que contém um ID de canal na primeira linha. O Campo 2 é Canal, Nível 1 contendo um valor nulo na primeira linha. O Campo 3 é Canal, Nível 2, contendo Indireto na primeira linha. O Campo 4 é Canal, Nível 3, contendo Todos os Canais.

  • Campo nulo antes de um campo secundário: Se um valor nulo ocorrer diretamente antes de um campo secundário, o Essbase ignorará o campo secundário. (As opções de campo secundário são alias, propriedade, fórmula, nível duplicado, alias de nível duplicado, nome da moeda, categoria da moeda, atributo pai, UDA e um nome de uma dimensão de atributo.)

    Exemplo

    A criação da dimensão ignorará o alias no Campo 3, porque o Campo 2 contém um valor nulo. O Essbase colocará Indireto no Nível 1 e Todos os Canais no Nível 2.


    O Campo 1 é Canal, Nível 0, que contém um ID de canal. O Campo 2 é Canal, Nível 1 contendo um nulo. O Campo 3 é Canal, Alias, contendo Catálogo. O Campo 4 é Canal, Nível 2, contendo Indireto. O Campo 5 é Canal, Nível 3 contendo Todos os Canais.

  • Campo secundário nulo: Se um valor nulo ocorrer quando o Essbase esperar um campo secundário, o Essbase ignorará o campo nulo secundário e continuará carregando (esse é o mesmo comportamento do método de criação Nível).

    Exemplo

    A criação da dimensão ignorará o primeiro alias no Campo 3, porque esse campo contém um valor nulo. O membro Outlet será adicionado ao outline sem nenhum alias.


    O Campo 1 é Canal, Nível 0, contendo IDs de canal. O Campo 2 é Canal, Nível 1 contendo Saída na primeira linha e Centro Comercial e Quiosque nas próximas duas linhas. O campo 3 é Canal, Alias, contendo um valor nulo na primeira linha e alguns aliases nas próximas duas linhas. O Campo 4 é Canal, Nível 2, contendo Direto em todas as linhas. O Campo 5 é Canal, Nível 3 contendo Todos os Canais em todas as linhas.