Resposta Proposta Como carregar uma Tabela de Factos?

  • quinta-feira, 5 de janeiro de 2012 15:50
     
     

    Qual a melhor forma de carregar uma tabela de factos?

    Deve-se primeiro criar as dimensões, e depois relacionar com a tabela de factos as chaves?

     

Todas as Respostas

  • quinta-feira, 5 de janeiro de 2012 17:00
     
     

    Amigo,

    O que vc precisa é popular a tabela fato? de acordo com seus dados transacionais ?

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
  • quinta-feira, 5 de janeiro de 2012 21:21
     
     
    sim é
  • sexta-feira, 6 de janeiro de 2012 15:48
     
     

    A melhor maneira é modelar seu DW primeiro, e no banco onde ficarão as Dimensões e os Fatos, vc desenha já criando as chaves.

     

    Depois, no SSIS, vc importa/carrega primeiro as Dimensões e depois os Fatos, para não dar erro de chave estrangeira.

     

    Abraços.


    Carlos Eduardo B Martins Junior
    e-mail: kdu.bmartins@gmail.com
    skype: cmartins.othink
  • sábado, 7 de janeiro de 2012 03:03
     
     

    E como faço essa associação entre os a tabela de de factos e dimensões? a chave das dimensões deve ser um inteiro? IDENTITY (1,1) que gera sempre um chave com um novo registo?

     

  • sábado, 7 de janeiro de 2012 17:16
    Moderador
     
     

    TheAkaBroken,

    Então a tabela Fatos será o repositório para os seus dados as dimensões são porções e pequenas estruturas que contemplam algumas partes de dados, neste caso, as dimensões devem respeitar a mesma estrutura e valores existentes na tabela fato para que possa existir o relacionamento entre estes elementos.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
  • segunda-feira, 9 de janeiro de 2012 11:08
     
     

    Amigo, bom dia.

    Veja se as dimensões já possuem ID´s únicos. Aí vc utiliza os próprios códigos nativos , mas se desejar utilizar um campo auto-incremental (identiy) pode utilizar sem problemas.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
  • segunda-feira, 9 de janeiro de 2012 11:24
     
     

    Tente pensar sempre que as dimensões são os seus dados "catalogáveis", ou seja, que tem um escopo permitido, normalmente são atributos relacionados a tempo, espaço, tipo, características. 

    Já os fatos, são os valores propriamente ditos, aquilo que você deseja mensurar.

    Dessa forma, a tabela de fatos deve conter os campos que tem relacionamento com as dimensões e os campos dos fatos, valores, mensuras.

     

    Abraços.


    Carlos Eduardo B Martins Junior
    e-mail: kdu.bmartins@gmail.com
    skype: cmartins.othink
  • segunda-feira, 9 de janeiro de 2012 12:23
    Moderador
     
     Resposta Proposta

    Bom Dia,

    Normalmente carrega-se as dimensões primeiro e depois a tabela fato, pois, como a tabela fato relaciona-se com as dimensões, é requerido que as dimensões existam antes para evitar problemas de relacionamento. Entretanto, dependendo da sua estratégia de ETL é possível e aceitável que você opte por carregar a tabela fato primeiro (especialmente em áreas de Staging), mas não é a situação mais comum.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
  • segunda-feira, 9 de janeiro de 2012 16:32
     
     

    exatamente, é isso queeu pretendo..POis normalmente os ID nativos, são numeric ou char (40), por exemplo...e muitas das vezes são stamps (ex DER345739857929827373247PU)...etc...Assim eu pretendo um id auto incrementado.....

     

    A minha tabela de factos, é portanto,um join de duas tabelas, e nessas tabelas ja têm o IDnativos das dimensões...mas ai eu quero substituir comparando o nativo, com o da dimensão, e ai inserir na tabela de factos o id criado.

     

    correto?

  • segunda-feira, 9 de janeiro de 2012 16:37
     
     

    Amigo, se optar em utilizar os ID´s auto-incrementais, vc não precisa popular seu ID nativo na tabela FATO. Basta vc utilizar o ID´s auto-incremental nas chaves. Preserve o ID nativo em sua dimensão para consultas posteriores.

     

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
  • terça-feira, 10 de janeiro de 2012 18:49
     
     

    Ola, como se faz para carregar, para a tabela de factos, um ID, que neste caso é o degeneration dimension, pois é o numero de encomenda.

    No meu modelo fisico do DW,na tabela de factos - está como chave primaria da, ...as restantes, as dimensões, são FK.

     

    Agora eu vou mapear, fazendo um merge join com as encomendas e as linhas de encomenda, e guarda o numero da encomenda nesse ID, mas acontece que pelo facto de as linhas serem mais do que uma, ele não deixa inserir porque vai repetir a chave, em mais do que um registo nos factos...deu para perceber?

     

    Como é que eu posso fazer isso? como resolvo? e como posso fazer no SSIS? alguem me sabe ajudar?

  • segunda-feira, 1 de abril de 2013 23:55
     
     

    Você já tentou fazer o contrario ?

    deixando suas dimensões com PK e a sua fato como FK ?