Definire un intervallo dei dati delle modifiche

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

Nel flusso di controllo di un pacchetto di Integration Services che esegue un carico incrementale dei dati delle modifiche, la prima attività consiste nel calcolare gli endpoint dell'intervallo di modifiche. Tali endpoint sono valori datetime e verranno archiviati in variabili del pacchetto per l'uso successivo nel pacchetto.

Nota

Per una descrizione del processo complessivo di progettazione del flusso di controllo, vedere Change Data Capture (SSIS).

Configurare le variabili del pacchetto per gli endpoint

Prima di configurare l'attività Esegui SQL per il calcolo degli endpoint, è necessario definire le variabili del pacchetto in cui verranno archiviati gli endpoint.

Per configurare le variabili del pacchetto

  1. In SQL Server Data Tools (SSDT) aprire un nuovo progetto di Integration Services.

  2. Nella finestra Variabili creare le variabili seguenti:

    1. Creare una variabile con il tipo di dati datetime per memorizzare il punto iniziale per l'intervallo.

      In questo esempio viene utilizzato il nome di variabile ExtractStartTime.

    2. Creare un'altra variabile con il tipo di dati datetime per memorizzare il punto finale per l'intervallo.

      In questo esempio viene utilizzato il nome di variabile ExtractEndTime.

Se si calcolano gli endpoint in un pacchetto master che esegue più pacchetti figlio, è possibile utilizzare le configurazioni Variabile pacchetto padre per passare i valori di tali variabili a ciascun pacchetto figlio. Per altre informazioni, vedere Attività Esegui pacchetto e Utilizzare i valori di variabili e parametri in un pacchetto figlio.

Calcolare un punto iniziale e un punto finale per i dati delle modifiche

Dopo avere configurato le variabili del pacchetto per gli endpoint dell'intervallo, è possibile calcolare i valori effettivi per tali endpoint ed eseguirne il mapping alle variabili del pacchetto corrispondenti. Poiché tali endpoint sono valori datetime, sarà necessario utilizzare funzioni in grado di calcolare o operare con valori datetime. Sia il linguaggio delle espressioni Integration Services sia Transact-SQL includono funzioni che usano valori datetime:

Funzioni nel linguaggio delle espressioni Integration Services che usano valori datetime

Funzioni in Transact-SQL che usano valori datetime
Funzioni e tipi di dati di data e ora (Transact-SQL).

Prima di usare una di queste funzioni datetime per calcolare gli endpoint, è necessario determinare se l'intervallo è fisso e si verifica regolarmente. In genere, le modifiche verificatesi nelle tabelle di origine vengono applicate alle tabelle di destinazione a intervalli regolari. Potrebbe essere necessario, ad esempio, applicare le modifiche su base oraria, giornaliera o settimanale.

Dopo avere determinato se l'intervallo di modifiche è fisso o più casuale, è possibile calcolare gli endpoint:

  • Calcolo della data e dell'ora di inizio. Utilizzare la data e l'ora di fine del caricamento precedente come data e ora di inizio correnti. Se si usa un intervallo fisso per i caricamenti incrementali, è possibile calcolare questo valore usando le funzioni datetime di Transact-SQL o del linguaggio delle espressioni Integration Services. In caso contrario, potrebbe essere necessario impostare la persistenza degli endpoint tra le esecuzioni e utilizzare un'attività Esegui SQL o un'attività Script per caricare l'endpoint precedente.

  • Calcolo della data e dell'ora di fine. Se si utilizza un intervallo fisso per i caricamenti incrementali, calcolare la data e l'ora di fine correnti come scostamento rispetto alla data e all'ora di inizio. Anche in questo caso, è possibile calcolare questo valore usando le funzioni datetime di Transact-SQL o del linguaggio delle espressioni Integration Services.

Nella procedura seguente l'intervallo di modifiche è un intervallo fisso e si presuppone che il pacchetto del caricamento incrementale venga eseguito ogni giorno senza eccezione. In caso contrario, i dati relativi alle modifiche per gli intervalli saltati andrebbero persi. Il punto iniziale per l'intervallo è costituito dalla mezzanotte del giorno precedente a ieri, ovvero tra le 24 e le 48 ore precedenti. Il punto finale per l'intervallo è costituito dalla mezzanotte di ieri, ovvero la notte precedente, tra le 0 e le 24 ore precedenti.

Per calcolare il punto iniziale e il punto finale per l'intervallo di acquisizione

  1. Nella scheda Flusso di controllo di SSIS Designer, aggiungere al pacchetto un'attività Esegui SQL Task.

  2. Aprire l'Editor attività Esegui SQL e, nell'pagina Generale dell'editor, selezionare le opzioni seguenti:

    1. Per il ResultSet, selezionare Riga singola.

    2. Configurare una connessione valida al database di origine.

    3. Per SQLSourceType, selezionare Input diretto.

    4. Per SQLStatementimmettere l'istruzione SQL seguente:

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,  
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime  
      
      
  3. Nella pagina Set di risultati dell'Editor attività Esegui SQL, associare il risultato ExtractStartTime alla variabile di pacchetto ExtractStartTime e il risultato ExtractEndTime alla variabile di pacchetto ExtractEndTime.

    Nota

    Quando si usa un'espressione per impostare il valore di una variabile in Integration Services, l'espressione viene valutata ogni volta che si accede al valore della variabile.

Passo successivo