Pular para o conteúdo
Lucas Lessa
Voltar para projetos

Estudo de caso · Analytics & BI · Finanças

Migração de cálculos acumulados do Power BI para SQL

Refatoração e otimização de cálculos acumulados de 3, 6 e 12 meses, migrando medidas DAX complexas para a camada SQL. A solução contemplou os cenários Realizado, Radar e Orçado, mantendo a seleção dinâmica de períodos no Power BI, simplificando as medidas e facilitando a manutenção das regras de negócio.

O relatório contava com um botão de seleção dinâmica que permitia alternar entre os períodos de 3, 6 e 12 meses, o que resultava em diversas medidas DAX complexas, com cálculos condicionais, manipulação de contexto de filtros e lógica temporal, aumentando a dificuldade de manutenção e o processamento necessário no Power BI.

  • Power BI
  • DAX
  • SQL
  • Data Modeling

Solução desenvolvida

A abordagem adotada foi transferir a lógica dos cálculos acumulados do Power BI para a camada SQL, mantendo no relatório apenas as medidas necessárias para consumir e apresentar os resultados. O trabalho envolveu três frentes principais:

  • Reestruturação da camada SQL

    Implementação das regras de acumulação para os períodos de 3, 6 e 12 meses, considerando os cenários Realizado, Radar e Orçado. A lógica passou a ser calculada previamente na camada de dados.

  • Preservação da análise dinâmica

    O botão de seleção de período foi mantido, mas agora como um filtro de uma coluna nativa da tabela. A escolha de 3, 6 ou 12 meses continuou determinando qual acumulado seria apresentado.

  • Simplificação das medidas DAX

    Com os valores acumulados calculados no SQL, as medidas do Power BI deixaram de concentrar toda a lógica temporal e passaram a consumir os resultados preparados na origem.

Desafios técnicos

A refatoração exigiu preservar a semântica dos cálculos, e não apenas reproduzir somatórios no SQL.

  • Janelas temporais

    Garantir que os acumulados de 3, 6 e 12 meses respeitassem os períodos de referência.

  • Múltiplos cenários

    Manter a consistência entre Realizado, Radar e Orçado, sem misturar suas regras.

  • Contexto de negócio

    Preservar a granularidade e os filtros relevantes, como período e centro de resultado.

  • Consistência entre camadas

    Validar os valores produzidos pelo SQL contra os resultados das medidas DAX originais.