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

?

基于多種遷移策略的元數(shù)據(jù)驅(qū)動(dòng)數(shù)據(jù)遷移研究

2015-05-15 05:51張杰
電腦知識(shí)與技術(shù) 2015年8期

張杰

摘要:該文從遷移策略上介紹了包括歷史數(shù)據(jù)遷移、實(shí)時(shí)數(shù)據(jù)遷移、手動(dòng)數(shù)據(jù)遷移多種策略。從遷移的形式上介紹了包括了從增量遷移和全量遷移;實(shí)際中采用了元數(shù)據(jù)驅(qū)動(dòng)技術(shù),構(gòu)建從舊系統(tǒng)到新系統(tǒng)的映射元模型并制定了映射規(guī)則;技術(shù)上使用了優(yōu)秀的JavaScript框架——Jquery和SQL語(yǔ)句完成了數(shù)據(jù)庫(kù)數(shù)據(jù)的遷移。目前該系統(tǒng)已在數(shù)據(jù)中心建設(shè)中得到應(yīng)用。

關(guān)鍵詞:歷史數(shù)據(jù)遷移;實(shí)時(shí)數(shù)據(jù)遷移;元數(shù)據(jù)驅(qū)動(dòng)技術(shù);映射元模型; 增量遷移;全量遷移

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)08-0251-03

Abstract: This paper describes the migration strategy, including historical data on migration, real-time data migration, data migration manually variety of strategies. From the migration way ,Introduced Incremental migration and Full amount of migration, Realization of using metadata driven technology; From implementation using metadata driven technology, building a mapping meta-model from the old system to the new system and developed mapping rules; From the technology use good JavaScript framework - Jquery and SQL statements to complete the database data migration. Currently the system has been applied in China Petroleum.

Key words: historical data migration; real-time data migration; metadata-driven technology; mapping meta-model; incremental migration; full amount of migration

1 概述

隨著目前企業(yè)信息化進(jìn)程的加速,企業(yè)數(shù)據(jù)中心的建設(shè)日益重要。很多企業(yè)的應(yīng)用系統(tǒng)已經(jīng)運(yùn)行數(shù)年或者更長(zhǎng)的時(shí)間,因此積累了大量的數(shù)據(jù)。如“中石油大慶油田公司A2施工總結(jié)數(shù)據(jù)”。數(shù)據(jù)遷移是將這些舊應(yīng)用系統(tǒng)的數(shù)據(jù)遷移到新系統(tǒng)中,而有些舊系統(tǒng)還會(huì)繼續(xù)運(yùn)行,還會(huì)產(chǎn)生新的數(shù)據(jù),根據(jù)實(shí)際情況迫切需要找到將歷史數(shù)據(jù)實(shí)時(shí)合理地遷移到新系統(tǒng)中去的一種新方法.

2 介紹傳統(tǒng)數(shù)據(jù)的遷移方法

四種傳統(tǒng)的遷移方法有:先遷后錄[1]、先錄后遷、分次遷、一次性遷。

先遷后錄是指:在系統(tǒng)單軌運(yùn)行前通過(guò)市場(chǎng)用的遷移工具或自行開(kāi)發(fā)的程序,將老系統(tǒng)數(shù)據(jù)轉(zhuǎn)入到新系統(tǒng)模型中,再利用新系統(tǒng)功能,也可自行開(kāi)發(fā)配套程序,把遷移到新系統(tǒng)中的老數(shù)據(jù),再根據(jù)需要生成原有的結(jié)果數(shù)據(jù)。這種方法大大減少遷移量。

先錄后遷是指:在系統(tǒng)單軌前,首先把部分?jǐn)?shù)據(jù)輸?shù)叫孪到y(tǒng)中,系統(tǒng)單軌時(shí)再把以前的老數(shù)據(jù)導(dǎo)入新系統(tǒng)數(shù)據(jù)庫(kù)中。這種方法主要適用于新老系統(tǒng)數(shù)據(jù)結(jié)構(gòu)差別很大情況,不能將重要的歷史數(shù)據(jù)導(dǎo)入到新系統(tǒng)中。這些必須的重要數(shù)據(jù)在應(yīng)用新系統(tǒng)前通過(guò)手工錄入到新系統(tǒng)中。

