国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于XML異構(gòu)數(shù)據(jù)庫遷移技術(shù)研究

2018-02-09 07:18:57趙艷妮郭華磊
關(guān)鍵詞:字段企事業(yè)異構(gòu)

趙艷妮 郭華磊

(1.陜西職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系 西安 710100)(2.西安通信學(xué)院信息服務(wù)系 西安 710106)

1 引言

隨著計(jì)算機(jī)技術(shù)的普及發(fā)展,企事業(yè)單位根據(jù)各自業(yè)務(wù)情況和實(shí)際需要,相應(yīng)開發(fā)了適合本單位業(yè)務(wù)的信息系統(tǒng)。由于缺乏合理的統(tǒng)一規(guī)劃,形成一個(gè)個(gè)“數(shù)據(jù)煙囪”和“數(shù)據(jù)孤島”,阻礙各單位各系統(tǒng)之間的互聯(lián)互通[1]。隨著企業(yè)合并重組,政府部門電子政務(wù)的逐漸普及,分散的信息系統(tǒng)難以滿足企事業(yè)單位間信息共享,難以滿足企事業(yè)單位領(lǐng)導(dǎo)層的決策,難以適應(yīng)大數(shù)據(jù)時(shí)代信息價(jià)值的最大化,爭(zhēng)取信息優(yōu)勢(shì),提高企業(yè)市場(chǎng)競(jìng)爭(zhēng)力和政府部門工作效率,設(shè)計(jì)開發(fā)新的信息管理系統(tǒng),是企事業(yè)單位信息化建設(shè)首要解決的問題。然而,舊信息系統(tǒng)積累了海量的歷史數(shù)據(jù)。對(duì)于新信息系統(tǒng)而言,舊系統(tǒng)歷史數(shù)據(jù)往往是新信息系統(tǒng)業(yè)務(wù)開展的基礎(chǔ)。由于各種原因,舊信息系統(tǒng)后臺(tái)數(shù)據(jù)庫類型紛雜,表結(jié)構(gòu)和字段類型異構(gòu),一部分?jǐn)?shù)據(jù)甚至保存在文件(Excel、xml、json等)中。如何將歷史數(shù)據(jù)按照統(tǒng)一標(biāo)準(zhǔn)遷移到共享數(shù)據(jù)庫中,使各單位各部門之間共享信息資源,實(shí)現(xiàn)數(shù)據(jù)價(jià)值最大化。因此,如何準(zhǔn)確、有效地繼承信息系統(tǒng)的原始數(shù)據(jù)信息,實(shí)現(xiàn)數(shù)據(jù)的無縫銜接,是企事業(yè)單位信息系統(tǒng)數(shù)據(jù)遷移的首要問題。

2 數(shù)據(jù)遷移簡(jiǎn)述

數(shù)據(jù)遷移,指的是將源系統(tǒng)的數(shù)據(jù)進(jìn)行提取(Extraction)、轉(zhuǎn)換(Transformation),并裝載(Loading)到新系統(tǒng)中的過程,基于這一過程的數(shù)據(jù)遷移通常也被稱作ETL數(shù)據(jù)遷移[2]。市場(chǎng)上主流數(shù)據(jù)庫廠商研發(fā)的數(shù)據(jù)遷移工具隨數(shù)據(jù)庫產(chǎn)品發(fā)布,主要遷移工具有SQL Server DTS工具,Oracle Migration Workbench工具,PowerBuilder Data Pipeline工具,以及Delphi DataPump工具等[3],但這些工具僅僅實(shí)現(xiàn)數(shù)據(jù)在同一數(shù)據(jù)庫產(chǎn)品不同版本或不同數(shù)據(jù)庫產(chǎn)品之間實(shí)現(xiàn)數(shù)據(jù)的簡(jiǎn)單遷移,無法滿足表、字段異構(gòu),字段拆分、字段合并、字段計(jì)算、值替換、數(shù)據(jù)驗(yàn)證等深度處理功能更不具備。開源數(shù)據(jù)遷移工具操作性差,培訓(xùn)費(fèi)用高,商業(yè)數(shù)據(jù)遷移工具價(jià)格昂貴,中小企事業(yè)單位均不適用。還有一些針對(duì)某個(gè)信息系統(tǒng)量身定做的數(shù)據(jù)遷移系統(tǒng),缺乏通用性[4]。

