Trasformazione Aggregazione

La trasformazione Aggregazione applica funzioni di aggregazione, ad esempio Average, 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

Group by

Suddivide un set di dati in gruppi. Per il raggruppamento è possibile utilizzare colonne con qualsiasi tipo di dati. Per ulteriori informazioni, vedere GROUP BY (Transact-SQL).

Sum

Somma i valori in una colonna. È possibile sommare solo colonne con tipi di dati numeric. Per ulteriori informazioni, vedere SUM (Transact-SQL).

Average

Restituisce la media dei valori di colonna in una colonna. È possibile calcolare la media solo di colonne con tipi di dati numeric. Per ulteriori informazioni, vedere AVG (Transact-SQL).

Count

Restituisce il numero di elementi in un gruppo. Per ulteriori informazioni, vedere COUNT (Transact-SQL).

Count Distinct

Restituisce il numero di valori non Null univoci di un gruppo.

Valore minimo

Restituisce il valore minimo in un gruppo. Per ulteriori 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.

Max

Restituisce il valore massimo in un gruppo. Per ulteriori 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. Vengono applicate le regole seguenti:

  • Nelle clausole 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 Aggregazione include la proprietà IsBig, che può essere impostata sulle colonne di output per richiedere una speciale modalità di gestione per i numeri con precisione o valore elevato. 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 utilizzate 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 in quanto la trasformazione è in grado di allocare una quantità di memoria appropriata per i dati memorizzati nella cache.

  • 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 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.

    • Numero di valori distinct che dovrebbero risultare 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.

  • Numero di valori distinct 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 Aggregazione è asincrona, pertanto non legge 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 passa alcuna colonna, ma crea nuove colonne nel flusso di dati per i dati pubblicati. 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 potrebbe includere ad esempio tre colonne: CountryRegion, City e Population. La trasformazione esegue un raggruppamento in base alla colonna CountryRegion e applica la funzione Sum 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 Sum e Average, ogni aggregazione potrà essere indirizzata a un output diverso.

È possibile applicare più aggregazioni a una singola colonna di input. Se ad esempio si desidera 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 Sum e Average alla colonna Sales.

La trasformazione Aggregazione include un input e uno o più output. Non supporta un output degli errori.

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

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

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:

Attività correlate

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

Contenuto correlato

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per i download, gli articoli, gli esempi e i video Microsoft più recenti, oltre alle soluzioni selezionate dalla community, visitare la pagina Integration Services sul sito MSDN:


Per ricevere notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Vedere anche

Concetti

Flusso di dati

Trasformazioni di Integration Services