Condividi tramite


Definizione di un intervallo dei dati delle modifiche

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'utilizzo 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 ulteriori 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 utilizzare funzioni in grado di calcolare o utilizzare valori datetime. Sia il linguaggio delle espressioni Integration Services che Transact-SQL dispongono di funzioni che utilizzano valori datetime:

Prima di utilizzare 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 utilizza un intervallo fisso per i caricamenti incrementali, è possibile calcolare questo valore utilizzando 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 tale valore utilizzando 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 Generale in 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 SQLStatement immettere 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 SQL eseguire 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 utilizza 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

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per i download, gli articoli, gli esempi e i video Microsoft più recenti, oltre alle soluzioni selezionate dalla community, visitare la pagina Integration Services sul sito MSDN:


Per ricevere notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Vedere anche

Attivitá

Utilizzo di variabili nei pacchetti

Espressioni di Integration Services (SSIS)

Concetti

Attività Esegui SQL

Attività Script