Trasformazione di aggregazione

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

La trasformazione Aggregazione applica funzioni di aggregazione, ad esempio media, ai valori delle colonne e copia i risultati nell'output della trasformazione. Oltre alle funzioni di aggregazione, per questa trasformazione è disponibile la clausola GROUP BY, che consente di specificare i gruppi su cui eseguire l'aggregazione.

Operazioni

La trasformazione Aggregazione supporta le operazioni seguenti.

Operazione Descrizione
Raggruppa per Consente di dividere i set di dati in gruppi. Per il raggruppamento è possibile utilizzare colonne con qualsiasi tipo di dati. Per altre informazioni, vedere GROUP BY(Transact-SQL).
Somma Consente di sommare i valori di una colonna. È possibile sommare solo le colonne con tipi di dati numerici. Per altre informazioni, vedere SUM (Transact-SQL).
Medio Consente di restituire la media dei valori di una colonna. È possibile calcolare la media soltanto delle colonne con tipi di dati numerici. Per altre informazioni, vedere AVG (Transact-SQL).
Conteggio Consente di restituire il numero di elementi di un gruppo. Per altre informazioni, vedere COUNT (Transact-SQL).
Conta valori distinti Consente di restituire il numero di valori non Null univoci di un gruppo.
Minimo Restituisce il valore minimo in un gruppo. Per altre informazioni, vedere MIN (Transact-SQL). Diversamente dalla funzione Transact-SQL MIN, questa operazione può essere eseguita solo con tipi di dati numerici, di data e di ora.
Massimo Restituisce il valore massimo in un gruppo. Per altre informazioni, vedere MAX (Transact-SQL). Diversamente dalla funzione Transact-SQL MAX, questa operazione può essere eseguita solo con tipi di dati numerici, di data e di ora.

La trasformazione Aggregazione gestisce i valori Null come il motore di database relazionale di SQL Server. Questo comportamento è definito nello standard SQL-92. Si applicano le seguenti regole:

  • In una clausola GROUP BY i valori Null vengono considerati come gli altri valori di colonna. Se la colonna di raggruppamento include più valori Null, questi verranno inseriti in un unico gruppo.

  • Nelle funzioni COUNT (column name) e COUNT (DISTINCT column name) i valori Null vengono ignorati e il risultato non include le righe che contengono valori Null nella colonna specificata.

  • Nella funzione COUNT (*) vengono conteggiate tutte le righe, incluse quelle con valori Null.

Valori numerici elevati nelle aggregazioni

Una colonna può contenere valori numerici che richiedono particolare attenzione perché hanno valori o precisione elevata. La trasformazione Aggregation include la proprietà IsBig, che è possibile impostare sulle colonne di output per richiamare una gestione speciale dei numeri grandi o a precisione elevata. Se un valore di colonna può superare i 4 miliardi o richiedere una precisione superiore a quella del tipo di dati float, sarà necessario impostare la proprietà IsBig su 1.

L'impostazione della proprietà IsBig su 1 modifica l'output della trasformazione Aggregazione nel modo seguente:

  • Viene utilizzato il tipo di dati DT_R8 anziché il tipo di dati DT_R4.

  • I risultati dei conteggi vengono archiviati con il tipo di dati DT_UI8.

  • I risultati Distinct Count vengono archiviati con il tipo di dati DT_UI4.

Nota

Non è possibile impostare su 1 la proprietà IsBig delle colonne usate nelle operazioni GROUP BY, MAX e MIN.

Considerazioni sulle prestazioni

