Trasformazione Dimensione a modifica lentaSlowly Changing Dimension Transformation

La trasformazione Dimensione a modifica lenta consente di coordinare l'aggiornamento e l'inserimento dei record nelle tabelle delle dimensioni dei data warehouse.The Slowly Changing Dimension transformation coordinates the updating and inserting of records in data warehouse dimension tables. È ad esempio possibile usare questa trasformazione per configurare gli output che inseriscono e aggiornano i record nella tabella DimProduct del database AdventureWorksDW2012AdventureWorksDW2012 con i dati della tabella Production.Products del database OLTP AdventureWorks.For example, you can use this transformation to configure the transformation outputs that insert and update records in the DimProduct table of the AdventureWorksDW2012AdventureWorksDW2012 database with data from the Production.Products table in the AdventureWorks OLTP database.

Importante

La Configurazione guidata dimensioni a modifica lenta supporta solo le connessioni a SQL ServerSQL Server.The Slowly Changing Dimension Wizard only supports connections to SQL ServerSQL Server.

La trasformazione Dimensione a modifica lenta fornisce le funzionalità seguenti per la gestione delle dimensioni a modifica lenta:The Slowly Changing Dimension transformation provides the following functionality for managing slowly changing dimensions:

  • Confronto tra le righe in ingresso e le righe presenti nella tabella di ricerca per distinguere tra righe nuove e righe esistenti.Matching incoming rows with rows in the lookup table to identify new and existing rows.

  • Identificazione delle righe in ingresso contenenti modifiche quando le modifiche non sono consentite.Identifying incoming rows that contain changes when changes are not permitted.

  • Identificazione dei record dei membri derivati che richiedono un aggiornamento.Identifying inferred member records that require updating.

  • Identificazione delle righe in ingresso contenenti modifiche cronologiche che richiedono l'inserimento di nuovi record e l'aggiornamento dei record scaduti.Identifying incoming rows that contain historical changes that require insertion of new records and the updating of expired records.

  • Rilevamento delle righe in ingresso contenenti modifiche che richiedono l'aggiornamento dei record esistenti, compresi quelli scaduti.Detecting incoming rows that contain changes that require the updating of existing records, including expired ones.

    La trasformazione Dimensione a modifica lenta supporta quattro tipi di modifiche: Attributo modificabile, Attributo cronologico, Attributo fisso e Membro derivato.The Slowly Changing Dimension transformation supports four types of changes: changing attribute, historical attribute, fixed attribute, and inferred member.

  • Le modifiche di tipo Attributo modificabile sovrascrivono i record esistenti.Changing attribute changes overwrite existing records. Questo tipo di modifica è equivalente a una modifica di tipo 1.This kind of change is equivalent to a Type 1 change. La trasformazione Dimensione a modifica lenta invia queste righe a un output denominato Output aggiornamenti attributi modificabili.The Slowly Changing Dimension transformation directs these rows to an output named Changing Attributes Updates Output.

  • Le modifiche di tipo Attributo cronologico creano nuovi record anziché aggiornare quelli esistenti.Historical attribute changes create new records instead of updating existing ones. L'unica modifica consentita in un record esistente è l'aggiornamento di una colonna che indica se il record è aggiornato o scaduto.The only change that is permitted in an existing record is an update to a column that indicates whether the record is current or expired. Questo tipo di modifica è equivalente a una modifica di tipo 2.This kind of change is equivalent to a Type 2 change. La trasformazione Dimensione a modifica lenta invia queste righe a due output: Output inserimenti attributo cronologico e Nuovo output.The Slowly Changing Dimension transformation directs these rows to two outputs: Historical Attribute Inserts Output and New Output.

  • Le modifiche di tipo Attributo fisso indicano che il valore della colonna non deve essere modificato.Fixed attribute changes indicate the column value must not change. La trasformazione Dimensione a modifica lenta rileva le modifiche e può inviare le righe modificate a un output denominato Output attributo fisso.The Slowly Changing Dimension transformation detects changes and can direct the rows with changes to an output named Fixed Attribute Output.

  • Membro derivato indica che la riga è un record membro derivato nella tabella delle dimensioni.Inferred member indicates that the row is an inferred member record in the dimension table. Un membro derivato esiste quando una tabella dei fatti fa riferimento a un membro della dimensione non ancora caricato.An inferred member exists when a fact table references a dimension member that is not yet loaded. In attesa di dati di dimensione rilevanti, che verranno forniti in un caricamento successivo, viene creato un record membro derivato minimo.A minimal inferred-member record is created in anticipation of relevant dimension data, which is provided in a subsequent loading of the dimension data. La trasformazione Dimensione a modifica lenta invia queste righe a un output denominato Output aggiornamenti membro derivato.The Slowly Changing Dimension transformation directs these rows to an output named Inferred Member Updates. Dopo il caricamento dei dati relativi al membro derivato, sarà possibile aggiornare il record esistente anziché crearne uno nuovo.When data for the inferred member is loaded, you can update the existing record rather than create a new one.

