Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dimensão ou Fato?

Estou com uma dúvida na estruturação de um Data Warehouse.

Estou criando um BI no qual eu quero ver a lucratividade da minha empresa e também ver quais campanhas de marketing foram mais eficientes ao longo do tempo.

Eu já tinha criado o data warehouse, já havia começado a fazer os processos de ETL, mas no meio do caminho descobri que há um problema no desenho do DW.

Uma das formas que eu quero ver os dados é quantos resultados um anúncio gerou por idade ou por gênero. Quando construí o Data Warehouse, pensei então que eu deveria colocar Idade e Gênero dentro da dimensão Marketing.

No entanto, descobri que o código do anúncio é o mesmo para diferentes idades e gêneros. Esse código, deveria ser a minha chave primária, mas não seria possível usá-lo como por causa dessa repetição.

Aí fiquei na dúvida, será que que tirar ambos da dimensão e colocá-los na fato?

O que me deixa confuso, é porque Idade e Gênero parece muito ser dimensão, já que tem poucos registros e, também, pelo fato que eu quero ver um indicador "por idade e gênero".

Se eu colocar Idade e Gênero na tabela de fato, parte do meu problema seria resolvido e eu poderia usar o código do anúncio como chave primária, mas eu não conseguiria ver os dados por essas dimensões.

Outra solução que pode dar certo é eu criar um novo código que pudesse ser a chave primária e que você diferente a cada idade. Mas não sei se isso parece ser muita gambiarra.

Alguém poderia me ajudar?

Segue uma imagem com parte da construção do meu DW. Segue também uma planilha com alguns dados.

https://drive.google.com/open?id=1p5sWbz860d_ElVbapOociRqosKC5oH0P

Agradeço desde já a atenção!

2 respostas
solução!

Oi Carlos, tudo bem?

Você pode criar uma Surrogate Key, que é uma coluna com um número criado, sem valor relevante para seu negócio, que pode servir como primary key pois se trata de um índice criado especialmente para isso, não seria uma gambiarra. Inclusive no curso, se você notar a maioria dos códigos são uma surrogate key (Ex: Em Cod_Fabrica temos 001, 002, 003).

Sobre sua dúvida de colocar na fato ou na dimensão, pense o seguinte:

  • Se seu dado for quantitativo (um número como vendas por exemplo) coloque ele na fato como um indicador.
  • Se seu dado for qualitativo, no caso, ele atribui características a seus números (cliente, fábrica, categoria, etc), ele vai precisar ser configurado como uma dimensão, no caso será necessário criar uma tabela dimensão só para ele, e configura-lo como primary key.

Carlos, espero ter te ajudado. Qualquer dúvida que tiver, pode ir falando que vamos conversando, tá bom? Bons estudos :)

Oi Maria Gabriela, tudo bem?

Ainda não conhecia o conceito da Surrogate Key e por isso achei que estava fazendo gambiarras. Criei uma chave primária levando em consideração 3 campos da minha tabela e resolvi essa questão.

Realmente "Idade" e "Gênero" são dados qualitativos e deixei-os na tabela de dimensão.

Você sempre tem me ajudado nos aqui na Alura e em outros fóruns. Muito obrigado por tudo.