分次遷移是指:利用市場(chǎng)用的遷移工具或自行開(kāi)發(fā)的程序,把老數(shù)據(jù)庫(kù)中的重要的歷史數(shù)據(jù)分幾次做遷移。這種方法把大任務(wù)分成小任務(wù),避免了數(shù)據(jù)量大和宕機(jī)時(shí)間短之間的相矛盾的發(fā)生。這種方法的缺點(diǎn)是:由于數(shù)據(jù)多次合并導(dǎo)致了出錯(cuò)的概率升高,同時(shí)為了保持整體數(shù)據(jù)的一致性,這種方法要求把先導(dǎo)入的數(shù)據(jù)進(jìn)行同步,由此使導(dǎo)入數(shù)據(jù)的難度增加。

一次遷移是指:利用市場(chǎng)用的遷移工具或自行開(kāi)發(fā)的程序,把老數(shù)據(jù)庫(kù)中的數(shù)據(jù)通過(guò)這種方法一次性全部導(dǎo)入到新數(shù)據(jù)庫(kù)中。這種方法的優(yōu)點(diǎn)是:過(guò)程用時(shí)短,與分次遷移相比較,問(wèn)題涉及的較少,風(fēng)險(xiǎn)較低,其缺點(diǎn)是:遷移過(guò)程不太受控,而且勞動(dòng)強(qiáng)度大。

而這些遷移策略不能夠滿足用戶對(duì)于數(shù)據(jù)及時(shí)遷移的需要。因此本文提出了歷史數(shù)據(jù)遷移、實(shí)時(shí)數(shù)據(jù)遷移、手動(dòng)數(shù)據(jù)遷移多種策略,這些策略滿足了數(shù)據(jù)進(jìn)入新系統(tǒng)的及時(shí)性要求,目前此系統(tǒng)已經(jīng)在中石油大慶油田井下數(shù)據(jù)中心中投入使用。

3 數(shù)據(jù)遷移策略框架體系模型設(shè)計(jì)

圖1為基于多種遷移策略的遷移體系結(jié)構(gòu)模型。對(duì)于歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)給予不同的遷移策略,實(shí)現(xiàn)了多種形式數(shù)據(jù)的遷移。

3.1 數(shù)據(jù)模型映射

數(shù)據(jù)模型映射[2]通過(guò)多種遷移方法來(lái)實(shí)現(xiàn)。什么是數(shù)據(jù)模型映射?它是通過(guò)一個(gè)映射規(guī)則,建立起一個(gè)目標(biāo)模型和源模型之間的關(guān)系。在源模型和目標(biāo)模型的描述已存在的情況下開(kāi)始映射。模型映射即是數(shù)據(jù)映射。

一些數(shù)據(jù)映射關(guān)系的基本概念如下:

映射屬性和映射實(shí)體。反映源系統(tǒng)與目標(biāo)系統(tǒng)在概念模型上的對(duì)應(yīng)關(guān)系[3]是用戶可以見(jiàn)到的較高視圖的映射實(shí)體。也是映射關(guān)系的最底層,屬于規(guī)則處理的最小單位。表格與實(shí)體的對(duì)應(yīng),說(shuō)明了引用和實(shí)體的完整性,屬性映射是實(shí)現(xiàn)映射實(shí)體和映射屬性的基礎(chǔ)。不論引用完整性和實(shí)體完整性,都需要屬性來(lái)實(shí)現(xiàn)。映射實(shí)體可分為目標(biāo)映射實(shí)體和源映射實(shí)體;映射屬性又可分為:分為目標(biāo)映射屬性和源映射屬性。

映射關(guān)系

映射關(guān)系是指:目標(biāo)實(shí)體和源實(shí)體屬性之間的關(guān)系。有向線段和映射模式(MM)構(gòu)成映射關(guān)系。映射源映射實(shí)體的映射屬性就是映射關(guān)聯(lián)起始節(jié)點(diǎn),映射的目標(biāo)實(shí)體的映射屬性就是映射關(guān)聯(lián)的目標(biāo)節(jié)點(diǎn)。

三種形式的映射模式分別為為:語(yǔ)義映射模式(SEMA_MM)[4]、數(shù)據(jù)映射模式和算數(shù)映射模式。語(yǔ)義映射模式用于解決屬性概念的語(yǔ)義計(jì)算。數(shù)據(jù)映射模式表示常量數(shù)值。算數(shù)映射用于表示屬性間的加減等算數(shù)操作運(yùn)算。

什么是數(shù)據(jù)映射關(guān)系