Nota

La trasformazione Dimensione a modifica lenta non supporta modifiche di tipo 3, che richiedono la modifica della tabella delle dimensioni.The Slowly Changing Dimension transformation does not support Type 3 changes, which require changes to the dimension table. Identificando le colonne con il tipo di aggiornamento Attributo fisso, è possibile acquisire i valori dei dati che possono subire modifiche di tipo 3.By identifying columns with the fixed attribute update type, you can capture the data values that are candidates for Type 3 changes.

In fase di esecuzione la trasformazione Dimensione a modifica lenta cerca innanzitutto una corrispondenza tra la riga in ingresso e un record nella tabella di ricerca.At run time, the Slowly Changing Dimension transformation first tries to match the incoming row to a record in the lookup table. Se non viene trovata alcuna corrispondenza, significa che la riga in ingresso è un nuovo record. In questo caso la trasformazione Dimensione a modifica lenta non esegue altre operazioni e invia la riga a Nuovo output.If no match is found, the incoming row is a new record; therefore, the Slowly Changing Dimension transformation performs no additional work, and directs the row to New Output.

Quando viene trovata una corrispondenza, la trasformazione Dimensione a modifica lenta verifica invece se sono presenti eventuali modifiche.If a match is found, the Slowly Changing Dimension transformation detects whether the row contains changes. Se la riga contiene modifiche, verrà identificato il tipo di aggiornamento eseguito sulle varie colonne e la riga verrà inviata a Output aggiornamenti attributi modificabili, Output attributo fisso, Output inserimenti attributo cronologicoo Output aggiornamenti membro derivato.If the row contains changes, the Slowly Changing Dimension transformation identifies the update type for each column and directs the row to the Changing Attributes Updates Output, Fixed Attribute Output, Historical Attributes Inserts Output, or Inferred Member Updates Output. Se la riga non contiene modifiche, verrà inviata a Output non modificato.If the row is unchanged, the Slowly Changing Dimension transformation directs the row to the Unchanged Output.

Output della trasformazione Dimensione a modifica lentaSlowly Changing Dimension Transformation Outputs

La trasformazione Dimensione a modifica lenta utilizza un solo input e un massimo di sei output.The Slowly Changing Dimension transformation has one input and up to six outputs. Un output indirizza una riga al subset del flusso di dati che corrisponde ai requisiti di aggiornamento e inserimento della riga.An output directs a row to the subset of the data flow that corresponds to the update and the insert requirements of the row. Questa trasformazione non supporta un output degli errori.This transformation does not support an error output.

Nella tabella seguente vengono descritti gli output della trasformazione e i requisiti dei flussi di dati successivi.The following table describes the transformation outputs and the requirements of their subsequent data flows. I requisiti descrivono il flusso di dati creato dalla Configurazione guidata dimensioni a modifica lenta.The requirements describe the data flow that the Slowly Changing Dimension Wizard creates.

