彭展,李密,楊楠
(1.92196部隊,青島 266003;2.火箭軍工程大學(xué),西安 710025)
基于XML 數(shù)據(jù)遷移技術(shù)應(yīng)用研究
彭展1,李密1,楊楠2
(1.92196部隊,青島 266003;2.火箭軍工程大學(xué),西安 710025)
針對我軍信息系統(tǒng)普遍存在“信息孤島”和“數(shù)據(jù)煙囪”的現(xiàn)狀,闡述構(gòu)建統(tǒng)一高效、互聯(lián)互通、安全可靠的軍隊數(shù)據(jù)資源體系,打通各軍兵種信息系統(tǒng),推動信息跨軍兵種跨層級共享公用的重要意義,提出一種基于XML的數(shù)據(jù)遷移技術(shù)。該技術(shù)以XML文件作為數(shù)據(jù)交換中介,建立“源數(shù)據(jù)庫-XML-目標數(shù)據(jù)庫”的映射模型,生成源表與目標表之間的映射,根據(jù)實際需求進行字段格式轉(zhuǎn)換、合并、拆分、計算等操作,實現(xiàn)數(shù)據(jù)在在新舊信息系統(tǒng)之間的無縫遷移,推動軍隊信息化建設(shè)。
數(shù)據(jù)遷移;信息共享;字段映射
所謂軍隊信息化,不僅在于“有”,更在于“通”。尤其在聯(lián)合作戰(zhàn)時代,聯(lián)合作戰(zhàn)的基礎(chǔ)是信息共享,信息共享的根基是數(shù)據(jù)共享、互連互通,數(shù)據(jù)必須實現(xiàn)有效流通和共享,才談得上聯(lián)合作戰(zhàn)??陀^說,我軍信息化已有相當基礎(chǔ),各軍兵種已經(jīng)建設(shè)各類信息系統(tǒng),然而進一步信息化的梗阻恰恰也在于此,各信息系統(tǒng)之間缺少聯(lián)接和溝通,往往“各自為政”,形成一個個“信息孤島”和“數(shù)據(jù)煙囪”[1]。由于歷史原因,各軍兵種各信息系統(tǒng)后臺數(shù)據(jù)庫產(chǎn)品種類不統(tǒng)一,數(shù)據(jù)庫表結(jié)構(gòu)和字段異構(gòu),怎么使各信息系統(tǒng)數(shù)據(jù)資源統(tǒng)一遷移到聯(lián)合共享數(shù)據(jù)庫,使全軍各軍兵種之間合理共享軍事信息資源,保障首長及各級領(lǐng)導(dǎo)聯(lián)合作戰(zhàn)決策,提高我軍以完成打贏信息化條件下局部戰(zhàn)爭為核心的完成多樣化軍事任務(wù)能力的需求。最近幾年,朝鮮核試驗、臺海問題、南海問題和釣魚島問題出現(xiàn),加快我軍信息化建設(shè)迫在眉睫。因此,如何快速準確實現(xiàn)信息共享,信息資源多源融合,是我軍信息化建設(shè)迫切解決的梗塞。
數(shù)據(jù)遷移是將源信息系統(tǒng)的數(shù)據(jù)進行提?。‥xtraction)、轉(zhuǎn)換(Transformation),并裝載(Loading)到新信息系統(tǒng)中的過程[2]?;谠撨^程的工具通常稱作ETL工具。
數(shù)據(jù)遷移不是數(shù)據(jù)的簡單轉(zhuǎn)移,主要表現(xiàn)如下:
(1)數(shù)據(jù)庫類型異構(gòu),例如:SQL Server、MySQL和Oracle;
(2)數(shù)據(jù)庫版本異構(gòu),例如:Oracle 9i、Oracle 10g、Oracle 11g和Oracle 12c;
(3)表結(jié)構(gòu)差異,例如:源表與目標表存在“一對一”、“多對一”或“一對多”的映射關(guān)系;
(4)字段差異,例如:源表字段名稱、類型存在異構(gòu),甚至存在字段的合并、拆分、值替換等;
(5)數(shù)據(jù)校驗與數(shù)據(jù)補錄:需要對數(shù)據(jù)的有效性進行驗證,無法遷移數(shù)據(jù)最終需要手工補錄。
2.1 基本思路
通過全面持續(xù)學(xué)習(xí),做到“?!迸c“博”相結(jié)合,求知與修身共進步,知識結(jié)構(gòu)更加合理,提高理論素養(yǎng)、知識水平、業(yè)務(wù)本領(lǐng)和領(lǐng)導(dǎo)能力,達到立德增智、學(xué)以致用。這樣,有了豐厚積累,厚積薄發(fā),為思維創(chuàng)新奠定基礎(chǔ),一切皆有可能,處處是創(chuàng)造之地,天天是創(chuàng)造之時,人人是創(chuàng)造之人。
基于XML的數(shù)據(jù)遷移框架圖如圖1所示,遷移思路如下:
(1)根據(jù)源數(shù)據(jù)庫和目標數(shù)據(jù)庫實際情況,制定數(shù)據(jù)遷移方案;
(2)連接源數(shù)據(jù)庫和目標數(shù)據(jù)庫,根據(jù)遷移方案讀取源表和目標表數(shù)據(jù)字典,建立源字段和目標字段映射表;
(3)抽取源數(shù)據(jù)庫數(shù)據(jù),清洗“臟數(shù)據(jù)”,根據(jù)字段映射表對數(shù)據(jù)進行轉(zhuǎn)換,寫入XML文件;
(4)根據(jù)目標數(shù)據(jù)庫字段類型,采用DOM4J解析器解析XML文件數(shù)據(jù),驗證數(shù)據(jù)有效,最后裝載到目標數(shù)據(jù)庫。
2.2 表映射模型建立
利用XML文件進行數(shù)據(jù)遷移,首先要建立源表與目標表的映射模型。源表與目標表之間的映射模型采用XML文件描述,系統(tǒng)可以根據(jù)映射模型讀取源數(shù)據(jù)庫和目標數(shù)據(jù)庫相應(yīng)數(shù)據(jù)字典信息,由于信息系統(tǒng)之間存在異構(gòu),源表和目標表可能存在三種關(guān)系:“一對一”、“一對多”、“多對一”[8],表映射模型如圖2所示。
圖1 基于XML的數(shù)據(jù)遷移框架圖
圖2 表映射模型
2.3 字段映射模型
由于科學(xué)技術(shù)發(fā)展和需求變化,源表和目標表字段之間存在異構(gòu),這也是數(shù)據(jù)遷移最棘手問題,源字段和目標字段之間存在合并、拆分、計算、值替換等操作[9],轉(zhuǎn)換過程中根據(jù)目標數(shù)據(jù)庫字段類型,對數(shù)據(jù)進行格式轉(zhuǎn)換,格式轉(zhuǎn)換包括單位統(tǒng)一、日期格式統(tǒng)一、精度統(tǒng)一等,根據(jù)實際情況分別進行相應(yīng)處理,最終生成字段映射表。字段映射模型如圖3所示。
圖3 字段映射模型
2.4 數(shù)據(jù)處理
(1)數(shù)據(jù)轉(zhuǎn)換
數(shù)據(jù)遷移系統(tǒng)既包含不同版本之間數(shù)據(jù)遷移,要在不同數(shù)據(jù)庫產(chǎn)品之間實現(xiàn)數(shù)據(jù)遷移,不僅實現(xiàn)數(shù)據(jù)的簡單搬遷,關(guān)鍵要滿足異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)的無縫銜接,數(shù)據(jù)庫之間異構(gòu),既包括類型異構(gòu),還存在表異構(gòu)和字段異構(gòu),必須根據(jù)目標數(shù)據(jù)庫字段類型,對數(shù)據(jù)進行格式轉(zhuǎn)換,符合目標數(shù)據(jù)庫條件[10]。
建立表映射模型和字段映射模型后,抽取源數(shù)據(jù)庫數(shù)據(jù),清洗“臟數(shù)據(jù)”,根據(jù)字段映射表對數(shù)據(jù)進行轉(zhuǎn)換后寫入到XML文件。在XML文件中,元素“database”描述XML文件根元素,目標數(shù)據(jù)庫類型采用根元素的屬性名稱描述,例如:SQL Server 2012、MySQL 5.6、Oracle 11g等。元素“table”描述根元素的子元素,目標表名稱采用“table”屬性名稱描述。目標字段名稱作為“table”元素的子元素,當DOM4J解析器解析到該元素的結(jié)束標志,獲得該元素值,即對應(yīng)字段值。當DOM4J解析器解析到“table”元素的結(jié)束標志,獲取一條完整記錄,裝載到目標數(shù)據(jù)庫中。下面以“一對二”的關(guān)系數(shù)據(jù)模型進行舉例說明,設(shè)某信息管理舊系統(tǒng)源數(shù)據(jù)庫(SQL Server 2012)中的RYB表(人員表),對應(yīng)新系統(tǒng)目標數(shù)據(jù)庫(Oracle 11g)的JBXXB表(基本信息表)和CJB表(任職表)。源表RYB包含字段BH(編號),XM(姓名),JX(軍銜),ZW(職務(wù)),CSRQ(出生日期),KM(科目),CJ(成績);目標表JBXXB包含字段ID(編號),NAME(姓名),RANKPOST(軍銜職務(wù)),AGE(年齡);目標表CJB包含字段ID(編號),SUBJECT(科目),MARK(成績)。源表與目標表映射關(guān)系圖如圖4。
圖4 源表與目標表數(shù)據(jù)映射關(guān)系圖
根據(jù)表映射關(guān)系圖生成XML數(shù)據(jù)文件內(nèi)容如下:
利用DOM4J解析X ML文件,解析到元素“database”時,根據(jù)該元素屬性名稱獲取目標數(shù)據(jù)庫類型,建立與目標數(shù)據(jù)庫連接;解析到元素“table”時,屬性名是目標表名稱,“table”元素的子元素是該表字段名稱,子元素的內(nèi)容是相應(yīng)字段的值,根據(jù)字段名稱查詢數(shù)字字典,獲取該字段的數(shù)據(jù)類型,把值轉(zhuǎn)化為目標字段數(shù)據(jù)類型,逐條裝載到目標數(shù)據(jù)庫中。上述例子在數(shù)據(jù)轉(zhuǎn)換過程中實現(xiàn)了源字段“軍銜”和“職務(wù)”的合并,同時根據(jù)計算機系統(tǒng)日期自動計算人員年齡,減少數(shù)據(jù)庫冗余。
(2)數(shù)據(jù)預(yù)處理和數(shù)據(jù)補錄
數(shù)據(jù)預(yù)處理包含數(shù)據(jù)清洗和數(shù)據(jù)驗證。數(shù)據(jù)清洗是根據(jù)目標數(shù)據(jù)庫冗余要求,對無效數(shù)據(jù)進行刪除。數(shù)據(jù)驗證保證遷移過程中數(shù)據(jù)的有效性的重要環(huán)節(jié)。數(shù)據(jù)驗證包括數(shù)據(jù)有效性、非空性及外鍵約束等。在數(shù)據(jù)遷移系統(tǒng)中,可以做更多的約束和正則表達式驗證,包括如下:值是否為空,子表記錄在主表中是否有相應(yīng)記錄,郵箱、電話號碼等是否符合要求等。數(shù)據(jù)補錄針對某些特殊情況,對無法遷移的數(shù)據(jù)進行手工補充。
本文提出一種以XML數(shù)據(jù)文件為中間載體,構(gòu)建源數(shù)據(jù)庫與目標數(shù)據(jù)庫的映射模型,在異構(gòu)數(shù)據(jù)庫之間實現(xiàn)數(shù)據(jù)的提取、轉(zhuǎn)換、加載的數(shù)據(jù)遷移技術(shù),解決傳統(tǒng)手工遷移歷史數(shù)據(jù)的局限性,在軍隊信息資源共享中減輕工作負擔(dān),提高工作效率。大幅提升我軍信息系統(tǒng)信息的高效共享,為我軍聯(lián)合作戰(zhàn)提供有力支撐。下一步研究方向是實現(xiàn)關(guān)系數(shù)據(jù)庫與非結(jié)構(gòu)化數(shù)據(jù)庫之間數(shù)據(jù)的相互遷移,在軍隊信息化建設(shè)中實現(xiàn)數(shù)據(jù)的無縫融合,在聯(lián)合作戰(zhàn)中對領(lǐng)導(dǎo)的決策提供了強有力的保障。
[1]胡能發(fā),唐為萍.基于XML的通用異構(gòu)數(shù)據(jù)交換模型[J].計算機工程與設(shè)計,2010,31(8):1743-1745.
[2]趙艷妮,郭華磊.基于XML的數(shù)據(jù)遷移技術(shù)在信息系統(tǒng)升級中的研究與實現(xiàn)[J].計算機應(yīng)用與軟件,2014,31(12):52-54.
[3]Wycislik L,Augustyn D R,Mrozek D,et al.E-LT Concept in a Light of New Features of Oracle Data Integrator 12c Based on Datamigration within a Hospital Information System[C].International Conference:Beyond Databases,Architectures and Structures.SpringerInternational Publishing,2015:190-199.
[4]陳偉,馮力,吳沉寒.海戰(zhàn)場柵格節(jié)點的接入與遷移管理技術(shù)研究[J].計算機與數(shù)字工程,2015(3):453-456.
[5]El Alami A,Bahaj M.Schema and Data Migration of a Relational Database RDB to the Extensible Markup Language XML[J].World Academy of Science,Engineering and Technology,International Journal of Computer,Electrical,Automation,Control and Information Engineering,2015,9(7):1729-1734.
[6]Hu Jun,Huang Hou kuan,Gao Fang.A Clustering Algorithm for Parallel Coordinates-Based Measure Model and Its Applications[J]. Journal of Nanjing University:Natural Sciences,2009,45(5):645-655.
[7]Wang Z,Chen H,Fu Y,et al.Workload Balancing and Adaptive Resource Management for the Swift Storage System on Cloud[J].Future Generation Computer Systems,2015,51:120-131.
[8]Hadley S W,Kessler M L,Litzenberg D W,et al.SafetyNet:Streamlining and Automating QA in Radiotherapy[J].Journal of Applied Clinical Medical Physics,2016,17(1):134-141.
[9]Luz M P,de Matos Nogueira J R,Cavalini L T,et al.Providing Full Semantic Interoperability for the Fast Healthcare Interoperability Resources Schemas with Resource Description Framework[C].Healthcare Informatics(ICHI),2015 International Conference on.IEEE, 2015:463-466.
[10]顧九春,劉璐.子基于XML的公路車輛智能監(jiān)測信息交換研究[J].計算機應(yīng)用研究,2012,29(8):2985-2987.
Research on the Application of Data Migration Technology Based on XML
PENG Zhan1,LI Mi1,YANG Nan2
(1.No.92196 Troops of PLA,Qingdao 266003;2.Rocket Force University of Engineering,Xi'an 710025)
According to the present status of"information isolated island"and"data stack"of our military information system,expounds the construction of a unified and efficient,secure and reliable military interoperability,data resource system,open every military information system,promotes the information sharing across the military cross level important public,proposes a data migration technology based on XML.The technology uses XML files as data exchange,establishes a mapping model of"Source Database-XML-Target Database",generates the mapping of source table and target table,field format conversion,merger,split,calculation and other operations according to the actual demand,achieves seamless data migration in between the old and new information system,promotes the construction of military information.
Data Migration;Information Sharing;Field Mapping
1007-1423(2017)07-0079-04
10.3969/j.issn.1007-1423.2017.07.020
彭展(1971-),男,河南夏邑人,高級工程師,學(xué)士,研究方向為信息集成
2016-12-22
2017-02-20
李密(1985-),男,山東淄博人,助理工程師,碩士,研究方向為信息安全
楊楠(1984-),女,陜西西安人,工程師,博士,研究方向為信息安全