Partilhar via


Transformação de pivô

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

A transformação Pivot transforma um conjunto de dados normalizado numa versão menos normalizada, mas mais compacta, ao pivotar os dados de entrada sobre um valor de coluna. Por exemplo, um conjunto de dados normalizado de Encomendas que lista o nome do cliente, produto e quantidade comprada normalmente tem várias linhas para qualquer cliente que comprou vários produtos, sendo que cada linha desse cliente mostra detalhes da encomenda de um produto diferente. Ao pivotar o conjunto de dados na coluna do produto, a transformação Pivot pode gerar um conjunto de dados com uma única linha por cliente. Essa única linha lista todas as compras feitas pelo cliente, com os nomes dos produtos indicados como nomes das colunas, e a quantidade mostrada como valor na coluna do produto. Como nem todos os clientes compram todos os produtos, muitas colunas podem conter valores nulos.

Quando um conjunto de dados é pivotado, as colunas de entrada desempenham diferentes funções no processo de pivotamento. Uma coluna pode participar das seguintes formas:

  • A coluna é passada sem alterações até à saída. Como muitas linhas de entrada podem resultar apenas numa linha de saída, a transformação copia apenas o primeiro valor de entrada para a coluna.

  • A coluna funciona como a chave ou parte da chave que identifica um conjunto de registos.

  • A coluna define o pivô. Os valores desta coluna estão associados a colunas no conjunto de dados pivotado.

  • A coluna contém valores que são colocados nas colunas criadas pelo pivô.

Esta transformação tem uma entrada, uma saída regular e uma saída de erro.

Ordenar e Duplicar Linhas

Para pivotar os dados de forma eficiente, o que significa criar o menor número possível de registos no conjunto de dados de saída, os dados de entrada devem ser ordenados na coluna pivot. Se os dados não estiverem ordenados, a transformação Pivot pode gerar múltiplos registos para cada valor na chave de conjunto, que é a coluna que define a pertença ao conjunto. Por exemplo, se um conjunto de dados for pivotado numa coluna Nome mas os nomes não estiverem ordenados, o conjunto de dados de saída pode ter mais do que uma linha para cada cliente, porque ocorre um pivot sempre que o valor em Nome muda.

Os dados de entrada podem conter linhas duplicadas, o que fará com que a transformação Pivot falhe. "Linhas duplicadas" significa linhas que têm os mesmos valores nas colunas-chave definidas e nas colunas de pivô. Para evitar falhas, pode configurar a transformação para redirecionar linhas de erro para uma saída de erro ou pré-agregar valores para garantir que não há linhas duplicadas.

Opções na Caixa de Diálogo Pivot

Configuras a operação de pivot definindo as opções na caixa de diálogo Pivot . Para abrir a caixa de diálogo Pivot , adicione a transformação Pivot ao pacote no SQL Server Data Tools (SSDT), depois clique com o botão direito no componente e clique em Editar.

A lista seguinte descreve as opções na caixa de diálogo Pivot .

Chave de Pivot
Especifica a coluna a usar para valores na linha superior (linha do cabeçalho) da tabela.

Chave Definida
Especifica a coluna a usar para valores na coluna esquerda da tabela. A data de entrada deve ser ordenada nesta coluna.

Valor de pivô
Especifica a coluna a usar para os valores da tabela, para além dos valores na linha do cabeçalho e na coluna da esquerda.

Ignore valores de Chave Pivot não correspondidos e reporte-os após a execução do DataFlow
Selecione esta opção para configurar a transformação Pivot para ignorar linhas contendo valores não reconhecidos na coluna Chave Pivot e para enviar todos os valores da chave pivot numa mensagem logar, quando o pacote for executado.

Também pode configurar a transformação para produzir os valores ao definir a propriedade personalizada PassThroughUnmatchedPivotKeys para True.

Gerar colunas de saída pivot a partir dos valores
Insira os valores-chave pivot nesta caixa para permitir a transformação Pivot e criar colunas de saída para cada valor. Pode inserir os valores antes de executar o pacote, ou fazer o seguinte.

  1. Selecione a opção Ignorar valores da Chave Pivot não correspondidos e reporte-os após a execução do DataFlow , e depois clique em OK na caixa de diálogo Pivot para guardar as alterações na transformação Pivot.

  2. Execute o pacote.

  3. Quando o pacote tiver sucesso, clique no separador Progresso e procure a mensagem de registo de informações da transformação Pivot que contém os valores chave de pivot.

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

  5. Clica em Parar Depuração no menu Debug para mudar para o modo de design.

  6. Clique com o botão direito na transformação Pivot e depois clique em Editar.

  7. Desmarque a opção Ignorar valores de Chave Pivot não correspondidos e reporte-os após a execução do DataFlow, e depois cole os valores da chave pivot na caixa Gerar colunas de saída pivot a partir dos valores, usando o seguinte formato.

    [valor1],[valor2],[valor3]

Gerar colunas já
Clique para criar uma coluna de saída para cada valor de chave pivot que está listado na caixa Generar colunas de saída pivot a partir dos valores .

As colunas de saída aparecem na caixa de colunas de saída pivotadas existentes .

Colunas de saída pivotadas existentes
Lista as colunas de saída para os valores da chave de pivô

A tabela seguinte mostra um conjunto de dados antes de os dados serem pivotados na coluna Ano.

Ano Nome do Produto Total
2004 Pneumático de Montanha HL 1504884,15
2003 Câmara de Ar para Pneus de Estrada 35920.50
2004 Garrafa de água - 30 oz. 2805.00
2002 Pneu de turismo 62364.225

A tabela seguinte mostra um conjunto de dados depois de os dados terem sido pivotados na coluna do Ano .

Nome do Produto 2002 2003 2004
Pneumático de Montanha HL 141164.10 446.297,775 1504884.15
Câmara-de-ar para Pneus de Estrada 3592.05 35920.50 89.801,25
Garrafa de água - 30 oz. NULL NULL 2805.00
Pneu de turismo 62364.225 375051.60 1041810.00

Para pivotar os dados na coluna Ano , como mostrado acima, as seguintes opções estão definidas na caixa de diálogo Pivot .

  • O ano é selecionado na lista Chaves Pivot.

  • O Nome do Produto é selecionado na caixa de listagem Definir Chave.

  • O total é selecionado na caixa da lista de Valor Pivot .

  • Os seguintes valores são inseridos na caixa Gerar colunas de saída de pivô a partir de valores.

    [2002],[2003],[2004]

Configuração da transformação do pivô

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

Para mais informações sobre as propriedades que pode definir na caixa de diálogo do Editor Avançado , clique num dos seguintes tópicos:

Para informações sobre como definir as propriedades deste componente, veja Definir as Propriedades de um Componente de Fluxo de Dados.

Ver também

Transformação de Unpivot
Fluxo de Dados
Transformações do Integration Services