Partilhar via


Transformação Dimensional em Mudança Lenta

Aplica-se a:SQL Server SSIS Integration Runtime em Azure Data Factory

A transformação Dimensão de Mudança Lenta coordena a actualização e inserção de registos nas tabelas de dimensões de um data warehouse. Por exemplo, pode usar esta transformação para configurar as saídas da transformação que inserem e atualizam registos na tabela DimProduct da AdventureWorksDW2025 base de dados com dados da tabela Production.Products na base de dados OLTP do AdventureWorks.

Importante

O Assistente de Dimensões que Muda Lentamente só suporta ligações ao SQL Server.

A transformação de Dimensão em Mudança Lenta fornece a seguinte funcionalidade para gerir dimensões que mudam lentamente:

  • Emparelhar linhas de entrada com linhas na tabela de consulta para identificar linhas novas e existentes.

  • Identificar linhas de entrada que contêm alterações quando estas não são permitidas.

  • Identificação de registos de membros inferidos que necessitam de atualização.

  • Identificação de linhas recebidas que contenham alterações históricas que requerem a inserção de novos registos e a atualização de registos expirados.

  • Deteção de linhas que contêm alterações que exigem a atualização de registos existentes, incluindo os expirados.

A transformação da Dimensão Lentamente Mutável suporta quatro tipos de alterações: atributo mutável, atributo histórico, atributo fixo e membro inferido.

  • Alterações de atributos sobrepõem registos existentes. Este tipo de alteração é equivalente a uma alteração do Tipo 1. A transformação Slowly Changing Dimension direciona estas filas para uma saída chamada Changing Attributes Updates Output.

  • Alterações históricas nos atributos criam novos registos em vez de atualizar os existentes. A única alteração permitida num registo existente é uma atualização de uma coluna que indique se o registo está atual ou expirado. Este tipo de mudança é equivalente a uma alteração do Tipo 2. A transformação Slowly Changing Dimension direciona estas linhas para duas saídas: Saída de Inserções de Atributos Históricos e Nova Saída.

  • Alterações fixas de atributos indicam que o valor da coluna não deve mudar. A transformação Dimensão de Mudança Lenta deteta alterações e pode direcionar as linhas com alterações para uma saída denominada Fixed Attribute Output.

  • Membro inferido indica que a linha é um registo de membro inferido na tabela de dimensões. Existe um membro inferido quando uma tabela de factos faz referência a um membro de dimensão que ainda não está carregado. É criado um registo mínimo de um membro inferido antecipando os dados relevantes de dimensão, que são fornecidos durante uma carga subsequente dos dados de dimensão. A transformação Slowly Changing Dimension direciona estas linhas para uma saída chamada Inferred Member Updates. Quando os dados do membro inferido são carregados, pode atualizar o registo existente em vez de criar um novo.

Observação

Alterações de Tipo 3, que exigem alterações na tabela de dimensões, não são suportadas pela transformação de Dimensão Que Muda Lentamente. Ao identificar colunas com o tipo fixo de atualização de atributo, pode capturar os valores de dados que são candidatos para alterações do Tipo 3.

Durante a execução, a transformação Slowly Changing Dimension tenta primeiro associar a linha recebida a um registo na tabela de consulta. Se não for encontrada correspondência, a linha de entrada é um novo registro; portanto, a Transformação de Dimensão de Mudança Lenta não executa trabalho adicional e direciona a linha para Nova Saída.

Se for encontrada uma correspondência, a transformação de Dimensão Que Muda Lentamente deteta se a linha contém alterações. Se a linha contiver alterações, a transformação de Dimensão de Mudança Lenta identifica o tipo de atualização para cada coluna e direciona a linha para a Saída de Atualizações de Atributos de Mudança, Saída de Atributo Fixo, Saída de Inserções de Atributos Históricos ou Saída de Atualizações de Membro Inferido. Se a linha não for alterada, a transformação de Dimensão Que Muda Lentamente direciona a linha para a Saída Inalterada.

Resultados de Transformação de Dimensão que Mudam Lentamente

A transformação de Dimensão Que Muda Lentamente possui uma entrada e até seis saídas. Uma saída direciona uma linha para um subconjunto do fluxo de dados que corresponde aos requisitos de atualização e inserção dessa linha. Esta transformação não suporta uma saída de erro.

A tabela seguinte descreve as saídas de transformação e os requisitos dos seus fluxos de dados subsequentes. Os requisitos descrevem o fluxo de dados que o Assistente de Dimensão Lentamente Variável cria.

