Applicare le modifiche alla destinazione

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Nel flusso di dati di un pacchetto di Integration Services che esegue un caricamento incrementale dei dati delle modifiche la terza e ultima attività consistono nell'applicare le modifiche alla destinazione. Sarà necessario un componente per applicare gli inserimenti, uno per applicare gli aggiornamenti e uno per applicare le eliminazioni.

Nota

La seconda attività nel progettare il flusso di dati di un pacchetto che esegue un caricamento incrementale dei dati delle modifiche consiste nel 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 inserimenti, è necessario utilizzare una destinazione OLE DB in quanto le nuove righe non richiedono alcuna gestione speciale.

Per elaborare gli inserimenti utilizzando una destinazione OLE DB

  1. Nella scheda Flusso di dati aggiungere una destinazione OLE DB.

  2. Collegare l'output che contiene gli inserimenti della trasformazione Suddivisione condizionale alla destinazione OLE DB.

  3. Nell'Editor destinazione OLE DB, nella pagina Gestione connessioni, selezionare le opzioni seguenti:

    1. Selezionare o creare una gestione connessione OLE DB per il database di destinazione.

    2. Selezionare un'opzione per Modalità di accesso ai dati e quindi selezionare la tabella di destinazione o immettere un'istruzione SQL contenente le colonne di destinazione.

  4. Nella pagina Mappings dell'editor, associare le colonne appropriate dei dati di modifica alla tabella di destinazione.

Applicazione di aggiornamenti

Per applicare aggiornamenti, è necessario utilizzare una trasformazione Comando OLE DB. Questa trasformazione viene usata perché è necessario usare un'istruzione con UPDATE parametri per aggiornare una riga alla volta con i nuovi valori di colonna.

Nota

Per applicare gli aggiornamenti, è inoltre possibile utilizzare componenti di destinazione. Quando si sceglie questo approccio, è necessario utilizzare i componenti di destinazione per salvare le righe in tabelle temporanee create allo scopo. Quindi, si utilizzano attività Esegui SQL per eseguire operazioni di aggiornamento ed eliminazione in blocco nella destinazione a partire dalle tabelle temporanee.

Per elaborare gli aggiornamenti utilizzando una trasformazione Comando OLE DB

  1. Nella scheda Flusso di dati aggiungere una trasformazione Comando OLE DB.

  2. Connettere l'output contenente gli aggiornamenti dalla trasformazione Suddivisione condizionale alla trasformazione Comando OLE DB.

  3. Nella scheda Gestione connessionein Editor avanzato per Comando OLE DB selezionare o creare una gestione connessione OLE DB per il database di destinazione.

  4. Nell'Editor avanzato per comando OLE DB, nella scheda Proprietà componente, per SqlCommand, immettere un'istruzione UPDATE parametrizzata.

    Ad esempio, un'istruzione UPDATE per una tabella Customer potrebbe avere la sintassi seguente:

    update CDCSample.Customer  
    set TerritoryID  = ?,  
        CustomerType  = ?,  
        rowguid  = ?,  
        ModifiedDate  = ?  
    where CustomerID = ?  
    
    
  5. Nella scheda Column Mappings dell'editor, associare le colonne appropriate dei dati di modifica ai parametri nell'istruzione UPDATE.

Applicazione di eliminazioni

Per applicare eliminazioni, è necessario utilizzare una trasformazione Comando OLE DB. Questa trasformazione viene usata perché è necessario usare un'istruzione con DELETE parametri che elimina una singola riga alla volta in base al valore della colonna che identifica in modo univoco la riga.

Nota

Per applicare le eliminazioni, è inoltre possibile utilizzare componenti di destinazione. Quando si sceglie questo approccio, è necessario utilizzare i componenti di destinazione per salvare le righe in tabelle temporanee create allo scopo. Quindi, si utilizzano le attività Esegui SQL per eseguire operazioni di aggiornamento in blocco e di eliminazione in blocco nella destinazione a partire dalle tabelle temporanee.

Per elaborare le eliminazioni utilizzando una trasformazione Comando OLE DB

  1. Nella scheda Flusso di dati aggiungere una trasformazione Comando OLE DB al flusso di dati.

  2. Connettere l'output contenente le eliminazioni dalla trasformazione Suddivisione condizionale alla trasformazione Comando OLE DB.

  3. Aprire l'editor avanzato per configurare la trasformazione.

  4. Nella scheda Gestione connessionein Editor avanzato per Comando OLE DB selezionare o creare una gestione connessione OLE DB per il database di destinazione.

  5. Nell'Editor avanzato per Comando OLE DB, nella scheda Proprietà componente dell'editor, per SqlCommand, immettere un'istruzione DELETE parametrizzata.

    Ad esempio, un'istruzione DELETE per una tabella Customer potrebbe avere la sintassi seguente:

    delete from Customer where CustomerID = ?  
    
    
  6. Nella scheda Mapping delle colonne dell'editor, associare la colonna appropriata nei dati delle modifiche al parametro nell'istruzione DELETE.

Ottimizzazione degli inserimenti e degli aggiornamenti mediante la funzionalità MERGE

È possibile ottimizzare l'elaborazione di inserimenti e aggiornamenti combinando determinate opzioni di Change Data Capture con l'uso della parola chiave Transact-SQL MERGE . Per altre informazioni sulla MERGE parola chiave, vedere MERGE (Transact-SQL).

Nell'istruzione Transact-SQL che recupera i dati delle modifiche, è possibile specificare all with merge come valore del parametro row_filter_option quando si chiama la funzione cdc.fn_cdc_get_net_changes_<capture_instance>. La funzione Change Data Capture ha maggiore efficacia quando non deve eseguire l'elaborazione aggiuntiva necessaria per distinguere gli inserimenti dagli aggiornamenti. Quando si specifica il valore di parametro all with merge , il valore __$operation dei dati delle modifiche è 1 per le eliminazioni e 5 per le modifiche prodotte da inserimenti o aggiornamenti. Per ulteriori informazioni sulla funzione Transact-SQL usata per recuperare i dati delle modifiche, vedere Recuperare e comprendere i dati delle modifiche. Dopo avere recuperato le modifiche con il valore di parametro all with merge, è possibile applicare le eliminazioni ed eseguire l'output delle righe rimanenti in una tabella temporanea o una tabella di staging. Quindi, in una successiva attività Esegui SQL, è possibile usare un'unica istruzione MERGE per eseguire tutti gli inserimenti o gli aggiornamenti dalla tabella di staging nella destinazione.