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.