Condividi tramite


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.

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

  • A livello di trasformazione è possibile configurare la trasformazione Aggregazione in modo da ottimizzare le prestazioni specificando il numero delle chiavi e chiavi Distinct Count che devono essere gestite dalla trasformazione, oltre alla percentuale per cui è possibile estendere la 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 in modo da ottimizzare le prestazioni specificando il numero delle chiavi che devono essere contenute nell'output. La trasformazione Aggregazione supporta più output, ognuno dei quali può essere configurato in modo diverso.
  • A livello di colonna è possibile specificare l'aggregazione eseguita dalla colonna e le opzioni di confronto dell'aggregazione. È inoltre possibile configurare la trasformazione Aggregazione in modo da ottimizzare le prestazioni, specificando il numero delle chiavi e chiavi Distinct Count contenute in ogni colonna e identificando con IsBig le colonne che contengono valori numerici elevati o 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 può 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.

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 univoci non Null in un gruppo. Per ulteriori informazioni, vedere Eliminazione dei duplicati con la parola chiave DISTINCT.

Min

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.

Gestione di 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.

  • Impostare le proprietà Keys e KeysScale del componente e degli output del componente. La proprietà Keys, consente di specificare il numero esatto di chiavi che dovrà essere gestito dalla trasformazione, mentre la proprietà KeysScale, consente di specificare un numero di chiavi approssimativo. Quando si specifica un valore per la proprietà Keys, ovvero il valore che la trasformazione riceverà durante l'esecuzione del pacchetto, la trasformazione evita di riorganizzare i totali nella cache, migliorando le prestazioni.
  • Impostare le proprietà CountDistinctKeys e CountDistinctScale del componente. Tramite la proprietà CountDistinctKeys, è possibile specificare il numero esatto di chiavi che dovrà essere gestito dalla trasformazione per un'operazione Count Distinct. La proprietà CountDistinctScale consente di specificare un numero approssimativo di chiavi per un'operazione Count Distinct. Quando si specifica un valore per la proprietà CountDistinctScale, ovvero il valore che la trasformazione riceverà durante l'esecuzione del pacchetto, la trasformazione evita inoltre di riorganizzare i totali nella cache, migliorando le prestazioni.

Configurazione della trasformazione Aggregazione

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

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 programmazione. Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o a livello di programmazione, fare clic su uno degli argomenti seguenti:

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

Vedere anche

Concetti

Creazione del flusso di dati di un pacchetto
Trasformazioni di Integration Services

Guida in linea e informazioni

Assistenza su SQL Server 2005