La trasformazione Aggregazione include un set di proprietà che è possibile impostare per migliorarne le prestazioni.

  • Quando si esegue un'operazione Group by , impostare la proprietà Keys o KeysScale del componente e gli output del componente. Tramite Keys, è possibile specificare il numero esatto di chiavi che dovrà essere gestito dalla trasformazione. In questo contesto, Keys fa riferimento al numero di gruppi che dovrebbero risultare da un'operazione Group by . Tramite KeysScale, è possibile specificare un numero approssimativo di chiavi. Quando si specifica un valore appropriato per Keys o KeyScale, si migliorano le prestazioni perché la trasformazione è in grado di allocare memoria adeguata per i dati memorizzati nella cache della trasformazione.

  • Quando si esegue un'operazione Distinct count , impostare la proprietà CountDistinctKeys o CountDistinctScale del componente. Tramite CountDistinctKeys, è possibile specificare il numero esatto di chiavi che dovrà essere gestito dalla trasformazione per un'operazione Count Distinct. In questo contesto, CountDistinctKeys fa riferimento al numero di valori distinct che dovrebbero risultare da un'operazione Distinct Count . La proprietà CountDistinctScale consente di specificare un numero approssimativo di chiavi per un'operazione Count Distinct. Quando si specifica un valore appropriato per CountDistinctKeys o CountDistinctScale, si migliorano le prestazioni in quanto la trasformazione è in grado di allocare una quantità di memoria appropriata per i dati memorizzati nella cache.

Configurazione della trasformazione di aggregazione

La trasformazione Aggregazione può essere configurata a livello di trasformazione, output e colonna.

  • A livello di trasformazione, è possibile configurare la trasformazione Aggregazione per ottimizzare le prestazioni specificando i valori seguenti:

    • Numero di gruppi che dovrebbero risultare da un'operazione Group by .

    • Il numero di valori distinti che si prevede risultino da un'operazione Count distinct.

    • Percentuale di estensione della memoria durante l'aggregazione.

    La trasformazione Aggregazione può essere inoltre configurata in modo da generare un avviso anziché un errore quando il valore di un divisore è zero.

  • A livello di output, è possibile configurare la trasformazione Aggregazione per ottimizzare le prestazioni specificando il numero di gruppi che dovrebbero risultare da un'operazione Group by . La trasformazione Aggregazione supporta più output, ognuno dei quali può essere configurato in modo diverso.

  • A livello di colonna, è possibile specificare i valori seguenti:

    • Aggregazione eseguita dalla colonna.

    • Opzioni di confronto dell'aggregazione.

È inoltre possibile configurare la trasformazione Aggregazione per ottimizzare le prestazioni specificando i valori seguenti:

  • Numero di gruppi che dovrebbero risultare da un'operazione Group by sulla colonna.

  • Il numero di valori distinti che dovrebbero risultare da un'operazione Count distinct sulla colonna.

È inoltre possibile identificare le colonne come IsBig se una colonna contiene valori numerici elevati o valori numerici con precisione elevata.

La trasformazione Aggregate è asincrona, il che significa che non elabora e pubblica i dati riga per riga. ma legge l'intero set di righe, ne esegue i raggruppamenti e le aggregazioni e quindi pubblica i risultati.

Questa trasformazione non fa passare alcuna colonna, ma crea nuove colonne nel flusso di dati per i dati che pubblica. Solo le colonne di input a cui vengono applicate le funzioni di aggregazione e le colonne di input utilizzate dalla trasformazione per il raggruppamento vengono copiate nell'output della trasformazione. L'input di una trasformazione Aggregazione può includere ad esempio tre colonne: CountryRegion, Citye Population. La trasformazione raggruppa in base alla colonna CountryRegion e applica la funzione Somma alla colonna Population. L'output non include pertanto la colonna City .

È inoltre possibile aggiungere più output alla trasformazione Aggregazione e indirizzare ogni aggregazione a un output diverso. Se ad esempio la trasformazione Aggregazione applica le funzioni Somma e Media, ogni aggregazione potrà essere indirizzata a un output diverso.

È possibile applicare più aggregazioni a una singola colonna di input. Se ad esempio si vuole ottenere i valori della somma e della media per una colonna di input di nome Sales, sarà possibile configurare la trasformazione in modo da applicare le funzioni Somma e Media alla colonna Sales .

La trasformazione Aggregate ha un input e una o più uscite. Non supporta un output degli errori.

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

Nella finestra di dialogo Editor avanzato sono disponibili le proprietà che è possibile impostare a livello di codice. Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o a livello di codice, fare clic su uno degli argomenti seguenti:

Per ulteriori informazioni sulle procedure per l'impostazione delle proprietà, fare clic su uno degli argomenti seguenti:

Aggregazione dei valori in un set di dati utilizzando la trasformazione di aggregazione

Editor della trasformazione di aggregazione (scheda Aggregazioni)