Resultado Description Requisitos de fluxo de dados
Alteração de Atributos Atualiza Saída O registo na tabela de consulta é atualizado. Esta saída é usada para alterar linhas de atributos. Uma transformação de Comando OLE DB atualiza o registo usando uma instrução UPDATE.
Saída de Atributos Fixos Os valores nas linhas que não devem mudar não correspondem aos valores da tabela de consulta. Esta saída é usada para linhas de atributos fixas. Não é criado nenhum fluxo de dados padrão. Se a transformação estiver configurada para continuar depois de encontrar alterações em colunas de atributos fixas, deve criar um fluxo de dados que capture essas linhas.
Atributos Históricos Insere Saída A tabela de consulta contém pelo menos uma linha correspondente. A linha marcada como "atual" deve agora ser marcada como "expirada". Este resultado é usado para linhas de atributos históricos. Transformações de colunas derivadas criam colunas para a linha expirada e para os indicadores de linha atual. Uma transformação do Comando OLE DB atualiza o registo que agora deve ser marcado como "expirado". A linha com os novos valores das colunas é direcionada para a Nova Saída, onde a linha é inserida e marcada como "atual".
Saída de Atualizações Inferidas para Membros São inseridas linhas para membros de dimensão inferidos. Este resultado é usado para linhas de membros inferidas. Uma transformação de comandos OLE DB atualiza o registo usando uma instrução SQL UPDATE.
Nova Produção A tabela de consulta não contém linhas correspondentes. A linha é adicionada à tabela de dimensões. Esta saída é usada para novas linhas e alterações às linhas de atributos históricos. Uma transformação de Coluna Derivada define o indicador de linha atual, e um destino OLE DB insere a linha.
Saída Inalterada Os valores na tabela de consulta correspondem aos valores das linhas. Esta saída é usada para linhas inalteradas. Não é criado nenhum fluxo de dados padrão porque a transformação de Dimensão de Mudança Lenta não realiza qualquer trabalho. Se quiser capturar estas linhas, deve criar um fluxo de dados para essa saída.

Chaves Empresariais

A transformação de Dimensão de Mudança Lenta requer pelo menos uma coluna de chave empresarial.

A transformação da Dimensão Que Muda Lentamente não suporta chaves de negócio nulas. Se os dados incluírem linhas em que a coluna da chave de negócio é nula, essas linhas devem ser removidas do fluxo de dados. Pode usar a transformação Condicional Split para filtrar linhas cujas colunas de chave de negócio contêm valores nulos. Para mais informações, veja Transformação de Divisão Condicional.

Otimização do desempenho da transformação dimensional que muda lentamente

Para sugestões sobre como melhorar o desempenho da Transformação de Dimensão em Mudança Lenta, consulte Funcionalidades de Desempenho do Fluxo de Dados.

Resolução de Problemas da Transformação de Dimensão em Mudança Lenta

É possível registar as chamadas que a transformação de Dimensão Lentamente Mutável executa para os fornecedores de dados externos. Pode usar esta capacidade de registo para resolver problemas das ligações, comandos e consultas a fontes de dados externas que a transformação Slowly Changing Dimension realiza. Para registar as chamadas que a transformação Slowly Changing Dimension faz para fornecedores de dados externos, ative o logging de pacotes e selecione o Evento de Diagnóstico ao nível do pacote. Para obter mais informações, consulte Ferramentas de solução de problemas para execução de pacotes.

Configuração da Transformação de Dimensão Que Muda Lentamente

Você pode definir propriedades por meio do SSIS Designer ou programaticamente.

Para obter mais informações sobre as propriedades que você pode definir na caixa de diálogo Advanced Editor ou programaticamente, clique em um dos seguintes tópicos:

Para obter mais informações sobre como definir propriedades, consulte Definir as propriedades de um componente de fluxo de dados.

Configuração das Saídas de Transformação de Dimensão Que Mudam Lentamente

Coordenar a atualização e inserção de registos em tabelas de dimensões pode ser uma tarefa complexa, especialmente se forem utilizadas alterações tanto do Tipo 1 como do Tipo 2. O SSIS Designer oferece duas formas de configurar suporte para dimensões que mudam lentamente:

  • A caixa de diálogo do Editor Avançado , onde podes selecionar uma ligação, definir propriedades de componentes comuns e personalizados, escolher colunas de entrada e definir propriedades de coluna nas seis saídas. Para completar a tarefa de configurar o suporte para uma dimensão que muda lentamente, deve criar manualmente o fluxo de dados para as saídas que a transformação da Dimensão Lentamente Variável utiliza. Para obter mais informações, consulte Fluxo de dados.

  • O Assistente de Dimensão de Carga, que o guia pelos passos para configurar a transformação de Dimensão Que Muda Lentamente e construir o fluxo de dados para as saídas das transformações. Para alterar a configuração e alterar lentamente as dimensões, reexecute o Assistente de Carga de Dimensões. Para mais informações, consulte Configurar Saídas Usando o Assistente de Dimensões Que Mudam Lentamente.

definir as propriedades de um componente de fluxo de dados