數(shù)據(jù)遷移不是數(shù)據(jù)的簡(jiǎn)單轉(zhuǎn)移,主要表現(xiàn)如下[5]:

1)數(shù)據(jù)源異構(gòu):數(shù)據(jù)存在分散的數(shù)據(jù)庫、文件中;

2)數(shù)據(jù)庫類型、版本異構(gòu):例如:SQL Server、My SQL和Oracle數(shù)據(jù)庫;

3)數(shù)據(jù)庫版本異構(gòu):例如:Oracle 10g和Oracle 11g;

4)表結(jié)構(gòu)異構(gòu):源表與目標(biāo)表存在“一對(duì)一”、“一對(duì)多”或“多對(duì)一”的映射關(guān)系;

5)字段異構(gòu):源表字段與目標(biāo)字段名稱、數(shù)據(jù)類型、呈現(xiàn)方式等存在差異性;

6)數(shù)據(jù)深度加工:源表與目標(biāo)表可能存在字段格式轉(zhuǎn)換、合并、拆分、截取、替換、計(jì)算等處理;

7)數(shù)據(jù)有效性驗(yàn)證:需要對(duì)數(shù)據(jù)進(jìn)行有效性驗(yàn)證,例如電子郵箱、身份證、電話號(hào)碼等進(jìn)行驗(yàn)證,減少無效數(shù)據(jù)的冗余;

8)數(shù)據(jù)補(bǔ)錄:無法進(jìn)行遷移的數(shù)據(jù),需要手工補(bǔ)錄。

3 基于XML異構(gòu)數(shù)據(jù)庫遷移技術(shù)

3.1 基本思路

基于XML異構(gòu)數(shù)據(jù)庫遷移框架圖如圖1所示,基本思路如下:

1)深入研究源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫,建立源表和目標(biāo)表,源字段和目標(biāo)字段之間映射關(guān)系,制定數(shù)據(jù)遷移方案;

2)根據(jù)數(shù)據(jù)遷移方案,生成XML格式的映射模型文件;

3)解析映射模型文件,根據(jù)源數(shù)據(jù)和目標(biāo)數(shù)據(jù)庫之間映射關(guān)系,生成源數(shù)據(jù)庫SQL腳本,從源數(shù)據(jù)庫抽取相應(yīng)數(shù)據(jù),進(jìn)行相應(yīng)轉(zhuǎn)換操作(字段合并、字段拆分、類型轉(zhuǎn)換、值替換、字段計(jì)算等),生成目標(biāo)數(shù)據(jù)庫SQL腳本[6],裝載到目標(biāo)數(shù)據(jù)庫相應(yīng)表中;

4)最后,根據(jù)源信息系統(tǒng)和目標(biāo)信息系統(tǒng)實(shí)際情況,手工補(bǔ)錄無法遷移的數(shù)據(jù),并對(duì)比驗(yàn)證源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫數(shù)據(jù),保持?jǐn)?shù)據(jù)遷移前后一致性和完整性。

3.2 數(shù)據(jù)遷移預(yù)處理

在信息系統(tǒng)中,數(shù)據(jù)也不是完美無缺的,錯(cuò)誤或缺陷無法避免,稍微不注意,就為后期的數(shù)據(jù)遷移留下隱患,甚至在運(yùn)行新系統(tǒng)時(shí)發(fā)生故障。因此,在數(shù)據(jù)轉(zhuǎn)換之前需要對(duì)源數(shù)據(jù)庫數(shù)據(jù)進(jìn)行預(yù)處理,驗(yàn)證數(shù)據(jù)有效性,盡可能更正發(fā)現(xiàn)的錯(cuò)誤,清洗無效數(shù)據(jù),把數(shù)據(jù)遷移過程中出現(xiàn)異常概率降到最低。

3.2.1 數(shù)據(jù)驗(yàn)證

數(shù)據(jù)遷移預(yù)處理階段數(shù)據(jù)驗(yàn)證主要基于以下兩個(gè)原因[7]:

1)防止因?yàn)槌霈F(xiàn)無法預(yù)料的異常錯(cuò)誤造成轉(zhuǎn)換操作中止;

2)審核數(shù)據(jù)是否滿足預(yù)先設(shè)定要求。

