Data Warehouse – Tipos de Métricas

Tudo que a empresa for mensurar é uma métrica. Na maioria das vezes, a métrica vai ser o que o usuário quer medir.

Pode ser também chamada de quantificador ou medida. Se você tiver alguma dúvida sobre o que é uma métrica, aconselho primeiro ler o post sobre Star Schema, onde explico o que é métrica e qual o papel dela na modelagem.

Existem 4 tipos de métricas:

  • Aditivas
  • Derivadas
  • Semi-aditivas
  • Não-aditivas

E para que serve isso?

Para você saber que tipo de cálculos e cruzamentos pode fazer com cada uma delas. Por mais que todas as métricas sejam numéricas, elas tem significados e interpretações diferentes, e é para identificar isso que servem os tipos.

Mas vamos para cada um deles…

 

Métrica aditiva

São as métricas que permitem operações matemáticas como soma e subtração por todas as dimensões.

Dentro da fato há diversas linhas, e as métricas aditivas devem poder somar todas elas. É obvio, todas podem ser somadas se eu quiser, mas ela precisa fazer sentido.

Um exemplo:

tabela fato

Nessa tabela eu tenho a quantidade da venda, ou seja, a quantidade de coisas que foram vendidas.

E essas são as dimensões nas quais ela conecta:

tabelas dimensões

Olhando a primeira linha da fato, pelas chaves você pode ver nas dimensões que aquele 200 é do produto Coca-Cola e da data 10/12/2016.

Nas métricas aditivas, o valor da métrica é representativo em todos os cruzamentos:

Quanto foi vendido no dia 10/12/2016? 200

Quanto foi vendido de Coca-Cola? 200

Nesse caso, se você somar as 3 linhas da fato, vai ter 700. Então se quiser saber quanto foi vendido no total em que há registros, você sabe, foi 700. E se quiser saber quantas Coca-Colas foram vendidas nesse mês, 700 também.

Alguns exemplos de métricas aditivas:

  • Quantidade de vendas
  • Valor da venda (se não for calculado)
  • Quantidade de colaboradores
  • Quantidade de demissões
  • Quantidade de admissões

Todas essas métricas que podem ser somadas independentemente de onde estiverem cruzando. Ela tem que fazer um cruzamento completo e perfeito na linha da fato, então a métrica precisa fazer sentido com cada uma das dimensões sozinhas.

É a métrica mais simples que conhecemos.

 

Métrica derivada

É uma métrica calculada, uma métrica que você calcula para ter um segundo número. Esse cálculo é sempre em cima de métricas que já estão na fato, não no que está no legado.

São métricas que já estavam na fato e que são calculadas, criando uma nova métrica, que chamamos de derivada.

Exemplo de métrica derivada:

Nesse exemplo, a métrica derivada é a multiplicação da quantidade da venda com o preço unitário da dimensão de produto.

Ela pode ser armazenada diretamente na fato ou calculada em tempo de execução nos cubos, que também vou fazer um post explicando o que são.

A diferença básica entre armazenar no Data Warehouse ou deixar para ser calculada em tempo de execução, é o seguinte:

No Data Warehouse quem fará esse cálculo é o time de ETL, ou seja, na hora da integração, se aquela métrica for derivada, já vai ser calculada antes de ser armazenada.

Quando você salva as métricas base, na hora de fazer as análises, o cálculo é feito em tempo de execução.

Qual a diferença na prática?

O cálculo vai utilizar recursos computacionais, de servidores e tudo mais. O cubo vai ter que calcular isso para você. Quando está armazenada no Data Warehouse, esse procedimento já foi realizado.

E qual o melhor?

Não tem resposta certa, porque vai da estratégia de como você quer ver a informação e de como chegar nela.

Por exemplo, eu já peguei casos que estava muito difícil para a ferramenta calcular em tempo de execução, demorava muito porque era um cálculo bem complexo.

O que eu fiz? Fiz o cálculo no ETL. Antes de dar a carga final da fato, peguei a métrica que já tinha sido carregada, que era uma aditiva, fiz o cálculo que tinha que ser feito e inseri de novo, aí ela virou uma métrica derivada e aumentou muito a velocidade das consultas.

Uma coisa é você esperar 5 minutos no ETL e outra coisa é o usuário clicar no relatório e ele levar 5 minutos para abrir. Esse tipo de coisa você não pode deixar acontecer.

Então coloco tudo no Data Warehouse? Não.

Depende da estratégia, por isso que eu explico sempre o conceito, para você saber o que fazer. Nesse caso que eu citei foi muito bom ter colocado no ETL, mas houveram casos que precisei deixar as métricas para serem calculadas direto na ferramenta.