Usare la scheda Aggregazioni della finestra di dialogo Editor trasformazione Aggregazione per specificare le colonne per l'aggregazione e le proprietà di aggregazione. È possibile applicare più aggregazioni. Questa trasformazione non genera un output di errore.

Nota

Le opzioni per il conteggio delle chiavi, la scala delle chiavi, il conteggio delle chiavi distinte e la scala delle chiavi distinte si applicano a livello di componente quando sono specificate nella scheda Avanzate, a livello di output quando sono specificate nella visualizzazione avanzata della scheda Aggregazioni e a livello di colonna quando sono specificate nell'elenco delle colonne nella parte inferiore della scheda Aggregazioni.

Nella trasformazione di aggregazione, Chiavi e scala delle chiavi fanno riferimento al numero di gruppi che si prevede risultino da un'operazione Group by. Chiavi del conteggio distinto e Scala del conteggio distinto si riferiscono al numero di valori distinti che si prevede risultino da un'operazione di conteggio distinto.

Opzioni

Avanzate/Standard
Consente di visualizzare o nascondere le opzioni per la configurazione di più aggregazioni per più output. Le opzioni avanzate sono nascoste per impostazione predefinita.

Nome aggregazione
Nella visualizzazione Avanzate, digitare un nome intuitivo per l'aggregazione.

Raggruppa per colonne
Nella sezione delle opzioni avanzate, selezionare le colonne da raggruppare usando l'elenco Colonne di input disponibili come descritto di seguito.

Scala dei tasti
Nella sezione delle opzioni avanzate è inoltre possibile specificare il numero approssimativo di chiavi che possono essere scritte dall'aggregazione. Per impostazione predefinita, il valore di questa opzione è Non specificata. Se le proprietà Scala chiavi e Chiavi sono entrambe impostate, il valore della proprietà Chiavi ha la precedenza.

Valore Descrizione
Non specificato La proprietà Key Scale non viene utilizzata.
Basso L'aggregazione può scrivere circa 500.000 chiavi.
Medio L'aggregazione può scrivere circa 5.000.000 di chiavi.
Alto L'aggregazione può scrivere oltre 25.000.000 di chiavi.

Chiavi
Nella sezione delle opzioni avanzate è inoltre possibile specificare il numero esatto di chiavi che possono essere scritte dall'aggregazione. Se le proprietà Scala chiavi e Chiavi sono entrambe specificate, la proprietà Chiavi ha la precedenza.

Colonne di input disponibili
Consente di selezionare le colonne di input nell'elenco delle colonne di input disponibili utilizzando le caselle controllo presenti nella tabella.

Colonna di input
Consente di selezionare una colonna di input nell'elenco delle colonne di input disponibili.

Alias di output
Consente di digitare un alias per ogni colonna. Per impostazione predefinita viene suggerito il nome della colonna di input. È comunque possibile scegliere qualsiasi nome descrittivo univoco.

Operazione
Selezionare un'operazione nell'elenco delle operazioni disponibili utilizzando la tabella seguente come guida.

Operazione Descrizione
GroupBy Consente di dividere i set di dati in gruppi. Per il raggruppamento è possibile utilizzare colonne con qualsiasi tipo di dati. Per ulteriori informazioni, vedere GROUP BY.
Sum Consente di sommare i valori di una colonna. È possibile sommare solo le colonne con tipi di dati numerici. Per ulteriori informazioni, vedere SUM.
Media Consente di restituire la media dei valori di una colonna. È possibile calcolare la media soltanto delle colonne con tipi di dati numerici. Per ulteriori informazioni, vedere AVG.
Conteggio Consente di restituire il numero di elementi di un gruppo. Per ulteriori informazioni, vedere COUNT.
CountDistinct Consente di restituire il numero di valori non Null univoci di un gruppo. Per ulteriori informazioni, vedere COUNT e Distinct.
Minimo Restituisce il valore minimo in un gruppo. Limitata soltanto ai tipi di dati numerici.
Massimo Restituisce il valore massimo in un gruppo. Limitata soltanto ai tipi di dati numerici.

Flag di confronto
Se si scegliere Group By, usare le caselle di controllo per controllare la modalità con cui la trasformazione esegue il confronto. Per altre informazioni sulle opzioni per il confronto di stringhe, vedere Confronto di dati stringa.

