Eseguire un caricamento incrementale di più tabelle

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

Il diagramma incluso nell'argomento Miglioramento dei caricamenti incrementali tramite Change Data Captureillustra un pacchetto di base che esegue un caricamento incrementale in un'unica tabella. Il caricamento di una tabella, tuttavia, non rappresenta un'operazione tanto comune quanto l'esecuzione di un caricamento incrementale di più tabelle.

Quando si esegue un caricamento incrementale di più tabelle, alcuni passaggi devono essere eseguiti una volta per tutte le tabelle, mentre altri passaggi devono essere ripetuti per ogni tabella di origine. Per implementare tali passaggi in Integration Services, sono disponibili più opzioni:

  • Utilizzare un pacchetto padre e più pacchetti figlio.

  • Utilizzare più attività Flusso di dati in un singolo pacchetto.

Caricamento di più tabelle tramite un pacchetto padre e più pacchetti figlio

È possibile utilizzare un pacchetto padre per i passaggi che devono essere eseguiti solo una volta. I pacchetti figlio verranno utilizzati per i passaggi necessari per ogni tabella di origine.

Per creare un pacchetto padre per l'esecuzione dei passaggi necessari solo una volta

  1. Creare un pacchetto padre.

  2. Nel flusso di controllo utilizzare un'attività Esegui SQL o espressioni di Integration Services per calcolare gli endpoint.

    Per un esempio di come calcolare gli endpoint, vedere Specificare un intervallo dei dati delle modifiche.

  3. Se necessario, utilizzare un contenitore Ciclo For per rimandare l'esecuzione fino a quando i dati delle modifiche per il periodo selezionato non saranno pronti.

    Per un esempio di un contenitore Ciclo For di questo tipo, vedere Determinare se i dati delle modifiche sono pronti.

  4. Utilizzare più attività Esegui pacchetto per eseguire pacchetti figlio per ogni tabella da caricare. Passare gli endpoint calcolati nel pacchetto padre a ciascun pacchetto figlio utilizzando le configurazioni Variabile pacchetto padre.

    Per altre informazioni, vedere Attività Esegui pacchetto e Utilizzare i valori di variabili e parametri in un pacchetto figlio.

Per creare pacchetti figlio per l'esecuzione dei passaggi necessari per ogni tabella di origine

  1. Creare un pacchetto figlio per ogni tabella di origine.

  2. Nel flusso di controllo utilizzare un'attività Script o un'attività Esegui SQL per assemblare l'istruzione SQL da utilizzare per eseguire una query per le modifiche.

    Per un esempio di come assemblare la query, vedere Preparare l'esecuzione di una query per i dati delle modifiche.

  3. Utilizzare una singola attività Flusso di dati in ogni pacchetto figlio per caricare i dati delle modifiche e applicarli alla destinazione. Configurare il flusso di dati come descritto nei passaggi seguenti:

    1. Nel flusso di dati utilizzare un componente di origine per eseguire una query sulle tabelle delle modifiche comprese tra gli endpoint selezionati.

      Per un esempio di come eseguire una query sulle tabelle delle modifiche, vedere Recuperare e comprendere i dati delle modifiche.

    2. Utilizzare una trasformazione Suddivisione condizionale per indirizzare inserimenti, aggiornamenti ed eliminazioni a output diversi per l'elaborazione appropriata.

      Per un esempio di come configurare questa trasformazione per indirizzare l'output, vedere Elaborare inserimenti, aggiornamenti ed eliminazioni.

    3. Utilizzare un componente di destinazione per applicare gli inserimenti alla destinazione. Utilizzare trasformazioni Comando OLE DB con istruzioni UPDATE e DELETE con parametri per applicare aggiornamenti ed eliminazioni alla destinazione.

      Per un esempio di come usare questa trasformazione per applicare aggiornamenti ed eliminazioni, vedere Applicare le modifiche alla destinazione.

Caricamento di più tabelle tramite più attività Flusso di dati in un singolo pacchetto

In alternativa, è possibile utilizzare un singolo pacchetto contenente un'attività Flusso di dati distinta per ogni tabella di origine da caricare.

Per caricare più tabelle utilizzando più attività Flusso di dati in un singolo pacchetto

  1. Creare un singolo pacchetto.

  2. Nel flusso di controllo utilizzare un'attività Esegui SQL o espressioni di Integration Services per calcolare gli endpoint.

    Per un esempio di come calcolare gli endpoint, vedere Specificare un intervallo dei dati delle modifiche.

  3. Se necessario, utilizzare un contenitore Ciclo For per rimandare l'esecuzione fino a quando i dati delle modifiche per l'intervallo selezionato non saranno pronti.

    Per un esempio di un contenitore Ciclo For di questo tipo, vedere Determinare se i dati delle modifiche sono pronti.

  4. Utilizzare un'attività Script o un'attività Esegui SQL per assemblare l'istruzione SQL da utilizzare per eseguire una query per le modifiche.

    Per un esempio di come assemblare la query, vedere Preparare l'esecuzione di una query per i dati delle modifiche.

  5. Utilizzare più attività Flusso di dati per caricare i dati delle modifiche da ogni tabella di origine e applicarli alla destinazione. Configurare ogni attività Flusso di dati come descritto nei passaggi seguenti:

    1. In ogni flusso di dati utilizzare un componente di origine per eseguire una query sulle tabelle delle modifiche comprese tra gli endpoint selezionati.

      Per un esempio di come eseguire una query sulle tabelle delle modifiche, vedere Recuperare e comprendere i dati delle modifiche.

    2. Utilizzare una trasformazione Suddivisione condizionale per indirizzare inserimenti, aggiornamenti ed eliminazioni a output diversi per l'elaborazione appropriata.

      Per un esempio di come configurare questa trasformazione per indirizzare l'output, vedere Elaborare inserimenti, aggiornamenti ed eliminazioni.

    3. Utilizzare un componente di destinazione per applicare gli inserimenti alla destinazione. Utilizzare trasformazioni Comando OLE DB con istruzioni UPDATE e DELETE con parametri per applicare aggiornamenti ed eliminazioni alla destinazione.

      Per un esempio di come usare questa trasformazione per applicare aggiornamenti ed eliminazioni, vedere Applicare le modifiche alla destinazione.