數(shù)據(jù)映射關(guān)系是: 如M就是一個(gè)三元組,映射關(guān)系名稱用M表示,映射關(guān)聯(lián)集合用R表示,映射算子集合用MO表示。映射關(guān)系語(yǔ)法的表示方法可用BNF范式表示,術(shù)語(yǔ)符號(hào)用”...”:表示;尖括號(hào)表示必須選擇項(xiàng);定義為用::=表示;中括號(hào)用業(yè)表示可選項(xiàng);大括號(hào)表示可重復(fù)無(wú)限次;左右兩邊的任意選擇項(xiàng)用|:表示;分組用于(...)表示:;參數(shù)用斜體字表示。描述映射關(guān)系規(guī)則如下:映射關(guān)系的語(yǔ)法描述如下。

3.2 元數(shù)據(jù)設(shè)計(jì)

根據(jù)以上對(duì)映射關(guān)系描述,映射模式又可分類為:從源映射實(shí)體到目標(biāo)映射實(shí)體間的映射關(guān)系,對(duì)每一類映射關(guān)系又可定義為一類映射模式。但是,每一類映射模式又是一類數(shù)據(jù)轉(zhuǎn)換規(guī)則;通過(guò)對(duì)油田A2數(shù)據(jù)模型的研究,由映射模式的三大類,被細(xì)分為16種映射模式。由支撐元數(shù)據(jù)可定制映射模式元數(shù)據(jù)。對(duì)應(yīng)數(shù)據(jù)庫(kù)間對(duì)應(yīng)字段的映射模式是映射模式元數(shù)據(jù)的核心,它定義了數(shù)據(jù)表結(jié)構(gòu)的轉(zhuǎn)換以及處理方式,這些信息集中存儲(chǔ)在元模型中。映射元數(shù)據(jù)模型見(jiàn)圖 2映射元數(shù)據(jù)模型圖。

3.3多策略數(shù)據(jù)遷移系統(tǒng)工具框架結(jié)構(gòu)圖

工具的總體設(shè)計(jì)思想是:由于遷移的數(shù)據(jù)量很大,首先對(duì)歷史數(shù)據(jù)進(jìn)行歷史數(shù)據(jù)遷移;對(duì)于各個(gè)應(yīng)用系統(tǒng)產(chǎn)生的實(shí)時(shí)數(shù)據(jù),通過(guò)定時(shí)遷移模塊進(jìn)行定時(shí)觸發(fā)遷移;還提供了手動(dòng)觸發(fā)遷移模式,在手動(dòng)觸發(fā)模塊中用戶可以通過(guò)選擇表及其父表、選擇實(shí)體(井、施工事件)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)遷移的觸發(fā)。歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)在遷移的過(guò)程中產(chǎn)生的遷移日志存入相應(yīng)的文件中(圖 3多策略數(shù)據(jù)遷移系統(tǒng)工具框架結(jié)構(gòu)圖)

4 工具實(shí)現(xiàn)與應(yīng)用

4.1手動(dòng)遷移模塊的具體實(shí)現(xiàn)

手動(dòng)遷移模塊中提供了兩種對(duì)象間的對(duì)應(yīng)關(guān)系:實(shí)體對(duì)應(yīng)關(guān)系;表格對(duì)應(yīng)關(guān)系。

篩選重復(fù)表:

在A2施工總結(jié)遷移工具中,不僅提供單表之間的對(duì)應(yīng)關(guān)系還提供單表及其父表的對(duì)應(yīng)關(guān)系。當(dāng)用戶在選擇表的時(shí)候可能會(huì)出現(xiàn)多個(gè)表的父表重復(fù)的情況。如果對(duì)每一個(gè)被選擇的表及其父表都進(jìn)行遷移必然會(huì)增加系統(tǒng)負(fù)擔(dān),降低執(zhí)行效率,因此需要對(duì)用戶選擇的所有表進(jìn)行遍歷,形成一個(gè)有序的集合進(jìn)行遷移。

有兩種基本機(jī)構(gòu):在初始化的過(guò)程中,把A2施工總結(jié)中所有的表組成一個(gè)順序線性鏈表[5],每張表相當(dāng)于樹(shù)中的一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)存儲(chǔ)著表代碼(code)、確認(rèn)標(biāo)志(sign)、節(jié)點(diǎn)路徑(path)三種節(jié)點(diǎn)信息。而樹(shù)的繼承關(guān)系由表的父子關(guān)系來(lái)描述的。(如圖 4表組成的有序樹(shù)與節(jié)點(diǎn)所示)

