自從主數據庫管理系統中引入了本機 XML 支持之後,使用這種流行格式的業務信息量直線上升。原因非常簡單:無論是用作行業標准的數據交換格式還是應用程序開發人員之間的交換格式,XML 都是無與倫比的。大部分行業都開始使用 XML 開發數據交換的標准,有些 XML 標准(比如用於業務數據和財務數據的可擴展業務報告語言,XBRL)已經在所有行業廣為流傳。
但是由於最初存儲和管理 XML 格式信息的比較困難,XML 十年的飛速發展期幾近停滯。這是因為公司在開發應用程序存儲或檢索 XML 數據的時候,往往使用他們現有的基礎設施,包括文件系統和關系數據庫。而這些系統不是針對 XML 設計的,得到的解決方法往往需要昂貴的轉換,處理開銷非常大。有些公司嘗試使用純 XML 數據庫,卻發現在存儲庫中隔離 XML 數據會創建另一個需要單獨維護的系統。
IBM 在 DB2 中構建了本機 XML 支持,支持使用本機格式以及關系格式的數據存儲和管理 XML,從而解決了這些困難。該 XML 功能名為 DB2 pureXML,可以縮短開發時間、降低維護成本、在存儲和檢索數據時極大地改進應用程序性能。
本機 XML 的好處
使用本機格式存儲 XML 數據的理由很多,如以下客戶場景所示。
簡化 IT 環境。通過使用 DB2 pureXML,挪威一家金融服務公司 Storebrand Group 將讀寫數據庫所需的代碼行減少了 65% 。由於開發、測試和維護的代碼大大減少,開發人員可以將精力花在更具生產力的任務上。此外,Storebrand 發現模式更改現在變得很容易。過去,添加一個字段需要花費一整天的工作(開發和測試),還需要一個星期的時間來實現,因為涉及到數據庫更改。現在,開發人員只需要更改指向 DB2 XML 配置文件中模式的指針即可,而這只需要 5 分鐘。
在本地存儲選項出現之前為處理 XML 創建了臨時解決方案,這導致以前對模式更改需要花費很多工作。一種稱為 “切割(shredding)” 或 “分解(decomposition)” 的方法可以將 XML 映射到表格格式。另一種方法是將 XML 數據放入到一個表格的大對象 (LOB) 中。這兩種方法都是有效的,但有一個很大的缺陷,這個缺陷在 XML 數據增多時尤其明顯。
切割是一種常用的方法,可以快速從數據庫中檢索單片信息。但是,這種快速查詢性能必須將 XML 數據映射到表格才能實現,此外還有將信息插入數據庫相關的處理開銷。如果必須從切割的字段重新創建原 XML 數據,那麼成本還將上升。
在切割 XML 之前,必須設計關系模式。該過程需要大量員工,雖然部分流程可以使用現成的工具自動完成。但是,得到的表格必須經過仔細的檢查和優化。設計關系模式之後,必須設置將 XML 映射到關系模式的環境。然後開發和測試使用數據的代碼(該代碼通常很復雜,因為它需要使用多個 JOIN 連接的臃腫的 SQL 語句)。
將 XML 數據分割到關系模式的開銷還僅僅是整個成本的一部分。 XML 模式更改是無法改變的事實,這會擾亂關系模式、映射流程和應用程序代碼。這是許多組織采用 DB2 pureXML 存儲實現的原因。
舉一個實例來說明,請考慮用於復雜金融產品的金融產品標記語言 (FpML) 行業標准。使用 DB2 pureXML,處理 FpML 消息簡單直接:只需在一個表格的 XML 列中存儲完整的消息即可。但是,在某些實現中,使用切割存儲 FpML 需要處理 475 個彼此隔離的數據庫表格。維護 475 個表格比管理一個表格要復雜的多。
大大提高 IT 生產力。UCLA Medical Center 使用 DB2 pureXML 管理病人醫療記錄、診斷圖甚至手寫的處方。醫院員工將信息插入 Patient OrIEnted Document 系統,該系統使醫生可以快速訪問信息,以確保高質量的醫護服務。通過使用 DB2 pureXML,UCLA 大大提高了生產力:某些 IT 項目所需的時間從幾周減少到幾個小時。
使用 DB2 pureXML 存儲庫的有點之一是,在存儲或檢索之前數據不需要特別處理或轉換。 XML 直接存儲在存儲庫中,可從同一個位置檢索。處理 XML 數據的簡單方式減少了許多通用任務所需的時間。此類時間節省在如今 IT 環境中的價值越來越大。
改進信息整合。中國華電公司 (CHD) 管理著 100 多個公共事業和金融服務公司,它使用 DB2 9 創建了靈活的數據分析和報告系統。該系統管理著來自各個設施的數據,並移除和添加資產。每個 CHD 分支的報告數據都存儲在 DB2 pureXML 中。 DB2 pureXML 適應各種模式和報表格式,同時使各組織的數據變得可訪問,這改進了業務和 IT 職員之間的交流。 DB2 pureXML 使它能夠輕松添加、更新和刪除報告的項。詳細的生產和成本信息可以使用公司的分析和報告應用程序進行整合和顯示。
集成各業務單位和位置的信息可能很困難。一個靈活、自動化、可擴展的信息報告平台使該流程變得更易於管理。通過構建一個更好的信息報告系統,CHD 使業務更具洞察力和敏捷。它還降低了實現應用程序更改的成本和勞動力,提高了對法規和管理報告需求更改的響應。
支持 XML 模式靈活性和升級。評估從屬於 XML 模式的 XML 存儲選項時還要考慮一個問題,即定義 XML 數據的結構。 XML 模式描述數據中出現的 XML 元素和屬性,它們出現的地方以及出現的頻率。驗證 XML 數據意味著確保在 XML 模式中設置遵守規則的 XML 數據。
XML 模式定義特定應用程序場景(比如金融交易、醫療記錄、保險索賠)所用的協商 XML 標記詞匯。但是該詞匯表和它所支持的應用程序場景可以隨時更改,因此模式靈活性和模式升級非常重要。為了解釋這些特性的必要性,讓我們看一組場景。
在美國,許多稅務機關都以 XML 格式存儲稅收表格中的信息。稅收表格幾乎每年都會變化,更改稅收表格意味著要更改 XML 模式。但新的模式不一定適用於所有的記錄。相反,在創建記錄時,記錄應該基於現有的模式進行驗證。在這種情況下,模式靈活性(即適應各種 XML 模式需求的能力)將非常重要。應用程序必須能夠根據不同的模式驗證數據庫列中的單元格(或者根本不驗證)。
另一個常見的場景涉及到存儲遵從某個主要 XML 行業標准的消息(例如,醫療健康標准 HL7 或 FpML)。行業標准不斷變化;遷移到新版的 XML 標准往往意味著需要新的 XML 模式。
如果數據庫管理系統支持遷移到新模式而不需要驗證或更改整個現有的 XML 文檔,那麼遷移到新版的 XML 標准會更加簡單。例如,如果數據必須遵守新的 XML 標准,那麼數據庫管理系統應該確保現有數據(通常根據舊版標准的 XML 模式進行驗證)也遵守新的 XML 模式。這種數據服務器特性稱為兼容模式升級。 [ 注意:不兼容模式升級也是可能發生的 ] 。 DB2 pureXML 使處理 XML 模式靈活性和 XML 模式升級變得很容易。
新的業務語言
盡管 XML 一度被視為很難處理,但它還是成為了業務流程的關鍵元素,XML 數據量每天都在增長。 DB2 pureXML 保留了應用程序喜歡的 XML 特性,同時避免了曾經限制其發展的笨拙、復雜的技術。得到的是一個更加靈活、高效的 IT 環境,可以快速適應不斷變化的業務需求和機會。
附錄
完整的 XML 工具箱
DB2 pureXML 是 XML 數據持久性的一次飛躍。由於 pureXML,許多組織在性能和生產力方面都有了極大的提高。
盡管如此,在存儲 XML 數據時,pureXML 只是工具箱中的一個工具而已。 DB2 pureXML 可能是最重要的工具,但有時其他在 DB2 中存儲 XML 的方法可能會更好。有時,最好以 CLOB 或 BLOB 形式存儲 XML 數據;有時使用切割更好。
IBM 的 Conor O'Mahoney 是 Native XML Databases 博客背後的一支創造性力量,介紹如何利用各種選項,並提供了何時使用哪個選項的清晰說明,最新文章可訪問 ibmdatabasemag.com/db_area/archives/2009/1 。
管理海量 XML 數據
XML 實際上已經成為數據交換、面向服務模式 (SOA) 和基於消息的事務處理的標准。公司在積累大量 XML 數據時,他們需要一種有效的方式來存儲、編排索引、查詢、更新和驗證 XML 文檔。 DB2 pureXML 提供了解決這種挑戰的功能。通過業內第一個 TB XML 數據基准測試,Intel 和 IBM 聯合起來演示了 XML 超強的處理能力。
基准測試
TPoX (Transaction Processing over XML, http://tpox.sourceforge.Net) 是一個開源應用程序級別的 XML 數據庫基准測試,可以模擬財務應用程序場景。在線經紀系統中客戶信息、賬戶和證券買賣訂單都使用 XML 格式顯示。 1TB 的基准縮放比例由 36000 萬個 XML 賬戶組成。在 OLTP 工作負載下,200 個並發用戶執行 70% 的混合 SQL/XML 查詢和 30% 的插入、更新和刪除操作,沒有延遲。
測試系統為 Intel Xeon Processor 7400 SerIEs 服務器,運行 64 位 Linux 和 DB2 9.5 Fixpack 2 。系統有 4 個 6 核 CPU,時鐘速度為 2.67 GHz 。該系統的內存 64GB,有 135 個磁盤,該配置很適合目標工作負載。 DB2 數據庫使用 16K 頁面大小、自動存儲、自動調優,所有內存和配置參數都設置為自動。 XML 內聯和壓縮對於降低 1TB 原始 XML 數據的存儲占用量很關鍵。所有系統配置和測試都由 Intel 在 Intel 實驗室完成。
評分
組好數據庫之後,DB2 壓縮將 1TB 的原始數據減少了 64% 。這種壓縮可以避免 I/O 瓶頸,實現足夠的緩沖池命中率。在該數據庫中,混合 TPoX 工作負載實現了每秒 6,763 事務的峰值吞吐量。其他測試檢查了插入性能的增加。向組合數據添加更多的 XML 文檔時發現吸收率為 ~100GB/ 小時,最高為每秒 11,900 XML 插入。
請參考 Intel Corp 的 Agustin Gonzalez 所寫的全文。 IBM Silicon Valley Lab 的 Matthias Nicola 在 ibmdatabasemag.com/db_area/archives/2009/1 完整介紹了系統和數據庫配置的詳細信息,還包括其他可擴展結果、字符和有價值的課程。
Intel® Xeon® Processor 7400 SerIEs 是 Intel Corporation 在美國和其他國家的注冊商標。所有性能結果都是 Intel 在 2008 年 9 月 2 日的內部測試中取得的。不同的系統和配置可能得到不同的結果。
其他名稱和品牌可能是其他公司的資產。
XML 和 DBA
XML 由於在行業和技術標准以及建模內部業務數據中的角色,它的使用率正在不斷上升。在環境中處理 XML 數據需要 DBA 。
DB2 9 pureXML 使得在 DB2 數據中存儲、管理和查詢 XML 變得更加簡單。通過使用現有的 DBA 工具和技能,DBA 可以在 DB2 數據庫中包含 XML 數據。實際上,選擇 XML 作為存儲格式和事務格式可以讓 DBA 更加輕松,因為數據結構更改是不可避免的,但不需要更改數據庫。紐約稅收部門實現了基於 XML 的解決方案 —— 他們使用 DB2 pureXML 自動化稅收流程,從而大大提高了效率。
通過學習更多有關 XML 的知識,DBA 可以擴展他們的作用范圍,學習新的技能,增加他們的價值。使用 pureXML 時,DBA 可以更多地依賴現有的知識。但是通過學習更多有關 DB2 pureXML 的知識,他們可以為應用程序模式做出貢獻,比如端到端的 XML 流程的好處,保持 XML 完整與 “切割” 之間的平衡,使用 XML 模式驗證各個文檔等。 DB2 pureXML 可以有效地在一個動態企業中管理 XML 數據,為這些選擇提供有力補充。
參考 Bryan Patterson 和 Dexiong Terry Zhang 在 ibmdatabasemag.com/db_area/archives/2009/1 的在線文章,以了解:
在數據庫中存儲 XML 將如何影響 DBA
DB2 pureXML 如何管理 XML
使用 DB2 pureXML 時如何利用現有的 DBA 技能