Trasformazione pivot

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

La trasformazione Pivot trasforma un set di dati normalizzato in una versione meno normalizzata ma più compatta, ruotando i dati di input in base al valore di una colonna. Un set di dati normalizzato di nome Orders che elenca nomi di clienti, prodotti e quantità vendute, ad esempio, include in genere più righe per ogni cliente che ha acquistato più prodotti, indicando su ogni riga i dettagli dell'ordine di un prodotto specifico. Applicando la trasformazione Pivot alla colonna del prodotto, è possibile ottenere un set di dati con una singola riga per cliente. nella quale sono elencati tutti gli acquisti effettuati dal cliente, utilizzando i nomi dei prodotti come nomi delle colonne e visualizzando le quantità come valori nelle colonne dei prodotti. Poiché non tutti i clienti acquistano tutti i prodotti, molte colonne possono contenere valori Null.

Quando si effettua un pivot su un set di dati, le colonne di input assumono ruoli diversi nel processo di pivot. Una colonna può partecipare nei modi seguenti:

  • La colonna viene riportata invariata in output. Poiché più righe di input possono convergere in una sola riga di output, la trasformazione copia solo il primo valore di input per la colonna.

  • La colonna funge da chiave, o da parte della chiave, che identifica un insieme di record.

  • La colonna definisce il perno. I valori in questa colonna sono associati alle colonne del dataset pivotato.

  • La colonna contiene valori che sono inseriti nelle colonne che il pivot crea.

Questa trasformazione ha un input, un output normale e un output di errore.

Ordinare e duplicare righe

Per ruotare i dati in modo efficiente, cioè creando il minor numero possibile di record nel set di dati di output, i dati di input devono essere ordinati in base alla colonna pivot. Se i dati non sono ordinati, la trasformazione Pivot potrà generare più record per ogni valore nella chiave del set, che è la colonna che definisce l'appartenenza al set. Ad esempio, se viene creato un pivot di un set di dati in base a una colonna Name, ma i nomi non sono ordinati, il set di dati di output potrebbe contenere più di una riga per ogni cliente, perché viene creato un pivot ogni volta che cambia il valore in Name.

I dati di input potrebbero contenere righe duplicate, provocando l'errore della trasformazione Pivot. Per righe duplicate si intendono righe che contengono gli stessi valori nelle colonne chiave del set e nelle colonne pivot. Per evitare l'errore è possibile configurare la trasformazione in modo che le righe con esito negativo vengano reindirizzate a un output degli errori, oppure preaggregare i valori per assicurarsi che non siano presenti righe duplicate.

Opzioni della finestra di dialogo Pivot

L'operazione pivot può essere configurata impostando le opzioni nella finestra di dialogo Pivot . Per aprire la finestra di dialogo Pivot, aggiungere la trasformazione Pivot al pacchetto in SQL Server Data Tools (SSDT) e quindi fare clic con il pulsante destro del mouse sul componente e scegliere Modifica.

L'elenco seguente descrive le opzioni nella finestra di dialogo Pivot .

Chiave di pivot
Viene specificata la colonna da utilizzare per i valori nella riga superiore (riga di intestazione) della tabella.

Chiave di impostazione
Viene specificata la colonna da utilizzare per i valori nella colonna sinistra della tabella. È necessario ordinare la data di input in questa colonna.

Valore del pivot
Viene specificata la colonna da utilizzare per i valori della tabella diversi rispetto ai valori della riga di intestazione e della colonna sinistra.

Ignora i valori Pivot Key non corrispondenti e segnalali al termine dell'esecuzione di DataFlow
Selezionare questa opzione per configurare la trasformazione Pivot per ignorare le righe contenenti valori non riconosciuti nella colonna Chiave pivot e restituire tutti i valori di chiave pivot in un messaggio di log, quando viene eseguito il pacchetto.

È anche possibile configurare la trasformazione per restituire i valori impostando la proprietà personalizzata PassThroughUnmatchedPivotKeys su True.

Generare colonne di output pivot dai valori
Immettere i valori di chiave pivot in questa casella per consentire alla trasformazione Pivot di creare colonne di output per ogni valore. È possibile immettere i valori prima dell'esecuzione del pacchetto oppure effettuare le operazioni seguenti.

  1. Selezionare l'opzione Ignora i valori delle chiavi pivot senza corrispondenza e segnalali dopo l'esecuzione del flusso di dati , quindi fare clic su OK nella finestra di dialogo Pivot per salvare le modifiche nella trasformazione Pivot.

  2. Esegui il pacchetto.

  3. Quando l'esecuzione del pacchetto viene completata correttamente, fare clic sulla scheda Stato e cercare il messaggio di log informativo della trasformazione Pivot contenente i valori di chiave pivot.

  4. Fare clic con il pulsante destro del mouse sul messaggio e scegliere Copia testo messaggio.

  5. Fare clic su Arresta debug nel menu Debug per passare alla modalità progettazione.

  6. Fare clic con il pulsante destro del mouse sulla trasformazione Pivot e quindi scegliere Modifica.

  7. Deselezionare l'opzione Ignora i valori delle chiavi pivot senza corrispondenza e segnalali dopo l'esecuzione del flusso di dati , quindi incollare i valori di chiave pivot nella casella Generare colonne di output pivot dai valori usando il formato seguente.

    [valore1],[valore2],[valore3]

Genera colonne
Fare clic per creare una colonna di output per ogni valore di chiave pivot elencato nella casella Generare colonne di output pivot dai valori .

Le colonne di output appaiono nella casella Colonne di output pivot esistenti.

Colonne di output ruotate esistenti
Elenca le colonne di output per i valori della chiave pivot

La tabella seguente mostra un insieme di dati prima che i dati vengano pivotati sulla colonna Year.

Anno Nome prodotto Totale
2004 Pneumatico da montagna HL 1504884.15
2003 Camera d'aria per pneumatici stradali 35920.50
2004 Bottiglia d'acqua - 30 oz. 2805.00
2002 Pneumatici da turismo 62364.225

La tabella seguente mostra un set di dati dopo aver applicato un pivot alla colonna Year.

Nome prodotto 2002 2003 2004
Pneumatico da montagna HL 141164.10 446297,775 1504884.15
Camera d'aria per pneumatici stradali 3592.05 35920.50 89801.25
Bottiglia d'acqua - 30 oz. NULL NULL 2805.00
Pneumatici Touring 62364.225 375051.60 1041810.00

Per trasformare i dati tramite Pivot in base alla colonna Year , come mostrato in precedenza, vengono impostate le opzioni seguenti nella finestra di dialogo Pivot .

  • Anno è selezionato nella casella di riepilogo Chiave pivot.

  • Nome prodotto è selezionato nella casella di elenco Imposta chiave.

  • Total è selezionato nella casella di riepilogo Valore pivot.

  • Immissione dei valori seguenti nella casella Generare colonne di output pivot dai valori .

    [2002],[2003],[2004]

Configurazione della trasformazione Pivot

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di codice.

Per altre informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato , fare clic su uno degli argomenti seguenti: