Fala Galera, tudo bom???
Gostaria primeiramente de desejar um ótimo 2013 a todos!!!!
Hoje estou aqui para falar sobre hierarquias do tipo pai-filho.
Este tipo de hierarquia se difere da baseada em nível pelo fato dos níveis não estarem dispostos em colunas separadas (níveis fixos), todos os níveis tem o mesmo tipo e estão dispostos em uma mesma coluna e seus níveis são definidos em tempo de execução.
Para a realização deste “LAB”, utilizaremos o modelo físico a seguir:
No modelo acima, minha dimensão de Classe possui uma hierarquia do tipo pai-filho definida pelas colunas SK_CLASSE (membros da hierarquia) e SK_CLASSE_PAI (definição nos níveis), utilizaremos estas 2 colunas para gerar a hierarquia.
Após todo o mapeamento pronto, clique sob a tabela lógica “DM Classe 1g” com o direito do mouse e crie uma dimensão lógica do tipo pai-fiho como exibido na imagem abaixo:
Passo-a-passo para configuração da hierarquia
1 – Defina o nome da sua hierarquia , qual coluna contém os membros (Member key) dessa hierarquia e qual coluna contém os níveis (Parent Column);
Obs.: por default o OBI preenche o seu member key com a chave primária da tabela de dimensão.
Caso queira alterá-lo, basta clica r em procurar a direita do campo “Member Key”.
E nessa nova tela, selecionar a chave desejada.
2 – Definir a coluna com a informação dos níveis
No nosso caso, a coluna que contém a informação dos níveis é a SK_CLASSE_PAI, para defini-la, clique em procurar a direita de Parent Column e selecione a coluna SK_CLASSE_PAI.
.
3 – Definição da Tabela de relacionamento pai-filho
A tabela de relacionamento pai-filho serve para resolver dinamicamente os níveis de sua hierarquia
Clique em configuração pai-filho.
Clique em criar uma nova tabela de relacionamento pai-filho.
Neste primeiro passo de definição da tabela de relacionamento pai-filho, vamos informar o nome e local para os scripts de criação e população desta tabela e após isso clique em “próximo”.
Informe o nome que terá a sua tabela de relacionamento, tanto no banco de dados como em seu repositório e clique em “próximo”.
Após essa definição, o OBI gera os scripts que deverão ser executados no banco de dados. Você pode visualiza-los no diretório de destino que informou acima ou clicando em “Exibir Script” como demonstrado abaixo.
Clique em “finalizar”.
Após a definição da tabela de relacionamento pai-filho, verifique se as colunas desta tabela foram referenciadas de forma correta.
Por padrão estas colunas são definidas da seguinte forma
MEMBER KEY – Chave do membro da hierarquia
ANCESTOR_KEY – Nível pai do membro da hierarquia
DISTANCE – Distância entre o membro da hierarquia e o membro pai
IS_LEAF – Flag que identifica se o membro é o ultimo nível da hierarquia
Clique em OK para concluir a criação da hierarquia.
Após a criação da hierarquia do tipo pai-filho, você poderá visualiza-la na camada lógica do seu repositório.
Confira também se sua tabela de relacionamento pai-filho foi criada na camada física como mostrado abaixo.
4 – Após a criação de sua hierarquia precisamos alterar o modelo para fazer a inclusão da tabela de relacionamento pai-filho
Selecione na camada física a dimensão de classe já existente, a tabela de relacionamento pai-filho que acabamos de criar, a tabela de fatos utilizada e exiba os relacionamento entre estas 3 tabelas.
Note que a tabela que acabamos de criar não está ligada a nenhuma outra tabela.
Precisamos então deletar a junção direta entre a dimensão de classe e a tabela de fatos e posicionar a tabela de relacionamento pai-filho entre as 2 outras
.
Crie agora um relacionamento entre a tabela de relacionamento pai-filho e a tabela de fatos utilizando a chave do membro da hierarquia e um relacionamento entre a tabela de dimensão e a tabela de relacionamento pai-filho utilizando a chave do pai do membro (ANCESTOR_KEY) de sua hierarquia como nas imagens abaixo:
.
Após realizado os joins, o relacionamento entre estas 3 tabelas deverá ficar como apresentado abaixo:
.
Após a conclusão das alterações na camada física, precisamos adicionar na LTS (Logical Table Source) de nossa tabela de dimensões a nossa tabela de relacionamento pai-filho.
Para isso, na camada lógica, expanda o source da tabela de dimensão DM Classe 1g e clique 2 vezes sobre a origem dela para editá-la.
Clique em adicionar uma tabela física a origem lógica
E, em seguida, selecione a tabela de relacionamento pai-filho que acabamos de criar
Clique em OK para finalizarmos os ajustes de modelo.
5 – Criação e carga da tabela de relacionamento pai-filho no banco de dados
Após os ajustes no modelo, temos que criar e popular nossa tabela de relacionamento pai-filho no banco de dados.
Execute primeiramente o script de criação da tabela, como segue abaixo.
Após a criação da tabela, execute o script de carga como segue abaixo
Obs.: a tabela deve ser criada no mesmo schema de banco usando no connection pool do seu modelo.
6 – Validação do Procedimento
Após disponibilizar nossa dimensão (hierarquia pai-filho) na camada de apresentação para que possamos utilizar o objeto em reports, prompts e etc, entre no OBI e renove os metadados
Se o procedimento foi executado com sucesso, poderemos então visualizar a hierarquia criada
Abraços
Felipe Idalgo
Seu blog é oteemooooo!
Ola Barbara,
obrigado, fiquei um tempo afastado por conta de alguns problemas pessoais mas agora estou de volta a ativa, iniciarei uma série de posts sobre o OBIEE 12c.
Abs