Elaborazione di inserimenti, aggiornamenti ed eliminazioni
Nel flusso di dati di un pacchetto Integration Services che esegue un caricamento incrementale dei dati delle modifiche la seconda attività consiste nel separare inserimenti, aggiornamenti ed eliminazioni. Sarà quindi possibile utilizzare i comandi appropriati per applicarli alla destinazione.
[!NOTA]
La prima attività nella progettazione del flusso di dati di un pacchetto che esegue un caricamento incrementale dei dati delle modifiche consiste nel configurare il componente di origine che esegue la query per il recupero dei dati delle modifiche. Per ulteriori informazioni su questo componente, vedere Recupero e comprensione dei dati delle modifiche. Per una descrizione del processo complessivo per la creazione di un pacchetto che esegue un caricamento incrementale dei dati delle modifiche, vedere Miglioramento dei caricamenti incrementali tramite Change Data Capture.
Per esempi completi end-to-end che illustrano l'utilizzo del processo Change Data Capture nei pacchetti, vedere il pacchetto di esempio di un intervallo di tempo specificato in Change Data Capture e il pacchetto di esempio dall'ultima richiesta in Change Data Capture in Codeplex.
Associazione di valori descrittivi per separare inserimenti, aggiornamenti ed eliminazioni
Nella query di esempio che recupera i dati delle modifiche la funzione cdc.fn_cdc_get_net_changes_<capture_instance> restituisce solo la colonna di metadati denominata __$operation. Questa colonna di metadati contiene un valore ordinale che indica l'operazione che ha provocato la modifica.
[!NOTA]
Per ulteriori informazioni sulla query che utilizza chiamate alla funzione cdc.fn_cdc_get_net_changes_<capture_instance>, vedere Creazione della funzione per il recupero dei dati delle modifiche.
La creazione di una corrispondenza tra un valore ordinale e la relativa operazione non è altrettanto semplice quanto l'utilizzo di un tasto di scelta per l'operazione. "D" e "I", ad esempio, possono rappresentare in modo semplice rispettivamente un'operazione di eliminazione e un'operazione di inserimento. La query di esempio creata nell'argomento Creazione della funzione per il recupero dei dati delle modifiche esegue questa conversione da un valore ordinale a un valore stringa descrittivo restituito in una nuova colonna. Nel segmento di codice seguente viene illustrata tale conversione:
select
...
case __$operation
when 1 then 'D'
when 2 then 'I'
when 4 then 'U'
else null
end as CDC_OPERATION
Configurazione di una trasformazione Suddivisione condizionale per indirizzare inserimenti, aggiornamenti ed eliminazioni
Per indirizzare righe di dati delle modifiche a uno tra tre output diversi, la trasformazione Suddivisione condizionale rappresenta la soluzione ideale. La trasformazione controlla il valore della colonna CDC_OPERATION in ogni riga e determina se la modifica è un inserimento, un aggiornamento o un'eliminazione.
[!NOTA]
La colonna CDC_OPERATION contiene un valore stringa descrittivo derivato dal valore numerico presente nella colonna __$operation.
Per suddividere inserimenti, aggiornamenti ed eliminazioni per l'elaborazione tramite una trasformazione Suddivisione condizionale
Nella scheda Flusso di dati aggiungere una trasformazione Suddivisione condizionale.
Connettere l'output dell'origine OLE DB alla trasformazione Suddivisione condizionale.
In Editor trasformazione Suddivisione condizionale immettere le tre righe seguenti nel riquadro inferiore per designare i tre output:
Immettere una riga con la condizione CDC_OPERATION == "I" per indirizzare le righe inserite all'output per gli inserimenti.
Immettere una riga con la condizione CDC_OPERATION == "U" per indirizzare le righe aggiornate all'output per gli aggiornamenti.
Immettere una riga con la condizione CDC_OPERATION == "D" per indirizzare le righe eliminate all'output per le eliminazioni.
Passaggio successivo
Dopo avere suddiviso le righe per l'elaborazione, il passaggio successivo consiste nell'applicare le modifiche alla destinazione.
Argomento successivo:Applicazione delle modifiche alla destinazione
|