Condividi tramite


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é gli endpoint sono valori datetime , sarà necessario usare funzioni in grado di calcolare o usare 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 carichi incrementali, calcolare la data e l'ora di fine correnti come offset della data e dell'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 delle modifiche per gli intervalli in cui non viene eseguito il caricamento andranno perduti. 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 Progettazione SSIS aggiungere un'attività Esegui SQL al pacchetto.

  2. Nella pagina Generalein Editor attività Esegui SQL selezionare le opzioni seguenti:

    1. Per 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 dei risultati di Editor attività Esegui SQLeseguire il mapping tra il risultato di ExtractStartTime e la variabile del pacchetto ExtractStartTime e tra il risultato di ExtractEndTime e la variabile del 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.

Passaggio successivo

Dopo avere calcolato il punto iniziale e il punto finale per un intervallo di modifiche, il passaggio successivo consiste nel determinare se i dati delle modifiche sono pronti.

Argomento successivo:Come determinare se i dati delle modifiche sono pronti

Vedi anche

Uso di variabili nei pacchetti
Espressioni di Integration Services (SSIS)
Attività Esegui SQL
Attività Script