OutputOutput DescriptionDescription Requisiti del flusso di datiData flow requirements
Output aggiornamenti attributi modificabiliChanging Attributes Updates Output Il record nella tabella di ricerca è stato aggiornato.The record in the lookup table is updated. Questo output viene utilizzato per le righe con attributi modificabili.This output is used for changing attribute rows. Una trasformazione Comando OLE DB aggiorna il record utilizzando un'istruzione UPDATE.An OLE DB Command transformation updates the record using an UPDATE statement.
Output attributo fissoFixed Attribute Output Per i valori nelle righe che non devono essere modificate non esiste alcuna corrispondenza con i valori nella tabella di ricerca.The values in rows that must not change do not match values in the lookup table. Questo output viene utilizzato per le righe con attributi fissi.This output is used for fixed attribute rows. Non viene creato alcun flusso di dati predefinito.No default data flow is created. Se la trasformazione è configurata in modo da continuare anche in caso di rilevamento di modifiche alle colonne con attributi fissi, sarà necessario creare un flusso di dati che acquisisca tali righe.If the transformation is configured to continue after it encounters changes to fixed attribute columns, you should create a data flow that captures these rows.
Output inserimenti attributo cronologicoHistorical Attributes Inserts Output La tabella di ricerca contiene almeno una riga corrispondente.The lookup table contains at least one matching row. La riga contrassegna come "corrente" ora viene contrassegnata come "scaduta".The row marked as “current” must now be marked as "expired". Questo output viene utilizzato per le righe con attributi cronologici.This output is used for historical attribute rows. Le trasformazioni Colonna derivata creano colonne per gli indicatori di riga scaduta e di riga corrente.Derived Column transformations create columns for the expired row and the current row indicators. Una trasformazione del comando OLE DB aggiorna il record che ora deve essere contrassegnato come "scaduto".An OLE DB Command transformation updates the record that must now be marked as "expired". La riga con i valori della colonna nuovi è indirizzata a Nuovo Output, dove viene inserita e contrassegna come "corrente".The row with the new column values is directed to the New Output, where the row is inserted and marked as "current".
Output aggiornamenti membro derivatoInferred Member Updates Output Vengono inserite righe per membri di dimensione derivati.Rows for inferred dimension members are inserted. Questo output viene utilizzato per le righe dei membri derivati.This output is used for inferred member rows. Una trasformazione Comando OLE DB aggiorna il record utilizzando un'istruzione SQL UPDATE.An OLE DB Command transformation updates the record using an SQL UPDATE statement.
Nuovo outputNew Output La tabella di ricerca non contiene righe corrispondenti.The lookup table contains no matching rows. La riga viene aggiunta alla tabella delle dimensioni.The row is added to the dimension table. Questo output viene utilizzato per le nuove righe e per le modifiche alle righe con attributi cronologici.This output is used for new rows and changes to historical attributes rows. Una trasformazione Colonna derivata imposta l'indicatore di riga corrente e una destinazione OLE DB inserisce la riga.A Derived Column transformation sets the current row indicator, and an OLE DB destination inserts the row.
Output non modificatoUnchanged Output I valori nella tabella di ricerca corrispondono a quelli della riga.The values in the lookup table match the row values. Questo output viene utilizzato per le righe non modificate.This output is used for unchanged rows. Non viene creato alcun flusso di dati perché la trasformazione Dimensione a modifica lenta non esegue alcuna operazione.No default data flow is created because the Slowly Changing Dimension transformation performs no work. Se si desidera acquisire queste righe, sarà necessario creare un flusso di dati per questo output.If you want to capture these rows, you should create a data flow for this output.

Chiavi businessBusiness Keys

La trasformazione Dimensione a modifica lenta richiede almeno una colonna chiave business.The Slowly Changing Dimension transformation requires at least one business key column.

La trasformazione Dimensione a modifica lenta non supporta chiavi business Null.The Slowly Changing Dimension transformation does not support null business keys. Se i dati includono righe in cui la colonna chiave business è Null, tali righe dovranno essere rimosse dal flusso di dati.If the data include rows in which the business key column is null, those rows should be removed from the data flow. Per filtrare le righe con colonne chiave business contenenti valori Null, è possibile utilizzare la trasformazione Suddivisione condizionale.You can use the Conditional Split transformation to filter rows whose business key columns contain null values. Per altre informazioni, vedere Trasformazione Suddivisione condizionale.For more information, see Conditional Split Transformation.

