Olá pessoal! tudo bem?!?

Hoje eu gostaria de dar continuidade na criação do meu projeto pessoal do meu próprio Data Warehouse para um projeto de B.I como forma de portfólio.

CRIANDO A DIMENSÃO

O primeiro ponto que devemos ter em mente quando criamos a dimensão Data é que não precisamos ‘pegar’ a base do modelo relacional como por exemplo acontece ao criar a dimensão produto.

Entenda, não é que seja errado se um determinado projeto quiser buscar na tabela de vendas a coluna “DataPedido”  ou “Orderdate”, o que quero mostrar é que é possível utilizar um modelo pré-pronto, em Excel inclusive, para alimentar a nossa dimensão.

Neste template de datas que criamos no Excel, ele contém todas as medidas de análise para datas, criamos um campo que será a chave surrogada(PK no modelo dimensional) e com isso, temos apenas de carregar essa planilha na nossa dimensão. Inclusive, a criação da tabela pode ser feita ao final do processo de ETL, utilizando a própria ferramenta para criar automaticamente.

Ainda que a ferramenta possibilite a criação da tabela de forma automática no final, não irei utilizar deste recurso. Vamos criar uma espécie de template, que seria um pacote dentro do SSIS, que ao ser executado, cria as dimensões do nosso processo de negócio.

Isso é inclusive uma boa prática pois todas as bases ou todo Data Warehouse que for criado terá um template estruturado e não importa qual, todos terão as dimensões iguais.

TEMPLATE PARA DIMENSÃO DATA

Para este projeto eu não criei um template desde o início com as métricas de datas estabelecidas, peguei um modelo pronto no site do Kimball alterando para criar um range de datas alto. 

A recomendação na criação da dimensão de datas é criar um range bem grande para não precisar de cargas constantes na tabela, facilitando o trabalho e o foco em outros processos.

Aqui está o link para baixar o template e carregar sua dimensão de data que vai até 2015. O interessante é que basta alterar na planilha e realizar novas cargas que o processo está pronto para ser reexecutado. 

CARREGANDO A DIMENSÃO DATA

Com a fonte para dimensão data criada vamos ver como carregar estes dados na nossa tabela dimensão e suas métricas de análise que podem contribuir com a fato.

O primeiro passo dentro do Pentaho para criar a dimensão data, será adicionar o step Microsoft Excel Input e após buscar no disco, o local que o arquivo está armazenado.

Aqui nesta imagem, temos a primeira parte da configuração. Nela, escolhemos o tipo de arquivo de formato excel e o diretório que se encontra.

Quando terminar de configurar, clique em Add.

Agora que adicionamos, precisamos pegar os campos desta planilha para alimentarmos a tabela dimensão data.

Clique na aba fields e após, get fields with header row. Sua transformação deve ficar assim:

Agora, clique em sheets pois devemos pegar a aba que estas colunas se encontram. Clique na opção get sheetname e selecione a primeira aba: date dimension.

Clique me preview rows para garantir que o Pentaho está puxando os dados corretos da planilha.

Como podemos ver, o Pentaho transformou os valores que deveria ser inteiros em numéricos, vamos ter de adicionar o step select values para mudar isso.

Ajuste dos data types no select value.

Não esqueça de criar seu Error Handling, como garantia de captura.

Configure a criação da tabela no table output como fizemos em posts anteriores. Irei deixar um link para baixar o arquivo da configuração dos data type que usei, basta colar quando clicar em SQL.

Na criação da dimensão data, se utilizarem o arquivo, terão de fazer o mapeamento manual. Clique em Enter field mapping.

Após o mapeamento, execute a criação da tabela e rode o ETL.

Essa foi a minha transformação final:

E abaixo, a conferência do resultado:

COMO FUNCIONA A DIMENSÃO DATA?

Recentemente, recebi uma pergunta de uma seguidora e que inclusive foi minha dúvida também, e ela questionava o seguinte?

Como a dimensão data se relaciona com a fato” – Adaptado.

O Primeiro ponto é entender o que na fato há a chave estrangeira da tabela dimensão estabelecendo uma relação entre as duas.

Com a relação estabelecida entre as duas, é possível realizar agregações de uma venda filtrando pelas colunas da dimensão. Como sabemos, a dimensão é utilizada para apoio da fato descrevendo um acontecimento.

Cada dia na tabela dimensão representa uma chave primária, mas que na fato por ser secundária, não há problema em múltiplas ocorrências, já que a relação Dimensão x Fato se torna 1:N (um para muitos). Assim sendo, podemos ter N compras para o dia 01/01/2015.

Veja neste exemplo abaixo utilizando o AdventureWorksDW disponível pela MS a consulta feita na tabela fato de todos os produtos vendidos no sábado.

Como podemos ver, o que deu o ‘sentido’ para minha query, foi realizar uma consulta me baseando em algum atributo que existe na tabela dimensão utilizando apenas as chaves para gerar uma relação entre estas.

E é através das dimensões que surgem as agregações e os filtros que compõem os dashboards gerenciais que costumamos ver ou criar.

Espero que tenham gostado, saúde!!

Baixe aqui os arquivos deste post!