執行多個資料表的累加式載入
在<利用異動資料擷取改善累加式載入>主題中,圖表會說明只在一個資料表上執行累加式載入的基本封裝。不過,載入一個資料表不如必須執行多個資料表的累加式載入那麼常見。
執行多個資料表的累加式載入時,會針對所有資料表執行一次某些步驟,而且必須針對每個來源資料表重複其他步驟。您在 Integration Services 中實作這些步驟時有一個以上的選擇。
使用父封裝和子封裝。
在單一封裝中使用多個資料流程工作。
[!附註]
若要查看可示範封裝內異動資料擷取之使用的完整端對端範例,請參閱 Codeplex 上的「指定之間隔的異動資料擷取封裝」範例和「自上次要求後的異動資料擷取封裝」範例 (英文)。
使用父封裝和多個子封裝載入多個資料表
您可以使用父封裝來執行僅需要執行一次的步驟。子封裝將會執行必須針對每個來源資料表執行的步驟。
建立父封裝,執行僅需要執行一次的步驟
建立父封裝。
在控制流程中,使用「執行 SQL」工作或 Integration Services 運算式來計算端點。
如需有關如何計算端點的範例,請參閱<指定變更資料的間隔>。
如果需要,使用「For 迴圈」容器延遲執行,直到所選期間的變更資料就緒為止。
如需此類「For 迴圈」容器的範例,請參閱<判斷變更資料是否就緒>。
使用多個「執行封裝」工作,針對每個要載入的資料表執行子封裝。使用「父封裝變數」組態,將父封裝中計算的端點傳遞到每個子封裝。
如需詳細資訊,請參閱<執行封裝工作>和<如何:在子封裝中使用父變數的值>。
建立子封裝來執行必須針對每個來源資料表執行的步驟
針對每個來源資料表建立子封裝。
在控制流程中,使用「指令碼」工作或「執行 SQL」工作來組合將用於查詢變更的 SQL 陳述式。
如需如何組合查詢的範例,請參閱<準備查詢變更資料>。
使用每個子封裝中的單一「資料流程」工作來載入變更資料,並將其套用到目的地。設定「資料流程」,如下列步驟所述:
在資料流程中,使用來源元件來查詢所選端點內之變更的變更資料表。
如需如何查詢變更資料表的範例,請參閱<擷取與了解變更資料>。
使用「條件式分割」轉換,將插入、更新與刪除導引到不同的輸出以便進行適當的處理。
如需如何設定此轉換以導引輸出的範例,請參閱<處理插入、更新與刪除>。
使用目的地元件,將插入套用到目的地。搭配參數化的 UPDATE 和 DELETE 陳述式使用「OLE DB 命令」轉換,將更新與刪除套用到目的地。
如需如何使用此轉換來套用更新與刪除的範例,請參閱<將變更套用到目的地>。
在單一封裝中使用多個資料流程工作來載入多個資料表
或者,您可以使用包含要載入的每個來源資料表之個別「資料流程」工作的單一封裝。
在單一封裝中使用多個資料流程工作載入多個資料表
建立單一封裝。
在控制流程中,使用「執行 SQL」工作或 Integration Services 運算式來計算端點。
如需有關如何計算端點的範例,請參閱<指定變更資料的間隔>。
如果需要,使用「For 迴圈」容器延遲執行,直到所選間隔的變更資料就緒為止。
如需此類「For 迴圈」容器的範例,請參閱<判斷變更資料是否就緒>。
使用「指令碼」工作或「執行 SQL」工作來組合將用於查詢變更的 SQL 陳述式。
如需如何組合查詢的範例,請參閱<準備查詢變更資料>。
使用多個「資料流程」工作,從每個來源資料表載入變更資料,並將其套用到目的地。設定每個「資料流程」工作,如下列步驟所述。
在每個資料流程中,使用來源元件來查詢所選端點內之變更的變更資料表。
如需如何查詢變更資料表的範例,請參閱<擷取與了解變更資料>。
使用「條件式分割」轉換,將插入、更新與刪除導引到不同的輸出以便進行適當的處理。
如需如何設定此轉換以導引輸出的範例,請參閱<處理插入、更新與刪除>。
使用目的地元件,將插入套用到目的地。搭配參數化的 UPDATE 和 DELETE 陳述式使用「OLE DB 命令」轉換,將更新與刪除套用到目的地。
如需如何使用此轉換來套用更新與刪除的範例,請參閱<將變更套用到目的地>。
|