Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nel flusso di dati di un pacchetto di Integration Services che esegue un caricamento incrementale dei dati delle modifiche, la terza e ultima attività consiste nell'applicare le modifiche alla destinazione. È necessario un componente per applicare inserimenti, uno per applicare gli aggiornamenti e uno per applicare le eliminazioni.
Annotazioni
La seconda attività nella progettazione del flusso di dati di un pacchetto che esegue un caricamento incrementale dei dati delle modifiche consiste nell'separare inserimenti, aggiornamenti ed eliminazioni. Per altre informazioni su questo componente, vedere Elaborare inserimenti, aggiornamenti ed eliminazioni. Per una descrizione del processo complessivo di creazione di un pacchetto che esegue un caricamento incrementale dei dati delle modifiche, vedere Change Data Capture (SSIS).
Applicazione di inserti
Per applicare gli inserimenti, utilizzare una destinazione OLE DB perché le nuove righe non richiedono alcuna gestione speciale.
Per elaborare gli inserimenti utilizzando una destinazione OLE DB
Nella scheda Flusso di dati aggiungere una destinazione OLE DB.
Connettere l'output contenente gli inserimenti dalla trasformazione Split condizionale alla destinazione OLE DB.
Nella Editor destinazione OLE DB, sulla pagina Gestione connessione, selezionare le seguenti opzioni:
Selezionare o creare una gestione connessione OLE DB per il database di destinazione.
Selezionare un'opzione Modalità di accesso ai dati e quindi selezionare la tabella di destinazione o immettere un'istruzione SQL contenente le colonne di destinazione.
Nella pagina Mapping dell'editor eseguire il mapping delle colonne appropriate dai dati delle modifiche alla tabella di destinazione.
Applicazione degli aggiornamenti
Per applicare gli aggiornamenti, utilizzare una trasformazione Comando OLE DB. Questa trasformazione viene usata perché è necessario usare un'istruzione UPDATE con parametri per aggiornare una riga alla volta con i nuovi valori di colonna.
Annotazioni
È anche possibile usare i componenti di destinazione per applicare gli aggiornamenti. Quando si usa questo approccio, si usano i componenti di destinazione per salvare le righe in tabelle temporanee create a questo scopo. Quindi, utilizzi le attività Esegui SQL per eseguire operazioni di aggiornamento e eliminazione di massa sulla destinazione utilizzando le tabelle temporanee.
Per elaborare gli aggiornamenti tramite una trasformazione di comando OLE DB
Nella scheda Flusso di dati aggiungere una trasformazione Comando OLE DB.
Connettere l'output contenente gli aggiornamenti della trasformazione Suddivisione Condizionale alla trasformazione Comando OLE DB.
Nell'editor avanzato per OLE DB, nella scheda Gestore connessione, selezionare o creare un gestore connessione OLE DB per il database di destinazione.
Nell’Editor avanzato per il comando OLE DB, nella scheda Proprietà componente, immettere un’istruzione UPDATE con parametri per SqlCommand.
Ad esempio, un'istruzione UPDATE per una tabella Customer potrebbe avere la sintassi seguente:
update CDCSample.Customer set TerritoryID = ?, CustomerType = ?, rowguid = ?, ModifiedDate = ? where CustomerID = ?Nella scheda Mappatura colonne dell'editor, esegui la mappatura delle colonne appropriate dai dati delle modifiche ai parametri dell'istruzione UPDATE.
Applicazione di eliminazioni
Per applicare le eliminazioni, si utilizza una trasformazione Comando OLE DB. Questa trasformazione viene utilizzata perché è necessario utilizzare un'istruzione DELETE con parametri che elimina una singola riga alla volta in base al valore della colonna che identifica in modo univoco la riga.
Annotazioni
È anche possibile usare i componenti di destinazione per applicare le eliminazioni. Quando si usa questo approccio, si usano i componenti di destinazione per salvare le righe in tabelle temporanee create a questo scopo. Si utilizzano le attività Esegui SQL per eseguire operazioni di aggiornamento in blocco ed eliminazione in blocco sulla destinazione a partire dalle tabelle temporanee.
Per elaborare le eliminazioni tramite una trasformazione di Comando OLE DB
Nella scheda Flusso di dati aggiungere una trasformazione Comando OLE DB al flusso di dati.
Connettere l'output contenente le eliminazioni dalla trasformazione Suddivisione condizionale alla trasformazione Comando OLE DB.
Aprire l'Editor avanzato per configurare la trasformazione.
Nell'Editor avanzato per OLE DB, nella scheda Gestore connessione, selezionare o creare un gestore connessione OLE DB del database di destinazione.
Nel Editor avanzato per il comando OLE DB, nella scheda Proprietà componente dell'editor, immettere un'istruzione DELETE con parametri nella SqlCommand.
Ad esempio, un'istruzione DELETE per una tabella Customer potrebbe avere la sintassi seguente:
delete from Customer where CustomerID = ?Nella scheda Mapping colonne dell'editor eseguire il mapping della colonna appropriata dai dati delle modifiche al parametro nell'istruzione DELETE.
Ottimizzazione degli inserimenti e degli aggiornamenti tramite la funzionalità MERGE
È possibile ottimizzare l'elaborazione di inserimenti e aggiornamenti combinando alcune opzioni change data capture con l'uso della parola chiave MERGE Transact-SQL. Per altre informazioni sulla parola chiave MERGE, vedere MERGE (Transact-SQL).
Nell'istruzione Transact-SQL che recupera i dati delle modifiche, è possibile specificare tutti con merge come valore del parametro row_filter_option quando si chiama la funzione cdc.fn_cdc_get_net_changes_<capture_instance> . Questa funzione change data capture funziona in modo più efficiente quando non deve eseguire l'elaborazione aggiuntiva necessaria per distinguere gli inserimenti dagli aggiornamenti. Quando si specifica il valore del parametro tutto con merge, il valore __$operation dei dati delle modifiche è 1 per le cancellazioni, o 5 per le modifiche causate da inserimenti o aggiornamenti. Per altre informazioni sulla funzione Transact-SQL usata per recuperare i dati delle modifiche, vedere Recuperare e comprendere i dati delle modifiche. Dopo aver recuperato le modifiche con il parametro all with merge, è possibile applicare le eliminazioni e poi trasferire le righe rimanenti in una tabella temporanea o in una tabella di staging. In un'attività Esegui SQL downstream è quindi possibile usare una singola istruzione MERGE per applicare tutti gli inserimenti o gli aggiornamenti dalla tabella di staging alla destinazione.