Criando Dimensões a Partir da Fato

Leonardo Karpinski

Leonardo Karpinski

Mestre do Power BI, criador do Curso Express de Power BI e Curso Completo de Power BI. Formou mais de 16 mil alunos nos últimos anos e participou de projetos em grandes empresas nacionais e multinacionais.

Assunto hoje é modelagem de dados, vou mostrar como criar dimensões a partir da tabela fato.

Entenda melhor o conceito de dimensão e fato:

  • As dimensões definem uma entidade de negócio, ou seja, possuem o cadastro ou descrição do fato, são sempre identificadas por um código único, geralmente possuem muitas colunas e poucas linhas, e são utilizadas para filtrar valores da tabela fato. Exemplo: Produto, Cliente, Fornecedor, Conta Bancária, Máquinas, Centro de Custo, Calendário, etc.
  • As tabelas fatos são as que possuem movimentações e eventos históricos, estão atreladas a uma data, e é composta das chaves das dimensões e valores quantitativos, além disso, possuem poucas colunas e muitas linhas, exemplo, vendas, títulos pagos, movimentações bancárias, ordens de produção, entregas, estoques, pedidos, chamados.

Regras básicas de modelagem:

  • Sempre tente utilizar o esquema estrela, ou seja, dimensão ligadas a fatos
  • Nunca relacione duas tabelas fatos entre si diretamente.

Os dados que serão utilizados neste artigo, são compostos de 03 tabelas, frete, despesas e região.

Transformação do Tabelão

Começaremos importando a tabela de fretes, e para esta análise inicial não é necessária nenhuma transformação, apenas importe e clique em fechar e aplicar.

Para descobrir quais são as dimensões de um tabelão, analise se a informação varia ao longo do tempo ou não.

Por exemplo, Região Cliente:

Figura 01 – Analisando a tabela

Veja que há um único valor de região para cada cliente, isso leva a crer que a região do cliente é uma característica que deve estar presente na tabela de cliente.

Da mesma forma, ao analisar o “idResponsavel”, nota-se que ele não é um atributo da tabela de cliente, pois existe mais de um “idResponsável” por cliente.

Figura 02 – Analise cliente e região

Dica: a comparação deve ser feita sempre id com id.

Feita a análise prévia, pode-se então começar a criar as tabelas, primeiro, desabilite a carga do tabelão, e em seguida, a partir dela crie as referências que irão armazenar as novas tabelas.

Figura 03 – Desabilitando a carga

Crie 04 referências, conforme a imagem da figura 04, cada referência irá armazenar uma nova tabela.

Figura 04 – Criando referências

Na primeira referência, nomeie como “dCliente”, e em Página Inicial > Escolher Colunas, marque as colunas relativas aos atributos do cliente, conforme destacado abaixo.

Figura 05 – Colunas dCliente

Agora selecionando a coluna “idCliente”, coluna que identifica os clientes, clique com o botão direto do mouse e escolha a opção de remover duplicatas.

Figura 06 – Removendo duplicatas

Faça os mesmos procedimentos para as tabelas, “dResponsvel”, “dVeiculos”.

As tabelas dVeiculos e dResponsável devem conter respectivamente as colunas marcadas abaixo.

Figura 07 – Colunas dVeiculos
Figura 08 – Colunas dResponsavel

Lembrando: Esse procedimento de criar dimensões através da tabela fato, sempre é realizado quando não é possível o acesso ao banco, ou quando não é possível obter as dimensões de outra forma, como extração do ERP, por exemplo.

Agora na última referência, renomeie como “fFrete”, em seguida escolha as colunas destacadas abaixo e as colunas “valorfrete”, “ValorMercadoriaCD1”, “ValorMercadoriaCD2”, “ValorMercadoriaCD3”.

Figura 09 – Colunas fFrete

Selecionando as colunas “ValorMercadoriaCD1”, “ValorMercadoriaCD2”, “ValorMercadoriaCD3”, vá em Adicionar Coluna > Padrão > Adicionar, isso irá criar uma coluna com a soma desses valores. Renomeie a coluna de soma como “ValorTotalMercadoria”.

Figura 10 – Somar valores

Agora selecione novamente as colunas de “ValorMercadoriaCD1”, “ValorMercadoriaCD2”, “ValorMercadoriaCD3” e acionando o botão direito do mouse, escolha a opção transformar colunas em linhas.

Figura 11 – Transformar colunas em linhas

Renomeie a coluna atributo como “CentroDistribuicao” e a coluna de valores como “ValorMercadoria”.

Selecione a coluna “CentroDistribuicao” e em Tansformar > Extrair > Texto após o delimitador, para manter nessa coluna apenas o nome do CD.

Figura 12 – Texto após delimitador

Na guia Adicionar Colunas > Coluna Personalizada, faça a conta destacada abaixo:

([ValorMercadoria] * [ValorFrete]) / [ValorTotalMercadoria]

Figura 13 – Rateio do frete

Renomeie a nova coluna como “ValorFreteCD”.

Remova as colunas “ValorFrete”, “ValorTotalMercadoria”, “idFrete”, “NotaFiscal”.

Desnormalizando a Tabela Região

Importe a tabela de região para poder desnormalizá-la para as tabelas dCliente e dResponsavel.

Selecione a tabela dCliente, clique em Página Inicial > Combinar > Mesclar Consultas, e configure conforme mostrado abaixo.

Figura 14 – Mesclagem dCliente e dRegiao

Na nova coluna criada, clique nas setas destacadas na imagem abaixo e selecione a região, nomeie a coluna expandida como “RegiaoCliente”.

Figura 15 – Expandindo coluna

Repita o processo com a tabela “dResponsavel”, em seguida desabilite a carga da tabela “dRegiao”.

Importando a Tabela de Despesas

Importe a tabela Resultado e renomeie com “fDespesas”, em seguida, selecionando as colunas ano e mês clique no botão direito do mouse, escolha opção mesclar colunas, altere o tipo da nova coluna criada para data.

Figura 16 – Mesclando colunas

Em “Escolher Colunas”, mantenha apenas as colunas marcadas abaixo.

Figura 17 – Colunas tabela despesas

A modelagem está quase pronta, pode clicar em fechar e aplicar.

Criando a dCalendario

Para este caso, vá em página inicial > Nova tabela> dCalendario = CALENDARAUTO()

Isso irá gerar uma lista de datas.

Figura 18 – Lista de Datas

Após criar a dCalendario, faça os relacionamentos conforme mostrado abaixo.

Figura 19 – Relacionamentos

Criando Alguns Cálculos

Alguns cálculos para finalizar nossa modelagem.

Despesas =
SUM ( fDespesas[DespesasTotal] )

Faturamento =
SUM ( fFretes[ValorFreteCD] )

Resultado =
[Faturamento] – [Despesas]


Resultado % =
DIVIDE ( [Resultado]; [Faturamento] )

Total Mercadoria =
SUM ( fFretes[ValorMercadoria] )

Pronto, finalizamos o nosso modelo.

Figura 20 – Visual Final

Espero que tenha gostado. Até a próxima!

PS: Para não perder o conteúdo completo da próxima live , entre no nosso canal do Telegram! Aviso tudo por lá!

Abraços,
Leonardo.

Compartilhe este post:
Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no pinterest