Descrever as dimensões de alteração lenta

Concluído

Uma SCD (dimensão de alteração lenta) gerencia adequadamente a alteração dos membros da dimensão ao longo do tempo. Ele se aplica quando os valores de uma entidade de negócios mudam ao longo do tempo, e não segundo um agendamento definido. Um bom exemplo de SCD é uma dimensão de cliente, especificamente as colunas de detalhes de contato dele, como endereço de email e número de telefone. Por outro lado, algumas dimensões são consideradas de alteração rápida quando um atributo de dimensão é alterado com frequência, como o preço de mercado de um estoque. A abordagem de design comum nesses casos é armazenar valores de atributos de alteração rápida em uma medida de tabela de fatos. No entanto, para dimensões de alteração lenta, os membros que sofrem alterações devem permanecer na tabela de dimensões. O design usado para lidar com as alterações depende dos requisitos de negócios da tabela de dimensões.

Exemplo de SCD do cliente

Suponha que você esteja criando uma tabela de dimensões do cliente como parte de um modelo de esquema em estrela para acompanhar transações de vendas. Essa tabela incluiria atributos como nome da empresa e endereço de email. Se o nome ou o número de telefone da empresa for alterado, você desejará tratá-lo como um novo cliente? Provavelmente, não. Em vez disso, você precisa de uma forma de atualizar o registro existente ou de acompanhar todas as alterações históricas dos valores.

Ao lidar com alterações de dados, o design da tabela varia dependendo de você optar por atualizar os valores sem histórico ou por acompanhar cada versão do histórico. Você aprenderá algumas práticas comuns a seguir, mas, para começar, você precisa identificar se a dimensão será uma SCD (dimensão de alteração lenta). Em outras palavras, você permitirá atualizações dos registros? Quando a resposta é sim, você deve adicionar campos de data adicionais à tabela. Esses campos de data ajudarão a acompanhar quando os dados foram atualizados no banco de dados de análise.

Por exemplo, uma SCD do cliente terá um conjunto de colunas que podem ser alteradas (1) e um conjunto de campos para acompanhar quando o registro foi adicionado e modificado (2).

An example customer table design with fields to change and date fields highlighted.