Olá galera o/

No post de hoje, iniciaremos uma mini série de postagens sobre os tipos de SCD (Slowly Changing Dimensions) contendo 4 episódios. Daremos um foco nos mais utilizados nos projetos de BI/Big Data que são os tipos 1, 2 e 4 . Neste primeiro episódio ficaremos por dentro dos 7 tipos existentes de SCD.

Sumário

  1. O que é Slowly Changing Dimensions?
  2. Tipos de SCD
  3. Exemplos
  4. Exemplo SCD 0
  5. Exemplo SCD 1
  6. Exemplo SCD 2
  7. Exemplo SCD 3
  8. Exemplo SCD 4
  9. Exemplo SCD 5
  10. Exemplo SCD 6
  11. Considerações Finais

O que é Slowly Changing Dimensions?

São técnicas usadas em projetos de Business Intelligence (BI) e Data Warehousing para gerenciar e acompanhar mudanças nos dados dimensionais ao longo do tempo. Esses dados dimensionais representam informações descritivas, como nomes de clientes, endereços, produtos, entre outros, que podem sofrer alterações.

As SCDs são importantes porque permitem que as empresas mantenham um histórico preciso de como as informasão usadas para gerenciar e acompanhar mudanças nos dados dimensionais ao longo do tempo. Existem sete tipos principais de SCD: Tipo 0, 1, 2, 3, 4, 5 e 6. Cada tipo trata de maneira diferente a atualização das dimensões quando ocorrem mudanças nos dados.

Tipos de SCD

  • SCD Tipo 0: Os dados não mudam. Qualquer alteração nos dados é ignorada.
  • SCD Tipo 1: Os dados antigos são sobrescritos pelos novos dados. Não há histórico de mudanças.
  • SCD Tipo 2: Cada alteração gera uma nova linha na tabela de dimensões, mantendo um histórico completo das mudanças.
    • Podemos utilizar algumas abordagens nesse tipo
      • Coluna com datas de vigência do registro (início e fim)
      • Coluna com as versões do registro. Cada linha nova recebe uma versão. Ex.: V1, V2, etc.
      • Coluna com o status do registro Ativo ou Inativo. Essa abordagem funciona bem em conjunto com as colunas de versão.
  • SCD Tipo 3: Mantém um histórico limitado das mudanças, geralmente armazenando o valor antigo e o novo em colunas diferentes na mesma linha.
  • SCD Tipo 4: Utiliza uma tabela histórica separada para armazenar todas as mudanças. A tabela de dimensões principal contém apenas os valores atuais.
  • SCD Tipo 5: Combina aspectos dos tipos 1 e 4, mantendo uma tabela histórica separada e adicionando uma coluna de “status do registro” na tabela.
  • SCD Tipo 6: Combina os métodos dos tipos 1, 2 e 3, também conhecido como “dimensão híbrida”, para capturar todas as mudanças de forma abrangente.

Exemplos

Para exemplificar, vamos utilizar uma tabela de clientes com 4 colunas: uma surrogate key auto incremental chamada sk_cliente, uma chave de negócio chamada matricula_cliente (identificador do cliente), nome_cliente, e tipo_cliente (pessoa física ou jurídica).

Obs.: As colunas flag_status, versao_registro e dt_inicio/dt_fim podem ser aplicadas a partir da versão 2 do SCD. Não existe uma regra que prega que essas colunas somente podem ser aplicadas nas versões 4, 5 e 6. O importante é adaptar o código e as regras conforme a necessidade do projeto.

Baseado na minha experiência em implementações, gosto de aplicar essas 3 colunas em qualquer tipo de SCD que utilizo, principalmente nos tipos 2 e 4. No tipo 1, geralmente adiciono duas colunas na tabela: uma com a data em que o registro foi inserido e outra com a data de atualização do registro.

Exemplo SCD 0

Exemplo SCD 1

Exemplo SCD 2

Exemplo SCD 3

Exemplo SCD 4

Exemplo SCD 5

Exemplo SCD 6

Considerações Finais

Neste post, aprendemos sobre os diferentes tipos de Slowly Changing Dimensions (SCD) e como eles podem ser implementados. Cada tipo de SCD possui uma abordagem para gerenciar e armazenar alterações nos dados dimensionais ao longo do tempo, desde a atualização de registros (SCD Tipo 1) até a criação de um histórico de todas as mudanças (SCD Tipo 2, 4, 5 e 6).

A escolha do tipo de SCD a ser implementada nas tabelas dimensões depende das necessidades específicas do projeto e dos requisitos de análise de dados.

Este foi o primeiro de 4 posts sobre os tipos de SCD, fiquem atentos aos próximos episódios dessa série incrível.

Espero que tenham gostado do post, boa leitura e bons estudos

Quem quiser mandar comentários, sugestões, críticas ou dicas complementares, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para poder melhorar as postagens para vocês.

Até a próxima o/

Acessem nossas Redes Sociais: