none
Time Dimension - Analysis Services 2005 RRS feed

  • Pergunta

  • Galera, estou criando uma dimensão do tipo Time, essa dimensão é baseada em uma tabela onde tenho uma key, e o campo dimTime, no analysis services 2000 eu conseguia criar uma hierarquia baseado na coluna dimTime, e conseguia especificar niveis como Ano, Mes e Dia do tipo:
    convert(CHAR, DateName(month,"dbo"."DtEmissaoNF_FT"."dimDtEmissaoNota")).

    Gostaria de saber como criar hierarquias como essa no SSAS 2005.

    Valeu
    segunda-feira, 1 de dezembro de 2008 18:14

Respostas

  • E ae Erick,
        nesse caso você deve criar uma coluna na sua tabela de Tempo para cada nivel de tmpoq ue você irá utilizar. Por exemplo: dbo.DimTime terá as colunas IdTime(key); Data(datetime); Ano(int); Semestre(int); Trimestre(int); Mes(int);Dia(int).
    Oberserve que, no exemplo, os campos Ano, Semestre, Trimestre, Mes e Dia, você vai carregar baseado no campo Data, usando um DATEPART.
    Feito isso, quando você estiver no SSAS 2005, quando você especificar que aquela é a sua dimensão tempo você poderá vincular cada coluna dessa com seu respectivo nivel de tempo (por exemplo: Ano - Year, Semestre - HalfYear, Trimestre - Quarter, Mes - Months, Dia - DayOfMonth, Hora - hour).


    Espero ter ajudado..

    Atenciosamente,
    terça-feira, 2 de dezembro de 2008 15:18

Todas as Respostas

  • Erick,

     

    Qual ferramenta você esta utilizando?

    segunda-feira, 1 de dezembro de 2008 19:04
  • analysis services 2005
    segunda-feira, 1 de dezembro de 2008 20:00
  • E ae Erick,
        nesse caso você deve criar uma coluna na sua tabela de Tempo para cada nivel de tmpoq ue você irá utilizar. Por exemplo: dbo.DimTime terá as colunas IdTime(key); Data(datetime); Ano(int); Semestre(int); Trimestre(int); Mes(int);Dia(int).
    Oberserve que, no exemplo, os campos Ano, Semestre, Trimestre, Mes e Dia, você vai carregar baseado no campo Data, usando um DATEPART.
    Feito isso, quando você estiver no SSAS 2005, quando você especificar que aquela é a sua dimensão tempo você poderá vincular cada coluna dessa com seu respectivo nivel de tempo (por exemplo: Ano - Year, Semestre - HalfYear, Trimestre - Quarter, Mes - Months, Dia - DayOfMonth, Hora - hour).


    Espero ter ajudado..

    Atenciosamente,
    terça-feira, 2 de dezembro de 2008 15:18
  • entendi, mas tipo no ssas 2000 eu podia criar niveis baseados em um campo datetime e nos niveis criar uma hierarquia usando datepart, isso eu naum posso fazer no ssas 2005 naum? tipo tenho q criar o campo mes, ano, semestre na tabela de tempo fisicamente?
    terça-feira, 2 de dezembro de 2008 19:07
  • Exatamente. Você vai criar esses campos fisicamente na tabela. Existe realmente essa diferença do 2000 para o 2005. Você vai poder criar uma (ou mais) hierarquias para sua dimensão de tempo no 2005, simplesmente arrastando os níveis desejados para sua hierarquia. No momento que você cria sua dimensão tempo, ele automaticamente já vai criar uma hierarquia de tempo baseada nos níveis que existem em sua tabela. Caso você necessite de outras hierarquias ou mesmo modificar a que o SSAS cria automaticamente, você consegue fazer isso com facilidade no Dimension Design.


    Atenciosamente,
    terça-feira, 2 de dezembro de 2008 19:26
  • conseguiu, Erick?
    Favor lembrar de qualificar a resposta.


    Abraço,

    quarta-feira, 3 de dezembro de 2008 17:47
  •  

    Fiz o Teste agora e ficou blz, a unica diferenca é ter q criar esse campos adicionais q no SSAS 2000 nao precisava mas ficou blz
    quarta-feira, 3 de dezembro de 2008 18:13
  • Você não precisa criar os campos fisicamente na tabela, você pode utilizar Named Calculation...
    Eu escrevi no meu blog sobre isso... mas me parece que o Live está fora do ar.. de qq forma segue o link...

    Exibir artigo...

    Segue tbm o texto, do post...

    Named Calculation são colunas calculadas que você pode criar no seu DataSource View sem que você tenha que alterar a estrutura de suas tabelas, ou seja, não precisa gastar tempo para popular e espaço para armazenar os dados sendo que você pode criar uma Named Calculation que irá retornar o valor que você deseja.

    No meu exemplo acima, optei por ao invés de ter que calcular e gravar os dados de Ano, Mês e Dia em uma tabela e depois ler estes valores, achei melhor criar 3 novas Named Calculation direto no AS, segue um print das telas para ficar mais claro.

    Depois de clicar no OK a coluna ficará disponível como todas as outras mas com um ícone diferente.


    quarta-feira, 3 de dezembro de 2008 18:37
  • e ae Fabiano,
       realmente pode ser usado o Named Calculation, baseado no campo de data, mas não acredito que essa seja a melhor abordagem porque dessa forma, apesar de economizar espaço no disco, é provavel que fiquei mais lento já que os named calculations são calculados durante a consulta. Enquanto se estiver físicamente só será calculado uma vez (durante a carga).
       Fica por conta do desenvolvedor ver qual é a melhor opção para a solução dele. No meu caso acho que não seria vantajoso. Eu utilizo named calculations na minha dimensão de tempo, mas não para todos os níveis. Os níveis básicos eu tenho físicamente nas tabelas, outras coisa como nome do mês, ou descrição do semestre("1° semestre de 2008") e outros, eu utilizo Named Calculations.


    Abraço,
    quarta-feira, 3 de dezembro de 2008 18:52