no artigo de hoje, eu gostaria de focar em mudança lenta dimensão, também conhecida como SCD. Dimensão é uma palavra extraída do armazenamento de dados como tal. Não sem uma razão SCD é usado muito frequentemente em termos de dados Warehouse (DW) tópicos e pode ser usado para fins de auditoria em sistemas OLTP.
O objetivo do artigo é rever os tipos de dimensão em mudança lenta, uma vez que há poucas versões deles.
os dados estão mudando ao longo do tempo., Você pode não se importar com a versão histórica dos dados em seu banco de dados OLTP, mas pode ser requisito de negócio, a fim de manter todas as mudanças históricas. Em outras palavras, você deve ser capaz de mostrar, em um relatório de vendas, um escritório regional correto de uma pessoa de vendas, não importa quando a pessoa mudou a região. Nesse caso, devemos manter os dados antes e depois da atualização.como funcionam as transformações?
Existem poucos tipos de SCD.
dependendo do tipo de SCD você pode manter nenhuma, uma ou mais mudanças históricas de linhas.,
a idéia é simples: cada vez que a linha está mudando, uma versão antiga (antes de atualizar ou excluir) da linha será mantida na tabela SCD.a implementação destas coisas nem sempre é fácil. Vamos dar uma olhada nos exemplos.
Como exemplo de dados-fonte, utilizarei a seguinte linha de dados:
SCD exemplo de dados-fonte
No exemplo acima, CustomerId é uma base de dados de fonte (OLTP).,introduzimos a chave substituta( CustomerKey) em DW para evitar a duplicação do CustomerId original e para otimizar o desempenho, especialmente quando o sistema Fonte usa caracteres ou chaves complexas.
SCD data in Data Warehouse example
SCD Type 0
this type doesn’t keep any changes of attributes. Ele mantém apenas o valor original sem quaisquer alterações. Usado principalmente para atributos que não podem ser alterados, como data de nascimento.,
SCD Type 1: overwriting the history for an attribute
This method can not track the changes in data, and overwrites the old data with new. Uma vez que o nosso cliente mudar de endereço, o novo endereço substituiria:
Tipo de anemia falciforme 1
Como você pode ver é muito simples de implementar e manter o processo é simples atualização. Em outras mãos, a desvantagem desta abordagem é a falta da história de row No Data Warehouse.,
SCD Type 2: adding new rows
The methodology is preserving the history by adding new rows and there is no limit on number of keeping changes.,iv id=”f3da287bb9″>
SCD Tipo 2
Além disso, você pode decidir de que forma você quer saber mais velhas linhas por manter a actual bandeira de coluna e/ou UpdateDate:
SCD Tipo 2 com a atual bandeira
ou a versão de linha que será incrementado sequencialmente:
SCD Tipo 2 com versão
SCD Tipo 3: histórico colunas
nesta abordagem, você pode gerenciar uma quantidade limitada de história adicionando colunas adicionais para atributos de rastreamento.,
querendo ter a cidade anterior e atual do cliente você pode implementar colunas: anterioridade e atualidade. Haverá apenas uma linha no Data Warehouse (DW) por base de dados fonte, portanto o tipo 3 tem usabilidade limitada e é menos popular do que os tipos 1 e 2.
SCD Tipo 3
deve ter cuidado se quiser utilizar o tipo 3 da SCD. Certifique-se de que o analista de negócios e/ou seu cliente estão cientes das limitações da história.,
SCD Type 4: Separate historical table
This type uses separate tables for keeping the current records and historical changes. Vale a pena usar quando:
• a Dimensão está mudando muito frequentemente ou
• a Dimensão e é multi-milhões de linhas de tabela
SCD Tipo 4 da tabela atual
Tipo de anemia falciforme 4 – tabela de histórico
Margy Ross de Kimball Grupo de chamadas tabelas como “mini-dimensão”.,
SCD Tipo 6:
esta abordagem é numerada como 6 1+2+3 = 6, bem como 1x2x3 = 6. Portanto, é uma combinação destes três tipos:
• Manter os dois valores anteriores e atuais para o atributo (como Tipo 3, olhar colunas: “HistoricCity”, “CurrentCity”)
• Substitui todos os registros para a versão atual do atributo (como Tipo 1, procure na coluna “CurrentCity”)
• Mantém histórico de versão do atributo (como Tipo 2, olhar como colunas: “IsCurrent”, “StartDate”, “data de Término”)
Vamos dar uma olhada como a linha está a ser alterado e como sua influência no DW., O primeiro carregamento da linha:
Tipo de anemia falciforme 6 (passo 1)
Linhas no DW da tabela Cliente de primeiro cliente de relocação:
Tipo de anemia falciforme 6 (passo 2)
Linhas no DW de Cliente da tabela a seguir cliente, segundo remanejamento:
Tipo de anemia falciforme 6 (passo 3)
Que Tipo devo escolher?,
como consultor profissional respondo profissionalmente:
depende
pergunte à sua equipa de Negócios, Análise de negócios ou ao seu cliente: o que eles precisam em data warehouse.
talvez eu não disse alto o suficiente, mas na mesma tabela você pode aplicar diferentes tipos de SCD para cada coluna.
For instance: Type 2 to the City column, Type 1 to the BirthDate column. Todos na mesma mesa.
Therefore ask them for every dimension:
• which attributes are constant,
* which attributes are variables?,
• quais atributos devem ser completamente rastreados, que devem manter apenas a versão anterior e atual?r• * quantas linhas estão na tabela agora / são esperadas nos próximos 10 anos?mantenha estas respostas como uma evidência. As pessoas, especialmente os clientes, adoram mudar de ideias. Sabes o que quero dizer.
Se você ainda não tem certeza de qual a ser escolhida, lembre-se que:
manter um histórico das mudanças é bom para você
simplesmente porque os requisitos podem mudar.ao lado dos tipos 0 e 1, na minha opinião, os mais populares são os tipos 2 e 4.como carregar os dados para o SCD?,boa pergunta. Mas este tópico é uma história completamente diferente.
Before I prepare next post about it-have a look on this tool:
SCD Merge Wizard
The tool helps you to create, manage and maintenance of mapping between source database (e.g. staging) and target database (Data Warehouse). Para além disso, com esta abordagem, irá usar a instrução MERGE para efectuar as operações de carregamento com o tipo de SCD configurado para cada coluna.
em posts adicionais, vou explicar como aplicar diferentes tipos de SCD nesta ferramenta.boa sorte com os teus carregamentos, Kamil Kamil