步驟1:初始化樹(shù)節(jié)點(diǎn)

當(dāng)選擇表格以后,首先對(duì)樹(shù)的節(jié)點(diǎn)進(jìn)行初始化,所有節(jié)點(diǎn)形成一個(gè)順序線性鏈表。節(jié)點(diǎn)的順序使用各個(gè)表所在的父子關(guān)系來(lái)描述。在映射表順序信息中每個(gè)表的繼承順序采用目錄方式進(jìn)行存儲(chǔ),實(shí)現(xiàn)的SQL語(yǔ)句如下所示:

Select * from sequ_t t where t.sequence is not null order by length(t.sequence),t.sequence

步驟2:得到被選擇的一個(gè)表的順序表

對(duì)于選擇的第i個(gè)節(jié)點(diǎn)使用遞歸方式找出其所有的父表,得到一個(gè)順序表:Ui{Tmi,Tmi+1,T mi+2,…….,T mi+n}。使用Li代表節(jié)點(diǎn)Ti的路徑的目錄數(shù),prev()是獲得上一級(jí)節(jié)點(diǎn)的函數(shù),那么得到節(jié)點(diǎn)Ti根節(jié)點(diǎn)遞歸表達(dá)式為:

步驟3:修改順序線性鏈表

然后與初始化得到的順序數(shù)進(jìn)行比對(duì)并修改確認(rèn)標(biāo)志。

重復(fù)以上的過(guò)程直到最后一個(gè)被選擇的節(jié)點(diǎn)操作完畢。操作過(guò)程如圖 5 篩選重復(fù)表流程

4.2實(shí)現(xiàn)歷史遷移模塊的過(guò)程

4.2.1、實(shí)時(shí)獲取遷移信息

由于歷史數(shù)據(jù)遷移量較大,客戶端向服務(wù)器的請(qǐng)求時(shí)間很長(zhǎng),所以出現(xiàn)了頁(yè)面失效的問(wèn)題。故采用Ajax[7]異步方式使遷移模塊在服務(wù)器后臺(tái)運(yùn)行來(lái)實(shí)現(xiàn)歷史數(shù)據(jù)的遷移,并把遷移過(guò)程中產(chǎn)生的日志信息存入日志文件中。為了讀取所產(chǎn)生的日志信息,采用Jquery [6] 定時(shí)器定時(shí)以同步方式從服務(wù)器取回遷移信息,并在客戶端進(jìn)行顯示,使用Jquery框架能夠很好的實(shí)現(xiàn)前臺(tái)與后臺(tái)的交互。如圖 6同步獲取遷移信息的流程

5 結(jié)束語(yǔ)

該文描述了一個(gè)基于多種遷移策略的數(shù)據(jù)遷移的架構(gòu),構(gòu)建了元數(shù)據(jù)模型,點(diǎn)討論了映射規(guī)則和具體的實(shí)現(xiàn),解決了各個(gè)應(yīng)用系統(tǒng)的歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的遷移。以上提到的遷移策略在實(shí)際工作中已經(jīng)被采用,順利的實(shí)現(xiàn)的源系統(tǒng)與目標(biāo)系統(tǒng)數(shù)據(jù)的遷移,保證了系統(tǒng)的正常運(yùn)轉(zhuǎn)。

參考文獻(xiàn):

[1] 王東,文必龍,林冬梅.數(shù)據(jù)映射工具設(shè)計(jì)[J].大慶石油學(xué)院學(xué)報(bào),1997(4).

[2] 徐茜,呂良雙. MIS數(shù)據(jù)遷移中的映射規(guī)則[J].計(jì)算機(jī)與現(xiàn)代化,2007(8).

[3] 張小波,成良玉,邱科寧,.基于協(xié)同數(shù)據(jù)庫(kù)的數(shù)據(jù)遷移模型研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(5).

[4] 張珈珣.用電管理系統(tǒng)數(shù)據(jù)遷移的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2009.

[5] 左正康,游珍,薛錦云.后序遍歷二叉樹(shù)非遞歸算法的推導(dǎo)及形式化證明[J].計(jì)算機(jī)工程與科學(xué),2010(3).

[6] jQuery官方網(wǎng)站[EB/OL].http://www.jquery.com.

[7] 陽(yáng)峰,徐建波. AJAX技術(shù)的性能改進(jìn)研究[J].計(jì)算機(jī)工程與科學(xué),2008(6).