摘要:TDM系統的數據導入功能需要采用三層結構以適應保密需求;數據導入性能是關鍵指標,而Oracle數據庫系統的外部表特性可以大大提高數據導入性能。
關鍵詞:試驗數據管理;TDM;數據導入;ETL
1 背景
進入到21世紀以來,我國的TDM(試驗數據管理)技術領域展現出蓬勃的生機,越來越多的行業和單位開始關注該技術和相關的解決方案,如航空、航天、兵器、船舶、汽車等。TDM系統正在成為企業提高試驗管理水平、縮短科研周期、降低科研經費的重要手段。
作為一個綜合數字化管理平臺,TDM系統涉及很多復雜的功能和技術,而數據導入功能就是其中之一。
試驗數據導入功能就是從各種格式的海量試驗數據文件中快速提取目標數據、再轉換清洗后裝載到數據庫中。
目前試驗數據管理的需求狀況決定了數據導入功能的重要性。
(1)試驗數據格式多變
目前國際和國內的試驗數據采集設備多種多樣,并且還沒有形成統一的標準,而且許多客戶單位也大量采用非標設備,于是采集的試驗數據格式也就多種多樣。這對TDM系統的導入功能帶來了很多的挑戰。
(2)試驗數據量很大
試驗作為產品研發生命周期的重要工作,其地位日漸增強,試驗產生的數據量也呈幾何數量級增長。TDM系統的導入性能也就成為一個關鍵指標。
2 數據導入功能特點
同許多ETL工具一樣,TDM系統的導入功能包括extract(抽取)、transfer(轉換)、clean(清洗)和load(裝載)等幾個步驟。
但是,試驗數據管理的特殊需求決定了它又具有自身的特點。除了前面提到的數據格式多樣、數據量大之外,單位保密要求對于產品架構設計產生了很大的影響。
許多單位,尤其是國防單位,都有嚴格的保密制度。在信息化系統的部署方面,普通用戶計算機一般是不允許直接訪問數據庫的,只有指定的服務器才有權限直接訪問數據庫。這就決定了傳統的C/S兩層結構不能適應客戶需求,B/S三層結構則成為必須的選擇。
3 三層結構解決方案
我們把系統分為三層結構:用戶層、應用層和數據層,如圖1所示。其中用戶層為數據導入客戶端工具;應用層為基于J2EE平臺的應用服務器和FTP服務器,J2EE服務器提供Web Service,包括Web Service和Java Beans等J2EE組件;FTP服務器提供對上傳文件的管理功能,并提供多線程的文件上載到數據層的功能。數據層包括數據庫服務器,其中數據庫服務器中包含系統的元數據庫、業務數據庫和相關的后臺進程。

在用戶層中,數據導入工具通過Web Service接口與系統應用層提供的Web Service進行交互,建立相應的映射規則,同時數據導入工具對用戶導入的非結構化數據文件進行抽取和轉換,解析成格式化、結構化的文本文件,并把導入的數據規則及映射關系等信息保存下來,然后通過FTP把轉化后的文件上傳到應用層,同時通過Web Service接口把數據校驗及關聯映射信息傳到應用層。
在系統應用層中,Web Service根據用戶層的請求信息在內部調用相應的Java Bean組件,Java Bean組件通過訪問數據庫服務器,對數據庫服務器中的元數據庫、后臺進程和業務數據庫進行操作。在三層結構的數據導入工具中采用應用層主要是為了保證系統的靈活性和數據的安全性,用戶層不能直接訪問數據庫,用戶層對數據的操作都要通過應用層才能訪問到數據層。應用層提供FTP服務器的功能主要是為了提高數據文件上傳的速度,也可以采用Socket編程的方式實現文件的上傳,同時FTP服務器提供文件下載功能,當客戶端的數據文件上傳完成后可以系統自動把相應的文件下載到數據層的數據庫服務器上。
在數據層中,元數據庫、業務數據庫和后臺進程通過應用層Java Bean組件被訪問,當應用層的數據文件接收成功后,通過Oracle數據庫的特性,采用建立外部表的方式對數據文件進行“導入”,然后對導入外部表的數據進行校驗和處理,并返回數據導入的提示信息通過應用層到數據導入工具,然后再把外部表中的數據導入到實際表中。
4 數據庫技術提升導入性能
為了提高數據導入的性能,我們考慮數據導入方案采用先導入臨時表然后進行校驗、最后再導入到真實表的方式.因為臨時表中無索引、數據量少,因此能顯著提高數據導入速度和性能。數據導入臨時表后,通過數據庫的功能實現對臨時表中的數據進行校驗和清除,同時產生數據導入日志信息,先導入后校驗的方式可以進一步提高數據導入的速度。數據導入的最后一步才是把臨時表中的數據導入到真實表中,為了提高性能,可以在晚間數據庫訪問少的時候系統自動實現數據從臨時表導入到真實表,同時清空臨時表中數據。
結合Oracle數據庫系統提供的特性,可以利用建立外部表的方法來實現臨時表的功能,Oracle數據庫可以把一個普通的文本格式文件看作是Oracle數據庫的外部表,外部表可以像普通表一樣進行select操作,可以建視圖,可以與其他進行連接等,但不能對其進行DML操作,即該表是只讀的。
外部表為Oracle用戶提供了巨大的好處。通過使用外部表,Warehouse Builder開發人員不再需要創建平面文件臨時表。這樣,外部表就減少了加載平面文件數據的處理時間,而且需要的額外存儲空間也比平面文件臨時表少。外部表可以與關系表和其他外部表連接,從而在平面文件和關系表之間實現了異類連接。此外由于消除了額外的步驟,因此PL/SQL轉換與SQL加載程序轉換相比更加靈活,從而在大多數情況下將獲得巨大的性能提升。
5 結束語
TDM系統的導入功能是其核心功能之一,一些通用ETL技術都適用于該功能。本文僅從試驗數據管理需求的角度提出了數據導入技術的實現方法,并提到了數據導入性能提升技巧。TDM技術尚未成熟,其中的技術實現方式則有待于進一步探討。
參考文獻
[1]POOLE J, CHANG D, TOLBERT D, et al.公共倉庫元模型開發指南[M].彭蓉,劉進,譯.北京:機械工業出版社,2004.
[2]何晨鋼.ETL系統的設計和實現技術研究[J].計算機應用與軟件,2009(4).