確定字段數(shù)據(jù)有效性,采用正則表達(dá)式驗(yàn)證數(shù)據(jù),正則表達(dá)式可以驗(yàn)證數(shù)據(jù)是否是數(shù)字、字符、連字符、空格、取值范圍等[8]。例如,驗(yàn)證輸入文本文件名稱以“txt”開始,后面緊跟日期格式“yyyy-mm-dd”,正則表達(dá)式可以設(shè)置為“txt(20)dd-(0[1-9]|1[012])-([01][1-9]|3[01]).txt”.“txt2016-12-15.txt”為符合規(guī)則文件名稱,“txt5016-24-35.txt”為不符合規(guī)則文件名稱。

3.2.2 數(shù)據(jù)清洗

數(shù)據(jù)驗(yàn)證過程主要是驗(yàn)證數(shù)據(jù)有效性,拒絕無效數(shù)據(jù),數(shù)據(jù)清洗對(duì)象不僅包含無效數(shù)據(jù),也包含違反規(guī)則數(shù)據(jù)和精度不符合指定范圍數(shù)據(jù)。例如,不符合常識(shí)數(shù)據(jù),已發(fā)生事件日期在當(dāng)前日期之后,應(yīng)該是數(shù)字,實(shí)際包含字母,成績范圍在0~100之間,實(shí)際成績?yōu)?20,性別只有“男”和“女”,而實(shí)際性別不在規(guī)定之列等等,上述都是無效數(shù)據(jù),需要清洗。

在數(shù)據(jù)驗(yàn)證階段確定不符合規(guī)則的數(shù)據(jù),必須在轉(zhuǎn)換之前進(jìn)行清洗,提高數(shù)據(jù)質(zhì)量,減少數(shù)據(jù)冗余,在數(shù)據(jù)轉(zhuǎn)換過程中最大程度避免由數(shù)據(jù)質(zhì)量造成的轉(zhuǎn)換異常,保障數(shù)據(jù)遷移的順利實(shí)施。

3.3 映射模型

異構(gòu)數(shù)據(jù)庫數(shù)據(jù)遷移成敗關(guān)鍵在建立源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫之間映射模型,基于XML異構(gòu)數(shù)據(jù)庫遷移映射模型圖如圖2所示。根據(jù)數(shù)據(jù)遷移方案讀取源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫中數(shù)據(jù)字典,獲取源表和目標(biāo)表信息,確定源表和目標(biāo)表之間映射類型,建立源字段與目標(biāo)字段間的映射關(guān)系,生成XML格式的映射模型文件[9]。

圖2 基于XML異構(gòu)數(shù)據(jù)庫遷移映射模型圖

映射模型以XML格式文件表示,異構(gòu)數(shù)據(jù)庫數(shù)據(jù)遷移時(shí)首先解析映射模型文件,獲取需要遷移的源表和源字段,抽取源數(shù)據(jù)庫數(shù)據(jù),根據(jù)源字段和目標(biāo)字段之間映射關(guān)系,生成XML字段映射文件[10]。表間字段映射分為“一對(duì)一”、“多對(duì)一”和“一對(duì)多”三種描述形式,其中類型“1”表示“一對(duì)一”,“2”表示“多對(duì)一”,“3”表示“一對(duì)多”。

3.3.1“一對(duì)一”映射

在數(shù)據(jù)遷移過程中,源表與目標(biāo)表的“一對(duì)一”映射關(guān)系最常見,映射模型XML文件根元素為ETL,屬性“type”的值為“1”,表示該映射模型為“一對(duì)一”。元素“sourcedatabase”為源數(shù)據(jù)庫,屬性“type”值為源數(shù)據(jù)庫類型,元素“sourcedatabase”值為源數(shù)據(jù)庫名稱。元素“targetdatabase”為目標(biāo)數(shù)據(jù)庫,屬性“type”值為目標(biāo)數(shù)據(jù)庫類型,元素“targetdatabase”值為目標(biāo)數(shù)據(jù)庫名稱。元素“sourcetable”的屬性“name”值為源表名稱,元素“sourcetable”的子元素為源字段名稱,值為目標(biāo)表映射字段,“.”前為目標(biāo)表名稱,后是目標(biāo)字段名稱,字段元素屬性“type”為字段轉(zhuǎn)換類型,“0”表示字段“一對(duì)一”映射,“1”表示字段拆分,“2”表示字段合并等。元素“where”值為數(shù)據(jù)遷移條件,用于生成“where”語句。下面以源數(shù)據(jù)庫“mysqldb”中“employee”表的“id”、“name”字段遷移到目標(biāo)數(shù)據(jù)庫“oracledb”中“員工表”表的“編號(hào)”和“姓名”字段為例,描述“一對(duì)一”映射模型。

