某跨國零售企業經營服飾、鞋履、配飾、家電、食品五大品類,歷經多年系統升級,遺留多套結構迥異的交易型資料庫與歷史備份。銷售管理層需分析多年銷售趨勢發掘獲利機會,資料架構師設計星型綱要數據倉庫 (圖 2),面臨核心難題:如何將零散、不一致的異構歷史資料高可靠地導入統一倉庫?
SQL Warehousing Tool (SQW) 隸屬 DB2 Warehouse Enterprise v9.1.1,採 Design Studio (客戶端/Eclipse 嵌入) + Admin Console (伺服器端/WebSphere 部署) 雙環境架構:
| 術語 | 定義 | 所屬環境 |
|---|---|---|
| Workspace | 本地專案目錄,單用戶獨佔 | Design Studio |
| Data Warehouse Project | 模型與流程集合,含多專案 | Design Studio |
| SQL Execution Database (SEDB) | SQL 執行中介資料庫 (必須為 DB2) | Design Studio |
| Dataflow | 來源→轉換→目標的有向無環圖,繫結 SEDB | Design Studio |
| Subflow | 可重用轉換邏輯片段,參數化來源/目標 | Design Studio |
| Control Flow | Dataflow 排程編排,整合 FTP/Command/Email/分支/迴圈 | Design Studio |
| Application | Control Flow 打包部署單元 (.zip) | 跨環境 |
| Process | Admin Console 中部署的 Application 執行單元 | Admin Console |
| Instance | Process 的具體執行實例 | Admin Console |
透過 JDBC 反向工程現有資料庫結構 (表/視圖/函數),或從頭建模。模型為 SQW 可操作對象,支援用戶修改後同步資料庫結構。支援多種 RDBMS (DB2 系列、Oracle、SQL Server、Informix 等)。
GUI 拖曳設計轉換步驟 (來源/目標/轉換算子)。執行時生成 Java 代碼 (清單 1),基本單元為 SQL Unit:包含 SQL 語句、TRY/CATCH/FINALLY、屬性定義。每個 SQL Unit 對應唯一 Node 名稱,支援以 Node 為最小粒度除錯。範例片段:
EPGTXN ( ) : type TXN : node /graph12 (db connection = [SALES])
{
( ):CODE_UNIT, node /graph12/node9;
CODE_UNIT:JDBC ( ) { CREATE TABLE SQWTMP_1_INPUT2_017( COL_1 DATE, COL_2 VARCHAR(15), ... ) }
( ):CODE_UNIT, node /graph12/node12; ...
}
序列化多個 Dataflow,整合 FTP 檔案傳輸、Shell 命令、Email 通知、條件分支、迴圈迭代器。生成代碼不含 SQL (清單 2),同樣以 Node 為除錯單位:
CODE_UNIT:SHELL (OperatorTag=/flow:06/op:02, OperatorLabel=DB2_Shell_02, ...)
commandType = DB2Shell, logLevel = 0, traceLevel = 0 ...
驗證無誤後,一鍵生成 .zip 部署包,完成 Design Studio 端工作。
用戶 HTTP 請求 → WAS HTTP Server → DWE Admin Console → 調用 WAS Scheduler/MBean/JNDI/Security → DB2 持久化/查詢。提供企業級安全性、穩定性、擴展性。
| 角色 | 權限範圍 |
|---|---|
| Administrators | 建立資料源/系統資源、部署應用 |
| Managers | 執行/監控 Process、建立 Profile、排程 Process |
| Operators | 執行/監控 Process,權限低於 Managers |
存取 URL:https://ip:9080/dweadm
SQW 以 Eclipse 為開發基座、WebSphere 為運行基座,構建「設計一次、部署多處、排程自動、全程可控」的現代化 ETL 平台,是 DB2 Warehouse 體系中實現異構資料高可靠整合的核心引擎。