建立用於處理 BAM 數據的自定義 DTS 工作最簡單的方式,是從 BAM 自動產生的封裝開始,並取代所有實際數據處理。
建立自定義 DTS 工作
建立需要 OLAP Cube 的 BAM 定義。 例如,使用 Excel 精靈,並將一個數據透視表®保留為非 RTA 檢視。
開啟由 BAM 建立的進行 Cube 處理的 DTS 套件。 BAM 會為每個檢視建立一個這類套件,稱為 BAM_AN_<View Name>。
在 DTS 設計工具中開啟套件,並移除前兩個步驟和最後一個步驟以外的所有步驟。 您也可以保留與主要匯入資料庫的連線。
編輯第一個 ActiveX® 工作的屬性。 拿掉包含 DTSGlobalVariables.Parent.Steps 的所有行,因為它們參考已刪除的步驟。 文稿的開頭為:
serverName = "<your server here>" databaseName = "<your analysis database here>" cubeName = "<your cube name here>"備註
工作「開始數據分析」(專案中的第二個工作)非常重要,因為它為整個套件帶來關鍵的貢獻:
- 用於增量處理已完成活動的滾動視窗(名為 bam_(BamView)_View(Activity)_CompletedInstancesWindow 的動態 SQL 視圖)
- 正在進行中的活動快照 - 名為 bam_(BamView)_View(Activity)_ActiveInstancesSnapshot 的資料表。
- 用於增量處理已完成活動的滾動視窗(名為 bam_(BamView)_View(Activity)_CompletedInstancesWindow 的動態 SQL 視圖)
取得短暫交易中的視圖和數據表,在此期間您不插入任何數據,以便數據能夠代表主匯入資料庫的即時快照。 實作一或多個步驟,將檢視和資料表作為輸入數據以執行實際的數據轉換。 如果分析任務的目的不是填滿 OLAP Cube,請記得在作業最後提交時保留時間戳記錄,並將第一個 ActiveX 工作替換為將此時間戳分配給全域變數“CompletedCubeLastProcessTime”的程式代碼。 第二個工作會使用此變數來確保不會有遺漏的資料,並且在 DTS 套件發生當機和重新啟動時,沒有任何資料會被處理兩次。
最後,您必須呼叫最後一個工作,也就是「結束數據分析」。 此工作會釋放已完成且已處理的活動,以便一旦超出線上窗口後,將其封存並從主要匯入中移除。