none
Como Popular uma tabela Fato RRS feed

  • Pergunta

  • Pessoal sou iniciante em BI e estou desenvolvendo um projeto para minha empresa. Para que entendam o meu cenário: fiz a modelagem dimensional, populei minhas dimensões através do SSIS, mas continuo com dúvidas referentes a como popular minha tabela fato.

    Eu criei as dimensões com chaves primárias e chaves naturais (NK). A idéia que eu tive então foi de ir linha a linha na tabela origem, fazendo joins com as dimensões através da NK, trazer as PK das dimensões para inserção no fato. Não sei se ficou claro mas existe outra forma mais correta e rápida de bater e inserir os dados na tabela fato? Outra dúvida é, para aqueles registros da origem que não tem informações da dimensão ex: na tabela de origem ligação alguns registros não traz o operador (dimensão operador), o que eu insiro na tabela fato? Crio na dimensão operador um registro "Sem operador" e insiro essa PK na fato para esses casos sem registro do operador na origem?

    Peço desculpas se essas dúvidas forem básicas e repetidas. Eu procurei sobre o assunto mas não encontrei nada que ficasse claro para mim.

    Desde já agradeço.

    Marcos Rodrigues.

    domingo, 20 de junho de 2010 05:57

Respostas

  • Marcos,

     

    geralmente, as tabelas fato contêm chaves estrangeiras (FK) para as tabelas dimensão. Se a tabela fato contém chaves que não existem nas respectivas dimensões, ou o contrário, a tabela fato tem registros onde a coluna de FK é nula o ideal mesmo é que você normalize isso em um pré-processamento, criando os registros de maneira a padronizar a sua base.

     

    Se não for possível realizar este pré-processamento, se a tabela fato contiver registros que não existem na tabela dimensão, você terá que operar no tratamento de erros de processamento (vc pode fazer isso no Cubo > Dimension Usage > clicando nos grupos de medida acima na tela ou na configuração de processamento aceitando processamento de dimensões com problemas de 'key not found'). Se o problema for o inverso, a tabela fato possui nulos, então não há problema, e será apenas criado um membro de dimensão 'em branco'.

     

    E, de um modo bem simplista, fatos e dimensões trabalham como inner joins. Ou seja, se faltar chaves de um ou outro lado, o problema já começa a aparecer e os erros de cálculo também. Portanto, o melhor mesmo é padronizar os dados da base antes do processamento.

     

    Quaisquer dúvidas, estou a disposição.

     

     

    quinta-feira, 24 de junho de 2010 12:44

Todas as Respostas

  • Pessoal, alguém pode me ajudar?

     

    []`s.

    segunda-feira, 21 de junho de 2010 01:07
  • Marcos,

     

    geralmente, as tabelas fato contêm chaves estrangeiras (FK) para as tabelas dimensão. Se a tabela fato contém chaves que não existem nas respectivas dimensões, ou o contrário, a tabela fato tem registros onde a coluna de FK é nula o ideal mesmo é que você normalize isso em um pré-processamento, criando os registros de maneira a padronizar a sua base.

     

    Se não for possível realizar este pré-processamento, se a tabela fato contiver registros que não existem na tabela dimensão, você terá que operar no tratamento de erros de processamento (vc pode fazer isso no Cubo > Dimension Usage > clicando nos grupos de medida acima na tela ou na configuração de processamento aceitando processamento de dimensões com problemas de 'key not found'). Se o problema for o inverso, a tabela fato possui nulos, então não há problema, e será apenas criado um membro de dimensão 'em branco'.

     

    E, de um modo bem simplista, fatos e dimensões trabalham como inner joins. Ou seja, se faltar chaves de um ou outro lado, o problema já começa a aparecer e os erros de cálculo também. Portanto, o melhor mesmo é padronizar os dados da base antes do processamento.

     

    Quaisquer dúvidas, estou a disposição.

     

     

    quinta-feira, 24 de junho de 2010 12:44
  • Coragem,

    O segredo esta na forma que a estrutura do banco de dados foi montado, respeitando as regras de normalização e integridade referencial. Desta forma fica mais fácil tentar fazer a implementação de um ambiente dw utilizando dos dados na geração do Cubo.

    Estou correto?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    sexta-feira, 25 de junho de 2010 17:39
  • É verdade. Com o DW configurado corretamente, o SSAS consegue realizar quase toda a estruturação OLAP de forma atuomática.

     

     

    Abs.

    sexta-feira, 25 de junho de 2010 18:57
  • Valeu mesmo Coragem!

     

    Fiz o processamento aceitando problemas de 'key not found" como vc falou e funcionou.

     

    Obrigado pela ajuda.

     

    []'s

    Marcos.

    terça-feira, 29 de junho de 2010 00:55