Por quê?

Métricas de negócio. Eram diversas, e tudo com base em métricas aditivas da fato venda. Na fato, eu tinha quantidade de vendas, valor da venda, e acabou por aí.

As métricas derivadas que o negócio demandava eram mais de 30, então deixei que elas fossem calculadas na ferramenta, porque a forma como o cliente queria analisar mudava, uma hora ele queria analisar por tempo, outra hora por produto e outra por vendedor.

Quando você chumba uma métrica no Data Warehouse, precisa entender que também está chumbando aquele cruzamento. Quando precisar de um novo valor em cima daquela métrica para um novo cruzamento, vai ter que recalcular toda a fato no ETL.

Então quando são projetos muito complexos, a gente opta sempre por deixar as métricas derivadas para as ferramentas do BI fazer.

Uma coisa muito importante que sempre faz a gente optar por colocar as métricas derivadas na ferramenta de BI é que quando todas as métricas estão disponíveis limpinhas lá no cubo, o usuário de negócio pode fazer um self-service BI e o gráfico em que ele está trabalhando vai se movendo conforme ele faz as análises.

Essa possibilidade de ficar se movendo e mostrar os cálculos que estão acontecendo em tempo real é porque a métrica derivada é calculada nas análises, ou seja, ficam prontas no cubo.

 

Métrica semi-aditiva

Para exemplificar, fiz essa tabela de uma fato com saldo de conta corrente.

métrica semi-aditiva e não-aditiva

Uma visão geral sobre essa fato: temos a dimensão de tempo, de cliente e de agência. Também temos algumas métricas: entrada, saída, saldo e a diferença percentual entre as entradas e saídas.

A entrada é uma métrica aditiva, ela pode somar todas as linhas, aí temos 14.620,00 de entradas. E podemos cruzar esse dado com todas as dimensões. A saída é a mesma coisa, ela pode ser somada e cruzada com todas as dimensões. E a métrica de saldo, que nesse caso é a entrada menos a saída.

Por exemplo:

No dia 1° de março, na conta do Piton, na agência ITAU-SP01, entrou R$1.500,00 e saiu R$300,00, ficando com um saldo de R$1.200,00.

Nesse mesmo dia, na mesma conta, não entrou nada e saiu R$400,00. O saldo ficou R$800,00.

De novo no mesmo dia, saiu mais R$200,00 sem entrar nada, ficando com o saldo de R$600,00.

Nesse mesmo dia também aconteceram transações de outras pessoas. Na conta do Robson, entrou R$2.500,00 e saiu R$700,00, ficando com o saldo de R$1.600,00.

Se somarmos todas as linhas, vamos ter um resultado de 14.420,00, mas isso não faz sentido, porque no mesmo dia, tivemos várias transações em uma mesma conta, e o saldo do Piton não é a soma de todos os valores. Se somarmos 1.200 + 800 + 600, vamos ter 2.400, enquanto o saldo real é 600.

Então o que faz sentido somar? A última movimentação de cada conta naquele dia, aí vou ter 12.420,00.

Resumidamente, o que isso quer dizer? Que métrica semi-aditiva pode ser somada por todas as dimensões exceto a tempo.

Você só vai conseguir somar pela tempo se colocar um filtro que diga que ele só pegue o último registro.

Saldo de estoque e saldo bancário, quando representado de forma monetária, são métricas semi-aditivas bem comuns, porque são aditivas em todas as dimensões, exceto na tempo.

 

Métrica não-aditiva

São métricas tipo percentual, algum cálculo feito em tempo de execução, que não podem ser somadas por nenhuma dimensão. O ideal é salvar as métricas que levam àquela não-aditiva e deixar para que ela seja calculada na ferramenta de BI.

No exemplo lá de cima:

Enquanto no saldo temos a diferença numérica, nessa temos a percentual. E qual a conta? A entrada dividido pela saída.

Que leitura fazemos aqui? A entrada passou 500% da saída. Ou seja, tivemos 500% a mais de entrada que de saída.

E eu posso somar percentuais? Não. Se eu somar as linhas vou ter 4397,14%, e isso não faz sentido, é 4397,14% de quê?

E é por causa dessas somas e cruzamentos que você pode ou não fazer que é importante entender cada um dos tipos, saber diferenciar eles e principalmente, como usar.

Pegando o exemplo do saldo, é uma métrica muito fácil de ser erroneamente tratada como uma aditiva, o que vai alterar os resultados e afetar a tomada de decisão.

 

Ah, e se quiser que eu te avise dos novos posts conforme eles forem saindo, é só deixar seu e-mail abaixo!

 

 

 

 

Deixe um comentário 🙂

Leia também: