none
Dimensão Tempo no SSAS 2005 RRS feed

  • Pergunta

  • olá,

    Estou com dificuldade de criar uma dimensão tempo no SSAS 2005. Vou explicar como criei essa dimensão no Analisys Service 2000, para que alguém me ajude a fazer no 2005.
    A dimensão tempo, no 2000, foi criada da seguinte forma: escolhi o modelo star-schema depois escolhi a minha tabela fato com tabela daquela dimensão, em seguida marco como Time Dimension e escolho a coluna LOG_HORA da minha tabela fato. Em seguida escolho o level time (Ano, mês, dia, hora, minuto) e finalmente o nome da dimensão. E funcionou perfeitamente.

    Tentei fazer no SSAS 2005 e não consegui. Se alguem puder me ajudar, ficarei bastante agradecido.

    Atenciosamente,
    terça-feira, 28 de agosto de 2007 00:40

Respostas

Todas as Respostas

  • Nayron,

    esse post tem informação de criação de dimensão de tempo.

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=1955569&SiteID=21

     

    Retorne se tiver duvidas mais especificas.

    Abraço

    terça-feira, 28 de agosto de 2007 12:46
  • Ae Lucas,

    sim sim.. inclusive eu já tinha visto esse post ai. Achei que essa forma de fazer desse outro post fosse diferente da minha. Porque nela é criada uma tabela em separado pra representar a dimensão tempo. enquanto no 2000 eu utilizo apenas um campo da minha tabela fato.. entende???
    Não tentei ainda usar a forma do outro post pq gostaria de tentar resolver "da mesma" maneira que no 2000.

    vlw...
    terça-feira, 28 de agosto de 2007 14:07
  • Entendi...

    meus modelos no SSAS 2000 também estão com datas na tabela fato.

    Bom, sugiro que vc já inicie sua migração nesse novo modelo... você terá ganhos de performance.

     

    Abraço

    terça-feira, 28 de agosto de 2007 14:57
  • Valeu Lucas,
    Vou começar então a fazer dessa forma.
    Mas só pra esclarecer uma pequena dúvida que me restou. Então no SSAS 2005 não tem como fazer daquela forma feita no SSAS 2000, com a dimensão feita utilizando apenas uma coluna de data na tabela fato??

    Abraço
    quarta-feira, 29 de agosto de 2007 12:48
  • Até dá pra fazer... mas para o SSAS 2005 isso é uma péssima arquitetura.

    Use como base o banco AventureWorksDW que vem de exemplo com a instalação do SQL Server 2005.

    É um bom exemplo de estruturação.

    Abraço
    quarta-feira, 29 de agosto de 2007 12:57
  • Ae Lucas,

    Tenho a versão Developer Edition instalada, e não tem esse banco de exemplo. Esse banco vem em qual versão???

    muito obrigado e foi mal pelo abuso.. heheh
    quarta-feira, 29 de agosto de 2007 16:38
  • A versão developer tem todas as funcionalidades da versão Enterprise que é a TOP.

     

    Para instalar, execute a instalação do SQL Server 2005 em:

    Painel de Controles >> Adicionar ou Remover programas >> SQL Server 2005 (botão "Alterar" ou "Change")

     

    Na instalação, onde vc escolhe o que vc quer instalar, clique no botão "Advanced" e selecione a ultima opção que são Exemplos de código, databases, etc.

     

    Abraço

    quarta-feira, 29 de agosto de 2007 18:04
  •  

    Olá Lucas, bom se tem alguma forma no SQL 2005 de fazer star-schema como no SQL 2000 gostaria de saber, mesmo que seja uma pessima arquitetura !!!

     

    Vamos eu entendi a filosofia quanto a preferencia em seguir o Template da arquitetura do SQL 2005, quanto a dimensão tempo.Mas ai lanço outra duvida: Como devo preencher tal tabela e qual seria a melhor modelagem para tanto ?

     

    Supondo que temos um CUBO que possui duas datas a de alteração e de inclusão, sendo que tais registros em relação a alteração pode ser (01 para muitos). Qual o melhor caminho ?

     

    Melhor, termos uma dimensão montada com todas as datas de alteração e respectivo ID, relacionada com algum ID na Fato ( ID_DATA ), ou é melhor seguir o racicinio de pôr a data de alteração diretamente na FATO e relacionar com uma dimensão tempo ?

     

    Volto a comentar que, no SQL 2000, este procedimento era interiramente transparente, apenas diziamos que tal dimensão (X ou Y) era de TEMPO e pronto lá estava (Ano, Quarter, Mes e etc) tudo bonitinho, e olhe que a dimensão origem só precisa de um ID e a DATA nada mais para o SQL 2000 distrinchar.

     

    Mesmo que não seja uma boa pratica no SQL 2005, gostaria de saber como fazer isso automaticamente no 2005, você pode me instruir ?

     

    Willy


     

    segunda-feira, 8 de setembro de 2008 18:25
  • Fala Willy,

     

    vc viu um dos posts anteriores eu expliquei para o nayron como construir a dimensão de tempo:

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=1955569&SiteID=21

     

    Lá tá bem explicado... tente fazer igual e me avise se tiver dúvidas...

    Vou gravar um video essa noite para a microsoft explicando como criar dimensão de tempo no SQL Server 2008... é bem semelhante ao SQL 2005.

     

    Se eu esquecer de postar o link aqui me cobre na semana que vem que aí eu te envio.

     

    Olhá a arquitetura do SQL Server 2000 era bem fácil de utilizar, mas não era a melhor forma, vc tinha muita redundancia de informação. Nunca coloque informação de dimensão dentro da tabela fato.

     

    Depois te envio o link

    Abraço

    terça-feira, 9 de setembro de 2008 00:26
  • Sim Lucas, obrigado sua dica foi de grande valia. Meus CUBOS estão funcionando perfeitamente agora.

     

    Todavia, agora, estou com um probleminha, me parece ser bem simples de se resolver, mas não estou encontrando a solução facilmente, já "bati" muito atrás desta resposta, no entanto, sem exito. Minhas dimensões de tempo, estão no formato "Literal" por exemplo: Year -> Calendar 2005 -> Quarter 2, 2005 -> April 2005 e por ai vai.

     

    Minha necessidade é que estas dimensões fiquem como estava no meu CUBO anterior no SQL 2000... o Ano ficaria "2005", apenas numeral, sem a palavra "Calendar"... o "Quarter 2" ao invés de "Quarter 2, 2005"... e finalmente quanto ao dia, não preciso que seja mostrado o dia da semana literal mais o numero... gostaria que apenas o numero correspondente, ao dia do mês, fosse apresentado.

     

    Alguem saberia como fazer isso facilmente ? Agradeço a atenção e fico no aguardo.

     

    Willy

    quarta-feira, 8 de outubro de 2008 18:31
  • Fala Willy,

     

     

    pelo que você está falando, existem duas situações aí.

     

     

    No caso de Quarter 2, 2005 é porquê você está acessando o membro Quarter by Year. Isso faz com que ele discretize de qual ano é o trimestre. Use o membro Quarter apenas para que não apareça o 2005 no fim. Assim ele vai pegar os trimestres de todos os anos.

     

    Agora se o problema é em relação à palavra Quarter aparecer ali, então aproveito para reforçar sua dúvida. Alguém sabe como faz?

     

     

     

     

    Abraço,

    Coragem

    quinta-feira, 4 de dezembro de 2008 16:35
  • Bom pessoal,

     

    Solucionei os meus problemas quanto a dimensão tempo no SSAS 2005... acredito que a solução que optei, certamente não foi daquelas dignas de "se fazer um quadro para pendurar na parede"... realmente achei uma solução um tanto "bruta"... mas foi a unica solução que encontrei depois de muito rodar.

     

    Criei uma dimensão de tempo "fisica" via SSAS... aquela forma bastante discutida que à aplicação cria uma esquema e preenche uma tabela de tempo "bonitinha" na base de dados (Explicado no capitulo 3 do livro da Microsoft "SQL Server 2005 Analysis Services - Step by Step - Edição 2005").

     

    Bom, após criada esta dimensão de tempo, realizei os UPDATES justamente nos campos que forçavam a nomenclatura que eu não desejava (Quarter 1, 2005) e por ai vai.

     

    Sinceramente, está rodando perfeitamente da forma que estava na versão 2000. Como trata-se apenas de "Strings" na base de dados, não houve nenhum impacto, pelo menos, até agora.

     

    Espero ter ajudado e agradeço ao pessoal pela mobilização... se alguem souber uma solução diferente, gostariamos de saber.

     

     

     

    terça-feira, 30 de dezembro de 2008 16:39
  • Willy,

     

     

    esta com certeza foi a solução mais elegante encontrada. Só resta a própria Microsoft nos dar a solução mais elegante ainda que seria gerar o Server Time Dimension no idioma que precisamos.

     

    Estou tentando entrar em contato com eles para ver se obtenho alguma resposta quanto a isso.

     

     

     

     

    Obrigado pela dica!

     

    Coragem

     

    terça-feira, 30 de dezembro de 2008 16:58
  • Coragem,

     

    Você esta tentando entrar em contato com quem na Microsoft?

    terça-feira, 30 de dezembro de 2008 22:25
  • Junior,

     

    na verdade não tem ninguém específico. Estou sendo redirecionado pela equipe da MS EUA para a equipe MS Brasil. Não sei se este procedimento adiantaria mas...

     

    Você é da MS?

     

     

    Atenciosamente,

    Coragem

    quarta-feira, 31 de dezembro de 2008 10:58
  • Toda sugestão que vc tiver vc pode postar no site microsoft connect:

     

    http://connect.microsoft.com/

     

    Eles vão analisar a solução... se for boa eles entram em contato com você... ok?

     

    Ps.: tem que ser em inglês. Se precisar de ajuda conte conosco.

    Abraço

    quarta-feira, 31 de dezembro de 2008 16:20