Esecuzione di un caricamento incrementale di più tabellePerform an Incremental Load of Multiple Tables

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.In the topic, Improving Incremental Loads with Change Data Capture, the diagram illustrates a basic package that performs an incremental load on just one table. Il caricamento di una tabella, tuttavia, non rappresenta un'operazione tanto comune quanto l'esecuzione di un caricamento incrementale di più tabelle.However, loading one table is not as common as having to perform an incremental load of multiple tables.

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.When you perform an incremental load of multiple tables, some steps have to be performed once for all the tables, and other steps have to be repeated for each source table. Per implementare tali passaggi in Integration ServicesIntegration Services, sono disponibili più opzioni:You have more than one option for implementing these steps in Integration ServicesIntegration Services:

  • Utilizzare un pacchetto padre e più pacchetti figlio.Use a parent package and child packages.

  • Utilizzare più attività Flusso di dati in un singolo pacchetto.Use multiple Data Flow tasks in a single package.

Caricamento di più tabelle tramite un pacchetto padre e più pacchetti figlioLoading Multiple Tables by Using a Parent Package and Multiple Child Packages

È possibile utilizzare un pacchetto padre per i passaggi che devono essere eseguiti solo una volta.You can use a parent package to perform those steps that only have to be done once. I pacchetti figlio verranno utilizzati per i passaggi necessari per ogni tabella di origine.The child packages will perform those steps that have to be done for each source table.

Per creare un pacchetto padre per l'esecuzione dei passaggi necessari solo una voltaTo create a parent package that performs those steps that only have to be done once

  1. Creare un pacchetto padre.Create a parent package.

  2. Nel flusso di controllo utilizzare un attività Esegui SQL o espressioni Integration ServicesIntegration Services per calcolare gli endpoint.In the control flow, use an Execute SQL task or Integration ServicesIntegration Services expressions to calculate the endpoints.

    Per un esempio di come calcolare gli endpoint, vedere Specificare un intervallo dei dati delle modifiche.For an example of how to calculate endpoints, see Specify an Interval of Change Data.

  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.If needed, use a For Loop container to delay execution until change data for the selected period is ready.

    Per un esempio di un contenitore Ciclo For di questo tipo, vedere Determinare se i dati delle modifiche sono pronti.For an example of such a For Loop container, see Determine Whether the Change Data Is Ready.

  4. Utilizzare più attività Esegui pacchetto per eseguire pacchetti figlio per ogni tabella da caricare.Use multiple Execute Package tasks to execute child packages for each table to be loaded. Passare gli endpoint calcolati nel pacchetto padre a ciascun pacchetto figlio utilizzando le configurazioni Variabile pacchetto padre.Pass the endpoints calculated in the parent package to each child package by using Parent Package Variable configurations.

    Per altre informazioni, vedere Attività Esegui pacchetto e Usare i valori di variabili e parametri in un pacchetto figlio.For more information, see Execute Package Task and Use the Values of Variables and Parameters in a Child Package.

Per creare pacchetti figlio per l'esecuzione dei passaggi necessari per ogni tabella di origineTo create child packages to perform those steps that have to be done for each source table

  1. Creare un pacchetto figlio per ogni tabella di origine.For each source table, create a child package.

  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.In the control flow, use a Script task or an Execute SQL task to assemble the SQL statement that will be used to query for changes.

    Per un esempio di come assemblare la query, vedere Preparare l'esecuzione di una query per i dati delle modifiche.For an example of how to assemble the query, see Prepare to Query for the Change Data.

  3. Utilizzare una singola attività Flusso di dati in ogni pacchetto figlio per caricare i dati delle modifiche e applicarli alla destinazione.Use a single Data Flow task in each child package to load the change data and apply it to the destination. Configurare il flusso di dati come descritto nei passaggi seguenti:Configure the Data Flow as described in the following steps:

    1. Nel flusso di dati utilizzare un componente di origine per eseguire una query sulle tabelle delle modifiche comprese tra gli endpoint selezionati.In the data flow, use a source component to query the change tables for the changes that fall within the selected endpoints.

      Per un esempio di come eseguire una query sulle tabelle delle modifiche, vedere Recuperare e comprendere i dati delle modifiche.For an example of how to query the change tables, see Retrieve and Understand the Change Data.

    2. Utilizzare una trasformazione Suddivisione condizionale per indirizzare inserimenti, aggiornamenti ed eliminazioni a output diversi per l'elaborazione appropriata.Use a Conditional Split transformation to direct inserts, updates, and deletes to different outputs for appropriate processing.

      Per un esempio di come configurare questa trasformazione per indirizzare l'output, vedere Elaborare inserimenti, aggiornamenti ed eliminazioni.For an example of how to configure this transformation to direct output, see Process Inserts, Updates, and Deletes.

    3. Utilizzare un componente di destinazione per applicare gli inserimenti alla destinazione.Use a destination component to apply the inserts to the destination. Utilizzare trasformazioni Comando OLE DB con istruzioni UPDATE e DELETE con parametri per applicare aggiornamenti ed eliminazioni alla destinazione.Use OLE DB Command transformations with parameterized UPDATE and DELETE statements to apply updates and deletes to the destination.

      Per un esempio di come usare questa trasformazione per applicare aggiornamenti ed eliminazioni, vedere Applicare le modifiche alla destinazione.For an example of how to use this transformation to apply updates and deletes, see Apply the Changes to the Destination.