3.3.2“多對(duì)一”映射

映射模型XML文件描述說明同“一對(duì)一”映射相同。下面以源數(shù)據(jù)庫“mysqldb”中“employee”表和“salary”表合并遷移到目標(biāo)數(shù)據(jù)庫“oracledb”的“員工表”為例,描述“多對(duì)一”的映射模型。其中“employee”表中字段“id”、“name”,“salary”表中字段“id”、“wage”,遷移到目標(biāo)數(shù)據(jù)庫“oracledb”中“員工表”表的“編號(hào)”、“姓名”和“工資”字段,多表連接方法為等值內(nèi)連接。

3.3.3“一對(duì)多”映射

“一對(duì)多”映射模型與“一對(duì)一”類似,依靠源表字段元素值區(qū)分目標(biāo)表名稱。下面以源數(shù)據(jù)“oracledb”中“員工表”表數(shù)據(jù)遷移到目標(biāo)數(shù)據(jù)庫“mysql”的“employee”和“salary”表中為例,描述“一對(duì)多”映射模型。源表“員工表”的“編號(hào)”和“姓名”字段與目標(biāo)表“employee”的“id”、“name”字段映射,源表“員工表”的“編號(hào)”和“工資”字段與目標(biāo)表“salary”的“id”、“wage”字段映射。數(shù)據(jù)全遷移,遷移條件元素“where”值為空。

3.4 數(shù)據(jù)轉(zhuǎn)換

解析XML格式映射模型文件,生成字段映射表和相應(yīng)SQL腳本語句,抽取源數(shù)據(jù)庫數(shù)據(jù),根據(jù)字段映射表對(duì)字段數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換、合并、拆分、計(jì)算等操作,生成目標(biāo)數(shù)據(jù)庫SQL腳本,最后裝載到目標(biāo)數(shù)據(jù)庫中?;赬ML異構(gòu)數(shù)據(jù)庫遷移轉(zhuǎn)換模型圖如圖3所示。

圖3 基于XML異構(gòu)數(shù)據(jù)庫遷移轉(zhuǎn)換模型圖

4 結(jié)語

本文提出一種以XML為映射模型載體,構(gòu)建源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫的映射模型,在異構(gòu)數(shù)據(jù)庫間實(shí)現(xiàn)數(shù)據(jù)的提取、轉(zhuǎn)換、加載的數(shù)據(jù)遷移技術(shù),解決傳統(tǒng)編寫腳本遷移數(shù)據(jù)的效率低、易出錯(cuò),對(duì)操作人員要求高等缺點(diǎn),在企事業(yè)單位信息系統(tǒng)升級(jí)改造和信息共享等工作中減輕用戶工作量,提高工作效率,為企事業(yè)單位信息共享融合提供有力支撐。下一步研究方向是實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫與半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)庫之間數(shù)據(jù)遷移,在企事業(yè)單位信息化建設(shè)中實(shí)現(xiàn)數(shù)據(jù)無縫融合提供技術(shù)保障。

猜你喜歡
字段企事業(yè)異構(gòu)
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
試論同課異構(gòu)之“同”與“異”
企事業(yè)單位經(jīng)濟(jì)管理責(zé)任要素及功能分析
大數(shù)據(jù)時(shí)代人力資源管理變革方向研究
發(fā)力提高企事業(yè)單位財(cái)會(huì)人員的綜合素質(zhì)
overlay SDN實(shí)現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
在市場(chǎng)經(jīng)濟(jì)條件下進(jìn)一步做優(yōu)做強(qiáng)工會(huì)企事業(yè)的幾點(diǎn)思考
LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
CNMARC304字段和314字段責(zé)任附注方式解析
在新興異構(gòu)SoCs上集成多種系統(tǒng)
交城县| 盐亭县| 阿图什市| 卢龙县| 松原市| 洱源县| 鄂尔多斯市| 北海市| 郸城县| 紫云| 枣强县| 漳州市| 和政县| 克什克腾旗| 定陶县| 克山县| 唐海县| 滦南县| 临泽县| 巩留县| 游戏| 于田县| 宕昌县| 灵武市| 会东县| 永吉县| 潮州市| 靖江市| 昌宁县| 梅州市| 清水河县| 当雄县| 蒙山县| 关岭| 乾安县| 英山县| 渝北区| 神木县| 徐水县| 木里| 永平县|