指定變更資料的間隔

適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime

在執行累加式變更資料載入之 Integration Services 套件的控制流程中,第一個工作是計算變更間隔的端點。 這些端點是 datetime 值,而且將會以封裝變數儲存,以便稍後在封裝中使用。

注意

如需設計控制流程之完整程序的描述,請參閱異動資料擷取 (SSIS)

設定端點的封裝變數

設定「執行 SQL」工作以計算端點前,必須先定義儲存端點的封裝變數。

設定封裝變數

  1. 在 SQL Server Data Tools (SSDT) 中開啟新的 Integration Services 專案。

  2. [變數] 視窗中,建立下列變數:

    1. 建立具有 datetime 資料類型的變數,以保存間隔的起始點。

      這個範例會使用變數名稱 ExtractStartTime。

    2. 建立具有 datetime 資料類型的另一個變數,以保存間隔的結束點。

      這個範例會使用變數名稱 ExtractEndTime。

如果您要在主要封裝中,計算執行多個子封裝的端點,您可以使用「父封裝變數」組態,將這些變數的值傳遞到每個子封裝。 如需詳細資訊,請參閱 執行封裝工作在子封裝中使用變數和參數的值

計算變更資料的起始點和結束點

設定間隔端點的封裝變數後,您可以計算這些端點的實際值,然後將這些值對應到對應的封裝變數。 這些端點都是 datetime 值,因此您必須使用可以計算或處理 datetime 值的函數。 Integration Services 運算式語言和 Transact-SQL 都有可以處理 datetime 值的函數:

Integration Services 運算式語言中可處理 datetime 值的函數

在 Transact-SQL 中,使用 datetime 值的函數
日期和時間資料類型與函數 (Transact-SQL)

使用其中任何一個 datetime 函數計算端點前,您必須判斷間隔是否已經固定,而且是否定期發生。 一般而言,您會想要將來源資料表中發生的變更定期套用到目的地資料表。 例如,您可能會想要每小時、每天,或每週套用一次這些變更。

了解您的變更間隔是固定還是比較隨機後,您就可以計算端點:

  • 計算開始日期和時間。 您可以使用上次載入的結束日期和時間當做目前的開始日期和時間。 如果將固定間隔用於累加式載入,您可以使用 Transact-SQL 或 Integration Services 運算式語言的 datetime 函數來計算這個值。 否則,您可能需要保存執行之間的端點,並使用「執行 SQL」工作或「指令碼」工作來載入前一個端點。

  • 計算結束日期和時間。 如果您將固定間隔用於累加式載入,計算目前的結束日期和時間當做開始日期和時間的位移。 再次說明,您可以使用 Transact-SQL 或 Integration Services 運算式語言的 datetime 函數來計算這個值。

在下列程序中,變更間隔會使用固定間隔,並假設累加式載入封裝是每天執行而沒有例外。 否則,將會遺失遺漏間隔的變更資料。 間隔的起點是前天的午夜,也就是在前 24 到 48 小時之間。 間隔的結束點是昨天的午夜,也就是昨天晚上,前 0 到 24 小時之間。

計算擷取間隔的起點和結束點

  1. 在 SSIS Designer 的 [控制流程] 索引標籤上,將「執行 SQL」工作新增到套件中。

  2. 開啟 [執行 SQL 工作編輯器]然後在編輯器的 [一般] 頁面上,選取下列選項:

    1. 針對 [ResultSet],選取 [單一資料列]

    2. 將有效的連接設定到來源資料庫。

    3. 針對 [SQLSourceType],選取 [直接輸入]

    4. 針對 [SQLStatement],輸入下列 SQL 陳述式:

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,  
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime  
      
      
  3. [執行 SQL 工作編輯器][結果集]頁面上,將 ExtractStartTime 結果對應到 ExtractStartTime 封裝變數,並將 ExtractEndTime 結果對應到 ExtractEndTime 封裝變數。

    注意

    如果使用運算式來設定 Integration Services 變數的值,則每次存取變數的值時,就會評估該運算式。

後續步驟

計算變更範圍的起點和結束點後,下一個步驟是判斷變更資料是否就緒。

下一個主題:判斷變更資料是否就緒

另請參閱

在套件中使用變數
Integration Services (SSIS) 運算式
執行 SQL 工作
指令碼工作