Caricamento di più tabelle tramite più attività Flusso di dati in un singolo pacchettoLoading Multiple Tables by Using Multiple Data Flow Tasks in a Single Package

In alternativa, è possibile utilizzare un singolo pacchetto contenente un'attività Flusso di dati distinta per ogni tabella di origine da caricare.Alternatively, you can use a single package that contains a separate Data Flow task for each source table to be loaded.

Per caricare più tabelle utilizzando più attività Flusso di dati in un singolo pacchettoTo load multiple tables by using multiple Data Flow tasks in a single package

  1. Creare un singolo pacchetto.Create a single package.

  2. Nel flusso di controllo utilizzare un'attività Esegui SQL o espressioni Integration ServicesIntegration Services per calcolare gli endpoint.In the control flow, use an Execute SQL Task or Integration ServicesIntegration Services expressions to calculate the endpoints.

    Per un esempio di come calcolare gli endpoint, vedere Specificare un intervallo dei dati delle modifiche.For an example of how to calculate endpoints, see Specify an Interval of Change Data.

  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.If needed, use a For Loop container to delay execution until the change data for the selected interval is ready.

    Per un esempio di un contenitore Ciclo For di questo tipo, vedere Determinare se i dati delle modifiche sono pronti.For an example of such a For Loop container, see Determine Whether the Change Data Is Ready.

  4. Utilizzare un'attività Script o un'attività Esegui SQL per assemblare l'istruzione SQL da utilizzare per eseguire una query per le modifiche.Use a Script task or an Execute SQL task to assemble the SQL statement that will be used to query for changes.

    Per un esempio di come assemblare la query, vedere Preparare l'esecuzione di una query per i dati delle modifiche.For an example of how to assemble the query, see Prepare to Query for the Change Data.

  5. Utilizzare più attività Flusso di dati per caricare i dati delle modifiche da ogni tabella di origine e applicarli alla destinazione.Use multiple Data Flow tasks to load the change data from each source table and apply it to the destination. Configurare ogni attività Flusso di dati come descritto nei passaggi seguenti:Configure each Data Flow task as described in the following steps.

    1. In ogni flusso di dati utilizzare un componente di origine per eseguire una query sulle tabelle delle modifiche comprese tra gli endpoint selezionati.In each data flow, use a source component to query the change tables for the changes that fall within the selected endpoints.

      Per un esempio di come eseguire una query sulle tabelle delle modifiche, vedere Recuperare e comprendere i dati delle modifiche.For an example of how to query the change tables, see Retrieve and Understand the Change Data.

    2. Utilizzare una trasformazione Suddivisione condizionale per indirizzare inserimenti, aggiornamenti ed eliminazioni a output diversi per l'elaborazione appropriata.Use a Conditional Split transformation to direct inserts, updates, and deletes to different outputs for appropriate processing.

      Per un esempio di come configurare questa trasformazione per indirizzare l'output, vedere Elaborare inserimenti, aggiornamenti ed eliminazioni.For an example of how to configure this transformation to direct output, see Process Inserts, Updates, and Deletes.

    3. Utilizzare un componente di destinazione per applicare gli inserimenti alla destinazione.Use a destination component to apply the inserts to the destination. Utilizzare trasformazioni Comando OLE DB con istruzioni UPDATE e DELETE con parametri per applicare aggiornamenti ed eliminazioni alla destinazione.Use OLE DB Command transformations with parameterized UPDATE and DELETE statements to apply updates and deletes to the destination.

      Per un esempio di come usare questa trasformazione per applicare aggiornamenti ed eliminazioni, vedere Applicare le modifiche alla destinazione.For an example of how to use this transformation to apply updates and deletes, see Apply the Changes to the Destination.