Scala distinta del conteggio
È possibile specificare il numero approssimativo di valori distinct che l'aggregazione può scrivere. Per impostazione predefinita, il valore di questa opzione è Non specificata. Se le proprietà CountDistinctScale e CountDistinctKeys sono entrambe specificate, la proprietà CountDistinctKeys ha la precedenza.

Valore Descrizione
Non specificato La proprietà CountDistinctScale non viene usata.
Basso L'aggregazione può scrivere circa 500.000 valori distinti.
Medio L'aggregazione può scrivere circa 5.000.000 di valori distinti.
Alto L'aggregazione può scrivere oltre 25.000.000 di valori distinti.

Conteggio chiavi distinte
Facoltativamente, specificare il numero esatto di valori distinti che l'aggregazione può scrivere. Se le proprietà CountDistinctScale e CountDistinctKeys sono entrambe specificate, la proprietà CountDistinctKeys ha la precedenza.

Editor della trasformazione di aggregazione (scheda Avanzata)

Utilizzare la scheda Avanzate della finestra di dialogo Editor di trasformazione Aggregazione per impostare le proprietà del componente, specificare le aggregazioni e impostare le proprietà delle colonne di input e di output.

Nota

Le opzioni per il conteggio delle chiavi, la scala delle chiavi, il conteggio delle chiavi distinte e la scala delle chiavi distinte si applicano a livello di componente quando sono specificate nella scheda Avanzate, a livello di output quando sono specificate nella visualizzazione avanzata della scheda Aggregazioni e a livello di colonna quando sono specificate nell'elenco delle colonne nella parte inferiore della scheda Aggregazioni.

Nella trasformazione di aggregazione, Chiavi e scala delle chiavi fanno riferimento al numero di gruppi che si prevede risultino da un'operazione Group by. Chiavi del conteggio distinto e Scala del conteggio distinto si riferiscono al numero di valori distinti che si prevede risultino da un'operazione di conteggio distinto.

Opzioni

Scala dei tasti
Consente di specificare facoltativamente il numero approssimativo di chiavi previste dall'aggregazione. La trasformazione utilizza tale informazione per ottimizzare la dimensione iniziale della cache. Per impostazione predefinita, il valore di questa opzione è Non specificata. Se vengono specificate sia Scala chiavi sia Numero di chiavi, Numero di chiavi ha priorità.

Valore Descrizione
Non specificato La proprietà Scala chiavi non viene usata.
Basso L'aggregazione può scrivere circa 500.000 chiavi.
Medio L'aggregazione può scrivere circa 5.000.000 di chiavi.
Alto L'aggregazione può scrivere oltre 25.000.000 di chiavi.

Numero di chiavi
Consente di specificare facoltativamente il numero esatto di chiavi previste dall'aggregazione. La trasformazione utilizza tale informazione per ottimizzare la dimensione iniziale della cache. Se vengono specificate sia Scala chiavi sia Numero di chiavi, Numero di chiavi ha priorità.

Scala conteggio valori distinct
È possibile specificare il numero approssimativo di valori distinct che l'aggregazione può scrivere. Per impostazione predefinita, il valore di questa opzione è Non specificata. Se vengono specificati sia Scala del conteggio distinto sia Chiavi del conteggio distinto, Chiavi del conteggio distinto ha la precedenza.

Valore Descrizione
Non specificato La proprietà CountDistinctScale non viene utilizzata.
Basso L'aggregazione può scrivere circa 500.000 valori distinti.
Medio L'aggregazione può scrivere circa 5.000.000 di valori distinti.
Alto L'aggregazione può scrivere oltre 25.000.000 di valori distinti.

Conta chiavi distinte
Facoltativamente, specificare il numero esatto di valori distinti che l'aggregazione può scrivere. Se vengono specificati sia Scala conteggio distinto sia Chiavi conteggio distinto, Chiavi conteggio distinto ha la precedenza.

Fattore di estensione automatica
Consente di utilizzare un valore compreso tra 1 e 100 per specificare la percentuale di estensione possibile della memoria durante l'aggregazione. Il valore predefinito di questa opzione è 25%.