首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

InfoSphere Warehouse Design Studio 控制流實戰:有序執行多個 XML ETL 作業

     編輯:DB2 教學

前言

承接第一部分介紹的單一資料流,本文進一步說明如何利用控制流編排多個資料流,依據參考完整性約束按特定順序執行 ETL 作業,確保目標資料倉庫載入正確性。

場景與資料模型

源端為 TPOXADMIN.ACCOUNT 表的 XML 欄位 INFO,目標倉庫包含兩張表:

  • DWADMIN.ACCT:主鍵 ID,含 XML 欄位 FULLRECORD
  • DWADMIN.HOLDINGS:外鍵 ID 參照 ACCT,儲存投資明細

因外鍵約束,必須先載入 ACCT 再載入 HOLDINGS,故將原單一資料流拆分為兩個,再用控制流串聯。

資料流設計

資料流一:填充 ACCT 表(含聚合與 XML 保留)

用於填充混合型 DWADMIN.ACCT 表的數據流

  • Table Source 讀取源表
  • 兩個 XML Relational Mapping:
    – 上分支:擷取 ID 並保留完整 XML 記錄
    – 下分支:提取需聚合欄位送入 Group By
  • 以 ID Join 兩分支結果,產出 ACCT 載入集

資料流二:填充 HOLDINGS 表(直接映射)

用於填充 DWADMIN.HOLDINGS 表的數據流

  • 單一 XML Relational Mapping 直接將 XML 節點映射至 HOLDINGS 欄位

控制流編排

控制流

  1. 啟動 → 執行資料流一(ACCT)
  2. 成功(綠色對勾連接)→ 執行資料流二(HOLDINGS) → 結束
  3. 失敗(紅色 X 連接)→ Email 通知 → Fail 終止

逐步實作指南

步驟 1:準備 DB2 環境

下載 dwsetup2.zip,解壓後在 DB2 命令視窗執行:

db2 –td@ -vf DWsetup2.db2

腳本會建立源/目標表、主外鍵並填入範例 XML 資料。

步驟 2:準備 Design Studio 環境

參考第一部分完成專案建立與資料庫連線。

步驟 3:建立資料流一(ACCT)

  1. 複製第一部分完成的資料流,重命名
  2. 刪除 HOLDINGS 的 Table Target
  3. 編輯下分支 XML Relational Mapping:移除 SYMBOL、QTY 欄位定義(從 XML 節點提取的列定義)
  4. 同步修改 Result Columns(XML Relational Mapping 操作符產生的結果列)
  5. 右鍵選擇 Propagate Column Change
  6. 檢查 Group By 選擇清單已無 SYMBOL/QTY 相關運算式(修改後的 Group By 操作符選擇列表)
  7. 儲存,圖形應與資料流一一致

步驟 4:建立資料流二(HOLDINGS)

  1. 再次複製原資料流,重命名
  2. 僅保留:Table Source、HOLDINGS Table Target、對應的 XML Relational Mapping
  3. 編輯 Mapping:僅保留 id, holdingtype, symbol, qty 定義與輸出(XML Relational Mapping 操作符的列定義XML Relational Mapping 操作符的輸出)
  4. Propagate Column Change 並儲存

步驟 5:單獨測試兩資料流

在 Data Project Explorer 右鍵選擇 Validate → Debug/Execute,觀察每步輸出,忽略 DROP TABLE 警告。

步驟 6:建立控制流

  1. 右鍵 Control Flows 資料夾 → New Control Flow
  2. 從 Palette 拖入 Data Flows 圖示,連接 Start,屬性指向資料流一(通過編輯數據流操作符的屬性選擇所需的流)
  3. 再拖入第二個 Data Flows,放在右側,指向資料流二
  4. 拖入 End 置於最後
  5. 加入 Email(置於第一流下方),設定寄件/收件/主旨/內容(定義 Email 操作符的屬性)
  6. 加入 Fail 於 Email 右側
  7. 連線:
    – Start → 流一(無條件)
    – 流一成功(綠勾) → 流二(有條件)
    – 流二 → End(無條件)
    – 流一失敗(紅X) → Email → Fail(無條件)
  8. 檢查圖形與控制流圖一致

步驟 7:測試控制流

工具列 Validate → Debug/Execute,驗證執行順序與錯誤處理。

結語

控制流讓複雜 ETL 作業模組化、可重用、順序可控。結合 pureXML 處理能力,InfoSphere Warehouse 為混合型資料倉庫提供強大的 XML 整合方案。完整範例請見下載區。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved