Slowly Changing Dimensions (SCD): Quando os dados mudam, o modelo acompanha?
Se você já teve que responder perguntas do tipo “qual era o cargo do João em 2022?” ou “onde esse cliente estava localizado quando fez aquela compra?”, então você está na situação perfeita pra entender por que manter o histórico de dimensões é fundamental.
INGESTÃO DE DADOSFABRICSCD
Henrique Bueno
7/1/20252 min read


O que é uma dimensão que muda devagar?
No mundo dos dados, a gente chama de “dimensão” qualquer tabela que descreva entidades — como clientes, produtos, funcionários. O problema é que essas informações mudam com o tempo, e a gente precisa decidir o que fazer quando isso acontece.
Exemplo clássico: um funcionário muda de cargo. Você sobrescreve o valor na tabela? Cria um novo registro? Guarda o valor antigo?
É aí que entram os tipos de SCD, cada um com uma estratégia diferente pra lidar com mudanças nos dados.
Os Tipos de SCD e quando usar cada um
Se você quer rastrear quem era o gerente da loja na época da venda, você vai precisar do Type 2.
Como implementar SCD com ferramentas Microsoft
Power BI + Microsoft Fabric
No Power Query ou Dataflow Gen2, dá pra montar uma lógica de SCD Type 1 ou 2 facilmente. A própria Microsoft traz um guia super completo:
Para SCD Type 1: basta fazer um merge entre os dados atuais e os antigos, comparar as colunas e atualizar quando houver mudança.
Para SCD Type 2: você cria colunas de controle (ValidFrom, ValidTo, IsCurrent) e insere um novo registro sempre que houver alteração.
SSIS (SQL Server Integration Services)
Se você ainda está no mundo on-premises ou usa Azure Data Factory com pipelines semelhantes, o componente Slowly Changing Dimension Transformation do SSIS é um clássico.
Ele já traz suporte a Type 1 e Type 2 nativamente e permite configurar os atributos que vão manter histórico, os que são fixos e os que só devem ser atualizados.
Hands-on: Implementando Type 2 no Power Query
Aqui vai um passo a passo prático para montar uma lógica de SCD Type 2:
Carregue sua dimensão antiga e os dados novos.
Crie uma chave de comparação (ex: código do cliente).
Identifique quais registros mudaram (comparando colunas relevantes).
Para os que mudaram:
Atualize o registro antigo (IsCurrent = false, ValidTo = hoje - 1).
Insira um novo registro (IsCurrent = true, ValidFrom = hoje, ValidTo = 9999-12-31).
Combine tudo em uma nova tabela de dimensão.
Essa abordagem te dá controle total sobre o histórico e é 100% compatível com modelagem em estrela no Power BI.
Dicas que eu aplico nos projetos
Sempre tenha uma chave natural bem definida. Nada de depender só de surrogate keys.
Evite Type 2 para colunas que mudam o tempo todo, ou sua tabela vai crescer desnecessariamente.
Se tiver muitas mudanças, pense em usar Type 4 e guardar o histórico em uma tabela separada.
No Fabric, aproveite a automação com pipelines e os Dataflows Gen2 para escalar sua lógica.
Conclusão
Tratar mudanças em dimensões é mais do que uma questão técnica — é sobre manter a confiabilidade das suas análises ao longo do tempo. O SCD te dá as ferramentas pra isso.
Na prática, entender quando e como aplicar cada tipo pode ser o diferencial entre um relatório “bonitinho” e uma análise robusta, que responde às perguntas certas.
E aí, pronto pra aplicar SCD no seu próximo projeto?
O que vem por aí?
No próximo post, eu vou mostrar como montar um fluxo completo de SCD Type 2 usando apenas Dataflows no Microsoft Fabric sem código, só com lógica.
Se quiser ser avisado quando sair, já deixa seu email aqui ou me chama no LinkedIn
Dados
© 2024. All rights reserved.