簡介
在本文中,您將使用 IBM® WebSphere® Transformation Extender (TX) 資源適配器檢索並路由數據。適配器提供對數據庫、文件、消息傳遞系統、企業應用程序和其他數據源和目標的訪問。本文主要介紹其中一個資源適配器 Database Adapter,並同時展示如何使用 WebSphere TX Design Studio 和 Database Interface Designer。
先決條件
本文針對 WebSphere TX 初級和中級用戶。您應該已經安裝了以下軟件:
WebSphere TX V8.2
DB2
在本文結尾處,您可以 下載 一個名為 SchemaQuerIEs.zip 的文件,該文件包含創建本文使用的樣例 DB2 數據庫的命令。
1. 連接到數據庫
開始之前,在一個 DB2 命令服務器上執行 SchemaQuerIEs.zip 文件中的命令。執行這些命令將在 DB2 中創建一個名為 ADMINREG 的數據庫,該數據庫帶有表 User、 UserGroup 和 Group。類型樹是定義輸入和輸出數據的格式的數據定義文件。由於輸入數據從 ADMINREG 中的 User 表獲取,因此需要一個定義該表中的數據的類型樹。類型樹可以從 Database Interface Designer 中的數據庫、查詢、存儲過程或視圖自動生成。我們將對輸入和輸出使用相同的類型樹。
1.1. 測試到現有數據庫的連接
打開 Database Interface Designer:Start => WebSphere Transformation Extender V8.2 => Design Studio => Database Interface Designer。
右鍵單擊 Database Interface Designer 導航器中的 Database/Query Files,選擇 New Database/Query File。將其命名為 Database_QueryFile1。
右鍵單擊 Databases 並選擇 New。
在 Database Definition 對話框中,輸入 ADMINREG 作為數據庫名。
在 Adapter 中,選擇 DB2 作為 database Type,選擇 Microsoft Windows 作為 Platform。WebSphere TX 提供幾個數據庫適配器,包括 Oracle、MS SQL Server、Sybase、Informix 等。在本文中,您將使用 DB2 數據庫適配器。
圖 1. 選擇數據庫適配器
擴展 Data Source 選項。
Database interface Designer 選項指定要訪問的數據庫。從下拉列表中選擇 ADMINREG。
Runtime 選項指定在映射時從 Map Designer、Command Server 或 Launcher 訪問的數據庫。本文的運行時和開發數據源相同,所以選擇 ADMINREG。
擴展 Security 選項。這些選項指定連接到數據庫實例的用戶 ID 和密碼。輸入您的 DB2 用戶 ID 和密碼。
單擊 OK 保存數據庫連接信息。Database Definition 窗口看起來應該如圖 2 所示。
圖 2
測試這個連接:
在 Database Interface Designer 導航器中,右鍵單擊 Tables 並選擇 Generate Tree。
如果打開一個帶選項的對話框,則說明已經建立一個連接。
如果沒有打開一個帶選項的對話框,則說明沒有建立連接。檢查 Security Information 以確認連接:
圖 3. 從 Tables 向導生成類型樹
查看 ADMINREG 中的表 User、Group 和 UserGroup。
關閉 Generate Tree 對話框並將該 Database Query File 保存為 Database_QueryFile1.mdq,下一小節將使用這個文件。
1.2. 從數據庫表生成類型樹
類型樹可以從數據庫、查詢、已存儲過程或視圖自動生成。在上一小節中,您建立了一個到數據庫的連接,現在您可以重用這個連接生成一個類型樹。
為 USER 表生成一個類型樹
在 Database Interface Designer 中,右鍵單擊導航器中的 Tables 並選擇 Generate Tree。
從 Tables 對話框中選擇 USER。
File Name 字段指定要創建的類型樹的名稱。輸入 Database_QueryFile1.mtt。
通過選擇 Overwrite file 或 Replace existing types,Type 選項允許您替換一個現有類型樹文件,並通過選擇 Override type 添加新類型。由於您要創建一個新的類型樹,因此將 Type 選項更改為 Overwrite file。
為一個數據庫表生成類型樹時,Database Interface Designer 將自動定義一個名為 Row 的組。Row 組格式下拉列表用於指定該組的格式,可以指定為定界格式或固定格式。對於這個練習,保留默認值。
可以指定 Group 選項,比如記錄的每個字段之間的分隔符、每條記錄的結束符等。
Represent date/time columns as text items 選項允許控制日期和時間數據類型在類型樹中的創建方式。如果選擇這個選項,定義為 Date 數據類型的數據庫列在類型樹中定義為一個字符文本字符串。
Treat text items as: 選項允許將語言指定為 English (Western) 或 Japanese,如果您安裝的是 Design Studio 的國際版的話。將這個選項設置為 Western 並單擊 Generate。Database Interface Designer 將創建一個對應於 USER 表的類型樹並顯示通知消息。
圖 4. 從一個表生成類型樹
單擊 Close 關閉窗口。這個對話框提供已創建數據類型的概覽。
1.3. 在 Database Interface Designer 中啟用跟蹤功能
跟蹤功能提供關於數據庫連接的信息。在生成類型樹時,如果啟用了跟蹤功能,Database Interface Designer 將自動創建一個跟蹤文件。跟蹤文件保存在 database/query 文件所在的目錄中,文件名為 database/query 文件的完整名稱加上擴展名 .dbl。例如,如果 database/query 文件名為 Orders.mdq,則跟蹤文件的名稱為 Orders.dbl。要使用跟蹤功能,在 Database Interface Designer 中啟用跟蹤工具,如圖 5 所示。
圖 5. Database Interface Designer 中的跟蹤工具
1.4. 為查詢生成類型樹
類型樹可以從數據庫、查詢、存儲過程或視圖中自動生成。在前面的小節中,您創建了一個數據庫連接,現在您可以重用該連接從一個查詢生成一個類型樹。
創建一個引用數據庫中的 USER 表的簡單查詢
在 Database Interface Designer 中,右鍵單擊 Navigator 中的 QuerIEs 並選擇 New。
查詢名稱惟一地標識查詢。輸入 MyUserQuery。
在 Query 窗口中輸入以下 SQL 語句:Select * from USER,該語句將選擇 USER 表的所有列。
單擊 OK。查詢名稱將出現在 QuerIEs 副標題下的 Navigator 中。
生成如圖 6 所示的類型樹。
圖 6. 為一個查詢生成類型樹
Generate Tree 對話框與從一個表生成類型樹時一樣。
生成類型樹並將其保存為 MyUserQuery.mtt。下一小節的映射將使用這個類型樹。
右鍵單擊並保存文件 Database_QueryFile1.mdq。
2. 在 WebSphere TX Design Studio 中開發映射
在這個部分中,您將使用第 1 部分生成的 MyUserQuery.mtt 類型樹和 Database_QueryFile1.mdq 文件從 USER 表獲取記錄並將記錄寫入一個平面文件。您將把這種類型映射到輸入卡中的輸入源。
2.1. 啟動 WebSphere TX Design Studio 並創建一個 Extender 項目
由於您必須使用映射和轉換,啟動 WebSphere TX Design Studio:選擇 Start => IBM WebSphere Transformation Extender => Design Studio => Design Studio。選擇一個工作空間並關閉 Welcome 視圖。如圖 7 所示創建一個 Extender 項目:
圖 7. 創建一個 Extender 項目
輸入項目名 SampleProject 並單擊 Finish。一個項目將被添加到您的工作空間中。
2.2. 准備映射和轉換
在這個小節中,您首先要創建映射源文件,它是您的映射的占位符;然後要在這個映射源文件中創建可執行映射。可執行映射可以擁有一個或多個輸入和輸出卡。在輸入卡中配置輸入類型樹和適配器設置,在輸出卡中配置輸出卡和適配器設置。然後,執行映射操作,構建和運行映射來檢查結果。在您的工作目錄中創建一個新的映射源文件,將其命名為 MyFirstMap.mms。右鍵單擊您的 SampleProject 中的 Map Files 文件夾並選擇 New => Map Source。
圖 8. 創建新的映射源文件
在 Design Studio 的概覽視圖中右鍵單擊映射源文件並添加一個名為 DatabaseMap 的新映射。
添加輸入卡
添加一個名為 MyDBCard 的輸入卡。
選擇 MyUserQuery.mtt,這是從查詢創建的類型樹,將 Type 選擇為 DBSelect(如圖 9 所示),因為這個組代表整個表而不是一條記錄。如果您需要轉換單個記錄,那麼選擇組 Row。
圖 9. 創建一個輸入卡
將 Source 設置更改為適配器數據庫,原因是您將從那個數據庫獲取輸入信息。
將正在使用的數據類型指定為數據源。當您將 Source 設置更改為 Database 時,DatabaseQueryFile 設置出現在輸入卡中。
File 設置指定 database/query 文件(.mdq),該文件包含查詢的定義。選擇 Database_QueryFile1.mdq 作為 File 設置。
數據庫下拉列表自動更新為顯示在選中文件中定義的所有數據庫。ADMINREG 是文件 Database_QueryFile1.mdq 中定義的惟一數據庫,因此它自動選中為數據庫。
Query 設置指定作為數據源使用的查詢。如果選中數據庫中定義了多個查詢,將顯示一個所有查詢的下拉列表。選擇 MyUserQuery 作為 Query。
單擊 OK 保存設置。這個輸入卡如圖 10 所示:
圖 10. 輸入卡設置
添加輸出卡
添加一個名為 OutputCard 的輸出卡。
選擇 MyUserQuery.mtt 作為 Type 樹,選擇 DBSelect 作為 Type。
選擇 Target 作為 File adapter,因為輸出將被寫入一個文本文件中。指定路徑為 c:/Mytestfile.txt,單擊 OK 保存。
2.3. 構建並運行映射
現在您已為映射創建了輸入和輸出卡,已經准備好進行轉換了。將組 MYDBCard 從輸入卡拖放到輸出卡組規則列。
圖 11. 映射輸入和輸出
右鍵單擊概覽視圖中的映射,單擊 Build 編譯映射。然後右鍵單擊映射並單擊 Run。您應該得到消息:Map completed successfully。
圖 12. 運行映射
測試結果
右鍵單擊概覽視圖中的映射並單擊 Run results,選擇結果文件並單擊 OK。您將看到,Design Studio 中有一個 Mytestfile.txt 文件,這表明來自 USER 表的記錄已經被轉換為一個文本文件,如圖 13 所示。
圖 13. Run Results 視圖
來自 USER 表的記錄在運行時被轉換為一個文本文件。
結束語
本文介紹了 WebSphere TX 資源適配器和 WebSphere TX Database Interface Designer,展示了如何使用 WebSphere TX 輕松連接到一個數據庫,通過從數據庫獲取數據執行轉換。本文還展示了如何在 Database Interface Designer 中啟用跟蹤功能,介紹了類型樹和映射等 Design Studio 基礎特性。
注意:
開始本教程之前,執行這些模式查詢以在 DB2 中創建一個數據庫。
本文示例源代碼或素材下載