Ottimizzazione delle prestazioni della trasformazione di dimensioni a modifica lentaOptimizing the Performance of the Slowly Changing Dimension Transformation

Per suggerimenti sul miglioramento delle prestazioni della trasformazione Dimensione a modifica lenta, vedere Funzionalità delle prestazioni del flusso di dati.For suggestions on how to improve the performance of the Slowly Changing Dimension Transformation, see Data Flow Performance Features.

Risoluzione dei problemi relativi alla trasformazione Dimensione a modifica lentaTroubleshooting the Slowly Changing Dimension Transformation

È possibile registrare le chiamate eseguite dalla trasformazione dimensioni a modifica lenta in provider di dati esterni.You can log the calls that the Slowly Changing Dimension transformation makes to external data providers. Questa nuova funzionalità di registrazione può essere utilizzata per risolvere i problemi relativi a connessioni, comandi e query a origini di dati esterne eseguiti dalla trasformazione dimensioni a modifica lenta.You can use this logging capability to troubleshoot the connections, commands, and queries to external data sources that the Slowly Changing Dimension transformation performs. Per registrare le chiamate eseguite dalla trasformazione Dimensione a modifica lenta a provider di dati esterni, abilitare la registrazione dei pacchetti e selezionare l'evento Diagnostic a livello del pacchetto.To log the calls that the Slowly Changing Dimension transformation makes to external data providers, enable package logging and select the Diagnostic event at the package level. Per altre informazioni, vedere Risoluzione dei problemi relativi agli strumenti per l'esecuzione del pacchetto.For more information, see Troubleshooting Tools for Package Execution.

Configurazione della trasformazione Dimensione a modifica lentaConfiguring the Slowly Changing Dimension Transformation

È possibile impostare le proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set properties through SSISSSIS Designer or programmatically.

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:For more information about the properties that you can set in the Advanced Editor dialog box or programmatically, click one of the following topics:

Configurazione degli output della trasformazione Dimensione a modifica lentaConfiguring the Slowly Changing Dimension Transformation Outputs

Il coordinamento dell'aggiornamento e dell'inserimento dei record nelle tabelle delle dimensioni può risultare complesso, soprattutto se vengono utilizzate sia modifiche di tipo 1 che di tipo 2.Coordinating the update and insertion of records in dimension tables can be a complex task, especially if both Type 1 and Type 2 changes are used. SSISSSIS La finestra di progettazione offre due modi per configurare il supporto delle dimensioni a modifica lenta: Designer provides two ways to configure support for slowly changing dimensions:

  • Usare la finestra di dialogo Editor avanzato , in cui è necessario selezionare una connessione, impostare le proprietà di componenti comuni e personalizzati, scegliere le colonne di input e impostare le proprietà delle colonne dei sei output.The Advanced Editor dialog box, in which you to select a connection, set common and custom component properties, choose input columns, and set column properties on the six outputs. Per completare la configurazione del supporto di una dimensione a modifica lenta, è necessario creare manualmente il flusso di dati per gli output utilizzati dalla trasformazione Dimensione a modifica lenta.To complete the task of configuring support for a slowly changing dimension, you must manually create the data flow for the outputs that the Slowly Changing Dimension transformation uses. Per altre informazioni, vedere Flusso di dati.For more information, see Data Flow.

  • Utilizzare Caricamento guidato dimensione, che semplifica la configurazione della trasformazione Dimensione a modifica lenta e compila il flusso di dati per gli output della trasformazione.The Load Dimension Wizard, which guides you though the steps to configure the Slowly Changing Dimension transformation and build the data flow for transformation outputs. Per modificare la configurazione delle dimensioni a modifica lenta, eseguire nuovamente il Caricamento guidato dimensione.To change the configuration for slowly change dimensions, rerun the Load Dimension Wizard. Per altre informazioni, vedere Configurazione degli output tramite Configurazione guidata dimensioni a modifica lenta.For more information, see Configure Outputs Using the Slowly Changing Dimension Wizard.

Impostazione delle proprietà di un componente del flusso di datiSet the Properties of a Data Flow Component