彭展,李密,楊楠
(1.92196部隊(duì),青島 266003;2.火箭軍工程大學(xué),西安 710025)
基于XML 數(shù)據(jù)遷移技術(shù)應(yīng)用研究
彭展1,李密1,楊楠2
(1.92196部隊(duì),青島 266003;2.火箭軍工程大學(xué),西安 710025)
針對(duì)我軍信息系統(tǒng)普遍存在“信息孤島”和“數(shù)據(jù)煙囪”的現(xiàn)狀,闡述構(gòu)建統(tǒng)一高效、互聯(lián)互通、安全可靠的軍隊(duì)數(shù)據(jù)資源體系,打通各軍兵種信息系統(tǒng),推動(dòng)信息跨軍兵種跨層級(jí)共享公用的重要意義,提出一種基于XML的數(shù)據(jù)遷移技術(shù)。該技術(shù)以XML文件作為數(shù)據(jù)交換中介,建立“源數(shù)據(jù)庫(kù)-XML-目標(biāo)數(shù)據(jù)庫(kù)”的映射模型,生成源表與目標(biāo)表之間的映射,根據(jù)實(shí)際需求進(jìn)行字段格式轉(zhuǎn)換、合并、拆分、計(jì)算等操作,實(shí)現(xiàn)數(shù)據(jù)在在新舊信息系統(tǒng)之間的無(wú)縫遷移,推動(dòng)軍隊(duì)信息化建設(shè)。
數(shù)據(jù)遷移;信息共享;字段映射
所謂軍隊(duì)信息化,不僅在于“有”,更在于“通”。尤其在聯(lián)合作戰(zhàn)時(shí)代,聯(lián)合作戰(zhàn)的基礎(chǔ)是信息共享,信息共享的根基是數(shù)據(jù)共享、互連互通,數(shù)據(jù)必須實(shí)現(xiàn)有效流通和共享,才談得上聯(lián)合作戰(zhàn)。客觀說(shuō),我軍信息化已有相當(dāng)基礎(chǔ),各軍兵種已經(jīng)建設(shè)各類信息系統(tǒng),然而進(jìn)一步信息化的梗阻恰恰也在于此,各信息系統(tǒng)之間缺少聯(lián)接和溝通,往往“各自為政”,形成一個(gè)個(gè)“信息孤島”和“數(shù)據(jù)煙囪”[1]。由于歷史原因,各軍兵種各信息系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)產(chǎn)品種類不統(tǒng)一,數(shù)據(jù)庫(kù)表結(jié)構(gòu)和字段異構(gòu),怎么使各信息系統(tǒng)數(shù)據(jù)資源統(tǒng)一遷移到聯(lián)合共享數(shù)據(jù)庫(kù),使全軍各軍兵種之間合理共享軍事信息資源,保障首長(zhǎng)及各級(jí)領(lǐng)導(dǎo)聯(lián)合作戰(zhàn)決策,提高我軍以完成打贏信息化條件下局部戰(zhàn)爭(zhēng)為核心的完成多樣化軍事任務(wù)能力的需求。最近幾年,朝鮮核試驗(yàn)、臺(tái)海問題、南海問題和釣魚島問題出現(xiàn),加快我軍信息化建設(shè)迫在眉睫。因此,如何快速準(zhǔn)確實(shí)現(xiàn)信息共享,信息資源多源融合,是我軍信息化建設(shè)迫切解決的梗塞。
數(shù)據(jù)遷移是將源信息系統(tǒng)的數(shù)據(jù)進(jìn)行提?。‥xtraction)、轉(zhuǎn)換(Transformation),并裝載(Loading)到新信息系統(tǒng)中的過程[2]?;谠撨^程的工具通常稱作ETL工具。
數(shù)據(jù)遷移不是數(shù)據(jù)的簡(jiǎn)單轉(zhuǎn)移,主要表現(xiàn)如下:
(1)數(shù)據(jù)庫(kù)類型異構(gòu),例如:SQL Server、MySQL和Oracle;
(2)數(shù)據(jù)庫(kù)版本異構(gòu),例如:Oracle 9i、Oracle 10g、Oracle 11g和Oracle 12c;
(3)表結(jié)構(gòu)差異,例如:源表與目標(biāo)表存在“一對(duì)一”、“多對(duì)一”或“一對(duì)多”的映射關(guān)系;
(4)字段差異,例如:源表字段名稱、類型存在異構(gòu),甚至存在字段的合并、拆分、值替換等;
(5)數(shù)據(jù)校驗(yàn)與數(shù)據(jù)補(bǔ)錄:需要對(duì)數(shù)據(jù)的有效性進(jìn)行驗(yàn)證,無(wú)法遷移數(shù)據(jù)最終需要手工補(bǔ)錄。
2.1 基本思路
通過全面持續(xù)學(xué)習(xí),做到“?!迸c“博”相結(jié)合,求知與修身共進(jìn)步,知識(shí)結(jié)構(gòu)更加合理,提高理論素養(yǎng)、知識(shí)水平、業(yè)務(wù)本領(lǐng)和領(lǐng)導(dǎo)能力,達(dá)到立德增智、學(xué)以致用。這樣,有了豐厚積累,厚積薄發(fā),為思維創(chuàng)新奠定基礎(chǔ),一切皆有可能,處處是創(chuàng)造之地,天天是創(chuàng)造之時(shí),人人是創(chuàng)造之人。
基于XML的數(shù)據(jù)遷移框架圖如圖1所示,遷移思路如下:
(1)根據(jù)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)實(shí)際情況,制定數(shù)據(jù)遷移方案;
(2)連接源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù),根據(jù)遷移方案讀取源表和目標(biāo)表數(shù)據(jù)字典,建立源字段和目標(biāo)字段映射表;
(3)抽取源數(shù)據(jù)庫(kù)數(shù)據(jù),清洗“臟數(shù)據(jù)”,根據(jù)字段映射表對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,寫入XML文件;
(4)根據(jù)目標(biāo)數(shù)據(jù)庫(kù)字段類型,采用DOM4J解析器解析XML文件數(shù)據(jù),驗(yàn)證數(shù)據(jù)有效,最后裝載到目標(biāo)數(shù)據(jù)庫(kù)。
2.2 表映射模型建立
利用XML文件進(jìn)行數(shù)據(jù)遷移,首先要建立源表與目標(biāo)表的映射模型。源表與目標(biāo)表之間的映射模型采用XML文件描述,系統(tǒng)可以根據(jù)映射模型讀取源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)相應(yīng)數(shù)據(jù)字典信息,由于信息系統(tǒng)之間存在異構(gòu),源表和目標(biāo)表可能存在三種關(guān)系:“一對(duì)一”、“一對(duì)多”、“多對(duì)一”[8],表映射模型如圖2所示。
圖1 基于XML的數(shù)據(jù)遷移框架圖
圖2 表映射模型
2.3 字段映射模型
由于科學(xué)技術(shù)發(fā)展和需求變化,源表和目標(biāo)表字段之間存在異構(gòu),這也是數(shù)據(jù)遷移最棘手問題,源字段和目標(biāo)字段之間存在合并、拆分、計(jì)算、值替換等操作[9],轉(zhuǎn)換過程中根據(jù)目標(biāo)數(shù)據(jù)庫(kù)字段類型,對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,格式轉(zhuǎn)換包括單位統(tǒng)一、日期格式統(tǒng)一、精度統(tǒng)一等,根據(jù)實(shí)際情況分別進(jìn)行相應(yīng)處理,最終生成字段映射表。字段映射模型如圖3所示。
圖3 字段映射模型
2.4 數(shù)據(jù)處理
(1)數(shù)據(jù)轉(zhuǎn)換
數(shù)據(jù)遷移系統(tǒng)既包含不同版本之間數(shù)據(jù)遷移,要在不同數(shù)據(jù)庫(kù)產(chǎn)品之間實(shí)現(xiàn)數(shù)據(jù)遷移,不僅實(shí)現(xiàn)數(shù)據(jù)的簡(jiǎn)單搬遷,關(guān)鍵要滿足異構(gòu)數(shù)據(jù)庫(kù)之間數(shù)據(jù)的無(wú)縫銜接,數(shù)據(jù)庫(kù)之間異構(gòu),既包括類型異構(gòu),還存在表異構(gòu)和字段異構(gòu),必須根據(jù)目標(biāo)數(shù)據(jù)庫(kù)字段類型,對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,符合目標(biāo)數(shù)據(jù)庫(kù)條件[10]。
建立表映射模型和字段映射模型后,抽取源數(shù)據(jù)庫(kù)數(shù)據(jù),清洗“臟數(shù)據(jù)”,根據(jù)字段映射表對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換后寫入到XML文件。在XML文件中,元素“database”描述XML文件根元素,目標(biāo)數(shù)據(jù)庫(kù)類型采用根元素的屬性名稱描述,例如:SQL Server 2012、MySQL 5.6、Oracle 11g等。元素“table”描述根元素的子元素,目標(biāo)表名稱采用“table”屬性名稱描述。目標(biāo)字段名稱作為“table”元素的子元素,當(dāng)DOM4J解析器解析到該元素的結(jié)束標(biāo)志,獲得該元素值,即對(duì)應(yīng)字段值。當(dāng)DOM4J解析器解析到“table”元素的結(jié)束標(biāo)志,獲取一條完整記錄,裝載到目標(biāo)數(shù)據(jù)庫(kù)中。下面以“一對(duì)二”的關(guān)系數(shù)據(jù)模型進(jìn)行舉例說(shuō)明,設(shè)某信息管理舊系統(tǒng)源數(shù)據(jù)庫(kù)(SQL Server 2012)中的RYB表(人員表),對(duì)應(yīng)新系統(tǒng)目標(biāo)數(shù)據(jù)庫(kù)(Oracle 11g)的JBXXB表(基本信息表)和CJB表(任職表)。源表RYB包含字段BH(編號(hào)),XM(姓名),JX(軍銜),ZW(職務(wù)),CSRQ(出生日期),KM(科目),CJ(成績(jī));目標(biāo)表JBXXB包含字段ID(編號(hào)),NAME(姓名),RANKPOST(軍銜職務(wù)),AGE(年齡);目標(biāo)表CJB包含字段ID(編號(hào)),SUBJECT(科目),MARK(成績(jī))。源表與目標(biāo)表映射關(guān)系圖如圖4。
圖4 源表與目標(biāo)表數(shù)據(jù)映射關(guān)系圖
根據(jù)表映射關(guān)系圖生成XML數(shù)據(jù)文件內(nèi)容如下:
利用DOM4J解析X ML文件,解析到元素“database”時(shí),根據(jù)該元素屬性名稱獲取目標(biāo)數(shù)據(jù)庫(kù)類型,建立與目標(biāo)數(shù)據(jù)庫(kù)連接;解析到元素“table”時(shí),屬性名是目標(biāo)表名稱,“table”元素的子元素是該表字段名稱,子元素的內(nèi)容是相應(yīng)字段的值,根據(jù)字段名稱查詢數(shù)字字典,獲取該字段的數(shù)據(jù)類型,把值轉(zhuǎn)化為目標(biāo)字段數(shù)據(jù)類型,逐條裝載到目標(biāo)數(shù)據(jù)庫(kù)中。上述例子在數(shù)據(jù)轉(zhuǎn)換過程中實(shí)現(xiàn)了源字段“軍銜”和“職務(wù)”的合并,同時(shí)根據(jù)計(jì)算機(jī)系統(tǒng)日期自動(dòng)計(jì)算人員年齡,減少數(shù)據(jù)庫(kù)冗余。
(2)數(shù)據(jù)預(yù)處理和數(shù)據(jù)補(bǔ)錄
數(shù)據(jù)預(yù)處理包含數(shù)據(jù)清洗和數(shù)據(jù)驗(yàn)證。數(shù)據(jù)清洗是根據(jù)目標(biāo)數(shù)據(jù)庫(kù)冗余要求,對(duì)無(wú)效數(shù)據(jù)進(jìn)行刪除。數(shù)據(jù)驗(yàn)證保證遷移過程中數(shù)據(jù)的有效性的重要環(huán)節(jié)。數(shù)據(jù)驗(yàn)證包括數(shù)據(jù)有效性、非空性及外鍵約束等。在數(shù)據(jù)遷移系統(tǒng)中,可以做更多的約束和正則表達(dá)式驗(yàn)證,包括如下:值是否為空,子表記錄在主表中是否有相應(yīng)記錄,郵箱、電話號(hào)碼等是否符合要求等。數(shù)據(jù)補(bǔ)錄針對(duì)某些特殊情況,對(duì)無(wú)法遷移的數(shù)據(jù)進(jìn)行手工補(bǔ)充。
本文提出一種以XML數(shù)據(jù)文件為中間載體,構(gòu)建源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)的映射模型,在異構(gòu)數(shù)據(jù)庫(kù)之間實(shí)現(xiàn)數(shù)據(jù)的提取、轉(zhuǎn)換、加載的數(shù)據(jù)遷移技術(shù),解決傳統(tǒng)手工遷移歷史數(shù)據(jù)的局限性,在軍隊(duì)信息資源共享中減輕工作負(fù)擔(dān),提高工作效率。大幅提升我軍信息系統(tǒng)信息的高效共享,為我軍聯(lián)合作戰(zhàn)提供有力支撐。下一步研究方向是實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)與非結(jié)構(gòu)化數(shù)據(jù)庫(kù)之間數(shù)據(jù)的相互遷移,在軍隊(duì)信息化建設(shè)中實(shí)現(xiàn)數(shù)據(jù)的無(wú)縫融合,在聯(lián)合作戰(zhàn)中對(duì)領(lǐng)導(dǎo)的決策提供了強(qiáng)有力的保障。
[1]胡能發(fā),唐為萍.基于XML的通用異構(gòu)數(shù)據(jù)交換模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(8):1743-1745.
[2]趙艷妮,郭華磊.基于XML的數(shù)據(jù)遷移技術(shù)在信息系統(tǒng)升級(jí)中的研究與實(shí)現(xiàn)[J].計(jì)算機(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)場(chǎng)柵格節(jié)點(diǎn)的接入與遷移管理技術(shù)研究[J].計(jì)算機(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)測(cè)信息交換研究[J].計(jì)算機(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-),男,河南夏邑人,高級(jí)工程師,學(xué)士,研究方向?yàn)樾畔⒓?/p>
2016-12-22
2017-02-20
李密(1985-),男,山東淄博人,助理工程師,碩士,研究方向?yàn)樾畔踩?/p>
楊楠(1984-),女,陜西西安人,工程師,博士,研究方向?yàn)樾畔踩?/p>