Compartilhar via


Transformação Dinâmica

A transformação Dinâmica transforma um conjunto de dados normalizado em um conjunto menos normalizado, em uma versão mais compacta, tornando dinâmicos os dados de entrada em um valor de coluna. Por exemplo, um conjunto de dados Orders normalizado que lista nome de cliente, produto e quantidade adquirida normalmente tem várias linhas para qualquer cliente que tenha comprado diversos produtos, sendo que cada linha daquele cliente apresenta detalhes do pedido para um produto diferente. Ao dinamizar o conjunto de dados na coluna de produto, a transformação dinâmica pode produzir um conjunto de dados com uma única linha por cliente. Aquela única linha lista todas as compras realizadas pelo cliente, com os nomes de produto mostrados como nomes de coluna, e a quantidade exibida como um valor na coluna de produto. Como nem todo cliente compra todos os produtos, muitas colunas podem conter valores nulos.

Quando um conjunto de dados é dinamizado, as colunas de entrada executam funções diferentes no processo de dinamização. Uma coluna pode participar dos seguintes modos:

  • A coluna é passada inalterada até a saída. Como muitas linhas de entrada só podem resultar em uma linha de saída, a transformação copia só o primeiro valor de entrada para a coluna.

  • A coluna age como a chave ou parte da chave que identifica um conjunto de registros.

  • A coluna define a dinamização. Os valores nesta coluna são associados com colunas no conjunto de dados dinâmicos.

  • A coluna contém valores que são colocados nas colunas criadas pela dinamização.

Essa informação tem uma entrada, uma saída comum e uma saída de erro.

Classificar e duplicar linhas

Para dinamizar os dados com eficiência, o que significa criar o mínimo possível de registros no conjunto de dados de saída, os dados de entrada devem ser classificados na coluna dinâmica. Se os dados não fossem classificados, a transformação dinâmica poderia gerar vários registros para cada valor na chave definida, que é a coluna que define a associação de conjunto. Por exemplo, se um conjunto de dados fosse dinamizado em uma coluna Name, mas os nomes não fossem classificados, o conjunto de dados de saída poderia ter mais de uma linha para cada cliente, porque uma dinamização ocorre toda vez que o valor Name é alterado.

Os dados de entrada poderiam conter linhas duplicadas que causarão uma falha na transformação dinâmica. " Linhas duplicadas" significam linhas que têm os mesmos valores nas colunas de chave definidas e nas colunas dinâmicas. Para evitar uma falha, você pode configurar a transformação para redirecionar linhas de erro para uma saída de erro ou pode pré-agregar valores para ter certeza de que não existem linhas duplicadas.

Opções da caixa de diálogo Dinâmica

Você configura a operação dinâmica definindo as opções na caixa de diálogo Dinâmica. Para abrir a caixa de diálogo Dinâmica, adicione a transformação Dinâmica ao pacote no SSDT (SQL Server Data Tools) e clique com o botão direito no componente e clique em Editar.

A lista a seguir descreve as opções da caixa de diálogo Dinâmica.

  • Chave Dinâmica
    Especifica a coluna a ser usada para obter valores na linha superior (linha de cabeçalho) da tabela.

  • Definir Chave
    Especifica a coluna a ser usada para obter valores na coluna esquerda da tabela. A data de entrada deve ser classificada nesta coluna.

  • Valor Dinâmico
    Especifica a coluna a ser usada para obter os valores da tabela, que não sejam os valores da linha do cabeçalho e da coluna esquerda.

  • Ignorar valores de Chave Dinâmica não correspondentes e relatá-los após a execução de DataFlow
    Selecione essa opção para configurar a transformação Dinâmica para ignorar as linhas que contêm valores não reconhecidos na coluna Chave Dinâmica e gerar todos os valores de chave dinâmica para uma mensagem de log, quando o pacote é executado.

    Você também pode configurar a transformação para gerar os valores definindo a propriedade personalizada PassThroughUnmatchedPivotKeys como True.

  • Gerar colunas de saída dinâmica a partir de valores
    Digite os valores de chave dinâmica nesta caixa para permitir que a transformação Dinâmica crie colunas de saída para cada valor. Você pode inserir os valores antes de executar o pacote ou fazer o seguinte:

    1. Selecione a opção Ignorar valores de Chave Dinâmica não correspondentes e relatá-los após a execução de DataFlow e clique em OK na caixa de diálogo Dinâmica para salvar as alterações à transformação Dinâmica.

    2. Execute o pacote.

    3. Quando o pacote tiver êxito, clique na guia Progresso e procure a mensagem de log de informações da transformação Dinâmica que contém os valores de chave dinâmica.

    4. Clique com o botão direito do mouse na mensagem e clique em Copiar Texto de Mensagem.

    5. Clique em Parar Depuração no menu Depurar para alternar para o modo de design.

    6. Clique com o botão direito do mouse na transformação Dinâmica e clique em Editar.

    7. Desmarque a opção Ignorar valores de Chave Dinâmica não correspondentes e relatá-los após a execução de DataFlow e cole os valores de chave dinâmica na caixa de diálogo Gerar colunas de saída dinâmicas a partir dos valores usando o formato a seguir.

      [valor1],[valor2],[valor3]

  • Gerar Colunas Agora
    Clique para criar uma coluna de saída para cada valor de chave dinâmica listada na caixa Gerar colunas de saída dinâmicas a partir dos valores.

    As colunas de saída aparecem na caixa Colunas de saída dinâmicas existentes.

  • Colunas de saída dinâmicas existentes
    Lista as colunas de saída para os valores de chave dinâmica.

A tabela a seguir mostra um conjunto de dados após a dinamização dos dados na coluna Ano.

Ano

Nome do produto

Total

2004

HL Mountain Tire

1504884.15

2003

Tubo de pneu de estrada

35920.50

2004

Garrafa de Água – 30 oz.

2805.00

2002

Pneu de Passeio

62364.225

A tabela a seguir mostra um conjunto de dados depois de os dados serem dinamizados na coluna Ano.

2002

2003

2004

HL Mountain Tire

141164.10

446297.775

1504884.15

Tubo de pneu de estrada

3592.05

35920.50

89801.25

Garrafa de Água – 30 oz.

NULL

NULL

2805.00

Pneu de Passeio

62364.225

375051.60

1041810.00

Para dinamizar os dados na coluna Ano, como mostrado acima, as opções a seguir são definidas na caixa de diálogo Dinâmica.

  • Ano é selecionado na caixa de listagem Chave Dinâmica.

  • O nome do produto é selecionado na caixa de listagem Definir Chave.

  • Total é selecionado na caixa de listagem Valor Dinâmico.

  • Os valores a seguir são inseridos na caixa Gerar colunas de saída dinâmicas a partir dos valores.

    [2002],[2003],[2004]

Configuração da Transformação Dinâmica

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

Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor Avançado, clique em um dos seguintes tópicos:

Conteúdo relacionado

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

Conteúdo relacionado

Ícone do Integration Services (pequeno) Mantenha-se atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos mais recentes da Microsoft, bem como soluções selecionadas pela comunidade, visite a página Integration Services no MSDN:


Para receber uma notificação automática dessas atualizações, assine os RSS feeds disponíveis na página.

Consulte também

Conceitos

Transformação não dinâmica

Fluxo de dados

Transformações do Integration Services