• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Web Service多源異構(gòu)系統(tǒng)增量同步的實(shí)現(xiàn)

      2018-05-22 07:35:53龐秋奔
      關(guān)鍵詞:異構(gòu)日志增量

      龐秋奔 李 銀

      1 (廣西醫(yī)科大學(xué)第一附屬醫(yī)院 廣西 南寧 530021)2 (中國(guó)移動(dòng)通信集團(tuán)廣西有限公司 廣西 南寧 530000)

      0 引 言

      在互聯(lián)網(wǎng)+、云平臺(tái)背景下,各企業(yè)單位利用信息技術(shù)進(jìn)行內(nèi)部系統(tǒng)的系統(tǒng)連接,實(shí)現(xiàn)信息共享,重建流程,在一定的意義上形成規(guī)模更大的信息實(shí)體。內(nèi)部的集成平臺(tái)、數(shù)據(jù)中心也日益凸顯重要,而在建設(shè)系統(tǒng)集成過(guò)程中,如何交換同步數(shù)據(jù),各分系統(tǒng)形成統(tǒng)一一致的標(biāo)準(zhǔn)化字典數(shù)據(jù),無(wú)疑是系統(tǒng)集成的熱點(diǎn)。在面對(duì)異構(gòu)、同步數(shù)據(jù)量大的背景下,如何提高數(shù)據(jù)同步的效率是在多源異構(gòu)系統(tǒng)之間建立一致標(biāo)準(zhǔn)化字典數(shù)據(jù)的關(guān)鍵問(wèn)題。

      對(duì)數(shù)據(jù)集成而言,就是滿足在不同應(yīng)用需求時(shí),采用不同的方法。對(duì)交換數(shù)據(jù)量低、實(shí)時(shí)性要求高,用消息交互的應(yīng)用集成方式,JMS的消息中間件,比如Active MQ、Open JMS;對(duì)交換數(shù)據(jù)量大、實(shí)時(shí)性要求低,用數(shù)據(jù)庫(kù)數(shù)據(jù)集成方式,如數(shù)據(jù)庫(kù)集成工具Oracle Golden Gate。在異構(gòu)環(huán)境下,數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,采用的方法主要有:消息隊(duì)列的中間件模型[1]、建立中心數(shù)據(jù)庫(kù)[2]、使用XML和Web Services實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)同步[3]等。當(dāng)前,XML的跨平臺(tái)、可格式化、良好交互性與Web Services的平臺(tái)獨(dú)立性(實(shí)現(xiàn)允許服務(wù)提供者和服務(wù)調(diào)用者在Internet上進(jìn)行數(shù)據(jù)交互)使得利用XML和Web Services來(lái)進(jìn)行數(shù)據(jù)傳輸和共享成為了研究的熱點(diǎn)。但在面臨多個(gè)復(fù)雜系統(tǒng)的數(shù)據(jù)交互同步,多個(gè)系統(tǒng)Web Services的調(diào)用與管理復(fù)雜性倍增的問(wèn)題上,集成平臺(tái)在解決數(shù)據(jù)交互上有著自身的優(yōu)勢(shì),為多個(gè)復(fù)雜異構(gòu)系統(tǒng)的集成提供強(qiáng)大的支持。能梳理復(fù)雜的數(shù)據(jù)交互接口,提高數(shù)據(jù)交換效率,形成標(biāo)準(zhǔn)化,易控易管理的接口平臺(tái)。

      已有的同步技術(shù)研究主要面向在采用如Oracle、 SQL Server、My SQL等主流關(guān)系型數(shù)據(jù)庫(kù)之間實(shí)現(xiàn)增量同步,缺少對(duì)分別采用面向?qū)ο笈c關(guān)系型數(shù)據(jù)庫(kù)的異構(gòu)系統(tǒng)之間實(shí)現(xiàn)增量同步的研究。本文針對(duì)此問(wèn)題進(jìn)行研究,在增量數(shù)據(jù)交換數(shù)據(jù)量不大,實(shí)時(shí)性要求不高的應(yīng)用需求前提下,使用集成平臺(tái)集成多個(gè)異構(gòu)系統(tǒng)的架構(gòu)。研究對(duì)比增量數(shù)據(jù)捕獲方法,設(shè)計(jì)一種結(jié)合采用數(shù)據(jù)庫(kù)日志分析法與Web Service技術(shù),在采用了面向?qū)ο髷?shù)據(jù)庫(kù)、關(guān)系型數(shù)據(jù)庫(kù)的異構(gòu)系統(tǒng)之間實(shí)現(xiàn)增量同步,實(shí)現(xiàn)主庫(kù)到各異構(gòu)分庫(kù)的增量數(shù)據(jù)同步,提高數(shù)據(jù)同步的效率。研究重點(diǎn)在于面向?qū)ο髷?shù)據(jù)庫(kù)大日志數(shù)據(jù)的解析,與如何通過(guò)集成平臺(tái)在多源異構(gòu)系統(tǒng)之間進(jìn)行數(shù)據(jù)的增量同步,實(shí)現(xiàn)各異構(gòu)分庫(kù)與主庫(kù)保持統(tǒng)一標(biāo)準(zhǔn)化數(shù)據(jù)字典的目的。

      1 面向?qū)ο驝aché數(shù)據(jù)庫(kù)日志分析法捕獲增量數(shù)據(jù)

      增量數(shù)據(jù)主要是指對(duì)數(shù)據(jù)庫(kù)增加、修改和刪除操作的數(shù)據(jù)庫(kù)記錄。常用捕獲增量數(shù)據(jù)[4]的主要方法有:API法: 在源系統(tǒng)植入獲取增量數(shù)據(jù)的程序,產(chǎn)生增量數(shù)據(jù)文件,但對(duì)源程序改動(dòng)太大??煺辗ǎ罕容^源數(shù)據(jù)的兩個(gè)快照,當(dāng)數(shù)據(jù)量特別大時(shí),性能會(huì)成為問(wèn)題。日志分析法:日志包含了全部成功提交的操作記錄信息,通過(guò)對(duì)事務(wù)數(shù)據(jù)庫(kù)日志進(jìn)行分析來(lái)捕獲變化數(shù)據(jù),日志文件量大時(shí),則要求有支持日志文件解析的工具包。觸發(fā)器法:在要抽取的表上建立需要的觸發(fā)器,每當(dāng)源表中的數(shù)據(jù)發(fā)生變化,就被相應(yīng)的觸發(fā)器將變化的數(shù)據(jù)寫入一個(gè)臨時(shí)表,它會(huì)對(duì)業(yè)務(wù)系統(tǒng)的性能造成嚴(yán)重影響,因?yàn)槊看螖?shù)據(jù)庫(kù)更新操作都會(huì)引起一次觸發(fā)器執(zhí)行。

      經(jīng)過(guò)綜合分析, 日志分析法對(duì)業(yè)務(wù)系統(tǒng)的性能影響很小,且實(shí)時(shí)性較強(qiáng)。要求數(shù)據(jù)庫(kù)系統(tǒng)必須具有日志管理系統(tǒng),并且提供分析日志文件所需的命令或工具。本文研究是對(duì)異構(gòu)系統(tǒng)采用面向?qū)ο髷?shù)據(jù)庫(kù)與關(guān)系型數(shù)據(jù)庫(kù)之間實(shí)現(xiàn)增量同步的研究。面向?qū)ο髷?shù)據(jù)庫(kù)典型代表是Caché數(shù)據(jù)庫(kù), Caché 數(shù)據(jù)庫(kù)使用有效的多維數(shù)據(jù)引擎,多維數(shù)據(jù)引擎能夠?qū)?fù)雜的現(xiàn)實(shí)數(shù)據(jù)進(jìn)行直觀、有效的建模。Caché多維數(shù)組被稱之為“Global”,Global是一種類似樹的存儲(chǔ)形式,定義形式為^Global (“節(jié)點(diǎn)1”,“節(jié)點(diǎn)2”,“節(jié)點(diǎn)3”)=“數(shù)據(jù)”。本節(jié)實(shí)現(xiàn)對(duì)面向?qū)ο驝aché數(shù)據(jù)庫(kù)日志進(jìn)行分析捕獲變化數(shù)據(jù)。

      數(shù)據(jù)庫(kù)日志可看作是逆數(shù)據(jù)操作列表,分析日志中的數(shù)據(jù)可獲得數(shù)據(jù)庫(kù)的變化數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的日志記錄形式都不一樣,但基本可以用一個(gè)七元組來(lái)簡(jiǎn)單描述[5]:〈LSN,TID,E,O,T,V,W〉。其中LSN 為日志記錄的唯一標(biāo)識(shí),TID 標(biāo)識(shí)事務(wù),E 為操作的數(shù)據(jù)對(duì)象,O 表示數(shù)據(jù)庫(kù)操作,T 為操作發(fā)生的時(shí)刻,V和W 分別表示操作數(shù)據(jù)的新值和舊值。對(duì)于面向?qū)ο驝aché數(shù)據(jù)庫(kù),日志數(shù)據(jù)也帶有七元組的元素,但也有所不同。以下是從Caché數(shù)據(jù)庫(kù)日志內(nèi)容中通過(guò)日志文件工具導(dǎo)出 Global: ^ABC數(shù)據(jù)變化的日志片斷:

      Address: 373980

      Type: Set

      Intransaction: No

      Job ID: 0x003D0015

      Process ID: 3997717(jid)

      Remote systemID: 0

      Time stamp: 63998,14405-03/21/2016 04:00:05

      Collation sequence: 5

      Prev address: 373928

      Next address: 374032

      Global: ^[“^^C:MyCachemgr”]ABC

      New Value: 5

      Old Value: 2

      其中Address表示文件記錄的位置,Type是命令的類型,In transaction 表示更新是否發(fā)生在事務(wù)中,Process ID是進(jìn)程ID號(hào),Remote system ID 表示遠(yuǎn)程系統(tǒng)ID號(hào), 0表示本地進(jìn)程, Time stamp 表示日志緩存時(shí)間, Global 表示更新的Global節(jié)點(diǎn),可對(duì)應(yīng)一個(gè)關(guān)系二維表記錄, New Value 對(duì)Set命令賦予的新值, Old Value 對(duì)Set或Kill命令操作之前的值。每個(gè)數(shù)據(jù)變化日志導(dǎo)出大體是此類結(jié)構(gòu),數(shù)據(jù)變化為新增記錄的,無(wú)Old Value行;對(duì)數(shù)據(jù)變化為修改、刪除記錄的,有Old Value行。其他行數(shù)據(jù)標(biāo)簽是一樣的,值不同。

      在Caché數(shù)據(jù)庫(kù)中,每個(gè)表可對(duì)應(yīng)一個(gè)Caché多維數(shù)組即Global。每條記錄對(duì)應(yīng)一個(gè)Global節(jié)點(diǎn),對(duì)于數(shù)據(jù)庫(kù)表記錄的增、刪、改都對(duì)應(yīng)到Global。由以上分析可見(jiàn)Caché數(shù)據(jù)庫(kù)的日志可導(dǎo)出為帶標(biāo)簽的結(jié)構(gòu)化模板格式,對(duì)于結(jié)構(gòu)化模板的日志文件,利用數(shù)據(jù)庫(kù)技術(shù)與正則表達(dá)式,通過(guò)匹配模板的方式來(lái)提取變化的數(shù)據(jù)。通過(guò)提取日志數(shù)據(jù)中對(duì)應(yīng)的Global標(biāo)簽的內(nèi)容來(lái)獲取增、刪、改操作后導(dǎo)致數(shù)據(jù)庫(kù)表變化記錄的主鍵值。特別地對(duì)數(shù)據(jù)的刪除操作,考慮基礎(chǔ)字典數(shù)據(jù)表的完整性,一般情況下數(shù)據(jù)庫(kù)設(shè)計(jì)為每個(gè)基礎(chǔ)表記錄增加一個(gè)字段,記錄是否結(jié)束,而不是物理刪除數(shù)據(jù)。因此,對(duì)于修改和刪除,都視為修改。對(duì)于可導(dǎo)出為結(jié)構(gòu)化模板的日志文件,采用提取相關(guān)的日志文件,轉(zhuǎn)化為數(shù)據(jù)庫(kù)的行列后進(jìn)行正則表達(dá)式分析匹配搜索變化的目標(biāo)數(shù)據(jù)。

      Caché數(shù)據(jù)庫(kù)基礎(chǔ)表數(shù)據(jù)的增、刪、改日志內(nèi)容都體現(xiàn)在Global標(biāo)簽內(nèi)容,可歸納出特定的模式匹配串,通過(guò)在日志文件找到各記錄Global節(jié)點(diǎn)對(duì)應(yīng)的主鍵ID。新增、刪除、修改數(shù)據(jù)的日志內(nèi)容都帶有Global主數(shù)據(jù)data節(jié)點(diǎn)的特征。例如表1是人員表SS_USER對(duì)應(yīng)的Global結(jié)構(gòu)設(shè)計(jì),SS_USER表數(shù)據(jù)變化都帶有^SSU(“SSUSR”,{ SSUSR_Rowid})的模式,因?yàn)镾SUSR_Rowid是變化的,在日志文件中體現(xiàn)為各主鍵ID值。本文使用正則表達(dá)式進(jìn)行匹配,即匹配出所有SSU("SSUSR", *)結(jié)構(gòu)的串,再提取出*對(duì)應(yīng)的數(shù)值,即對(duì)應(yīng)于修改或刪除記錄的主鍵ID值。需要同步的表對(duì)應(yīng)的Global與匹配模式串存放在一個(gè)設(shè)定好的同步配置表中(見(jiàn)表2)。

      表1 人員表SS_USER對(duì)應(yīng)多維數(shù)組Global

      表2 同步配置表

      結(jié)合本節(jié)分析,Caché數(shù)據(jù)庫(kù)表增量數(shù)據(jù)捕獲具體處理流程如圖1、圖2所示,主要分為3大模塊內(nèi)容[2,5]:下載日志;解析日志、捕獲增量數(shù)據(jù)主鍵ID;檢索源數(shù)據(jù)、轉(zhuǎn)換輸出。

      圖1 增量數(shù)據(jù)捕獲處理流程 圖2 日志解析處理流程

      Caché數(shù)據(jù)庫(kù)同步表記錄增量變化捕獲處理步驟如下:

      步驟1獲取指定日期內(nèi)的數(shù)據(jù)庫(kù)文件日志目錄結(jié)構(gòu)。使用數(shù)據(jù)庫(kù)日志命令:DO^JRNDUMP獲取相應(yīng)日志文件目錄結(jié)構(gòu)。

      步驟2對(duì)步驟1的日志文件目錄,循環(huán)對(duì)每個(gè)日志文件,讀取同步配置表,使用 SELECT^JRNDUMP命令搜索提取出含同步表的日志內(nèi)容,分別保存為txt文件。

      步驟3循環(huán)對(duì)步驟2的txt日志文件,使用Caché數(shù)據(jù)庫(kù)與正則表達(dá)式進(jìn)行索引查找。

      步驟3.1以流方式讀取步驟2得到的各行數(shù)據(jù)。

      步驟3.2對(duì)步驟3.1的各行數(shù)據(jù)進(jìn)行處理:

      步驟3.2.1定位“Global”標(biāo)簽行;

      步驟3.2.2轉(zhuǎn)換為Caché 數(shù)據(jù)庫(kù)臨時(shí)表各行列,標(biāo)簽為一列,標(biāo)簽值為一列;

      步驟3.2.3讀取同步配置表對(duì)應(yīng)的模式匹配串,對(duì)3.2.2各行標(biāo)簽值進(jìn)行匹配,若匹配,取出模式串對(duì)應(yīng)到*數(shù)值,則為增、刪、改操作記錄對(duì)應(yīng)到源表有變動(dòng)記錄的主鍵ID值。

      步驟4在定義好的兩個(gè)繼承XML.Adaptor適配器類中,一個(gè)類定義一個(gè)類型為list集合的屬性,list集合成員為另個(gè)類的對(duì)象。循環(huán)地進(jìn)行對(duì)象實(shí)例化與插入list集合:根據(jù)步驟3.2.3得到的各主鍵ID與需要同步的字段列,用各主鍵ID的Global data節(jié)點(diǎn)下對(duì)應(yīng)的字段值相應(yīng)地賦值給對(duì)象屬性,并將實(shí)例化的對(duì)象插入有l(wèi)ist集合屬性的類對(duì)象。

      步驟5使用XMLExportToStream方法將步驟4中定義有l(wèi)ist集合屬性的對(duì)象轉(zhuǎn)換為XML流,最后輸出所有變化數(shù)據(jù)的XML流。

      2 結(jié)合數(shù)據(jù)庫(kù)日志分析法+集成平臺(tái)實(shí)現(xiàn)增量數(shù)據(jù)同步的設(shè)計(jì)

      目前通常采用基于中間件模型和數(shù)據(jù)倉(cāng)庫(kù)等的方法來(lái)構(gòu)造集成系統(tǒng)。本文的研究背景是內(nèi)部各系統(tǒng)之間基礎(chǔ)數(shù)據(jù)的增量同步、增量數(shù)據(jù)交換數(shù)據(jù)量不大,實(shí)時(shí)性要求不高。適合采用基于集成平臺(tái)的,通過(guò)消息交互的應(yīng)用集成方式。集成平臺(tái)方式是面向?qū)ο蟮拈_放式集成技術(shù), 集成平臺(tái)與各個(gè)應(yīng)用系統(tǒng)之間形成一種星形的拓?fù)浣Y(jié)構(gòu), 各系統(tǒng)之間的消息交換通過(guò)各自的適配器由集成平臺(tái)統(tǒng)一控制管理。系統(tǒng)中各子系統(tǒng)和用戶的信息采用統(tǒng)一的標(biāo)準(zhǔn), 規(guī)范和編碼, 實(shí)現(xiàn)全系統(tǒng)信息共享。由于本文的研究對(duì)象是針對(duì)醫(yī)療行業(yè),由于其行業(yè)的特殊性,醫(yī)療行業(yè)內(nèi)的專業(yè)信息化系統(tǒng)多、流程多且動(dòng)態(tài)變化、數(shù)據(jù)多且復(fù)雜的特點(diǎn), 適合使用具有快速集成應(yīng)用和開發(fā)符合程序的,基于ESB 消息總線的Ensemble平臺(tái)。基于Ensemble集成平臺(tái)的提供多種輸入輸出適配器,有效解決系統(tǒng)異構(gòu)問(wèn)題,數(shù)據(jù)交互過(guò)程提供可視化工具進(jìn)行工作流定制與管理。

      Ensemble集成平臺(tái)[9-10]主要實(shí)現(xiàn)將一個(gè)系統(tǒng)的消息傳遞給另一個(gè)或者多個(gè)其他系統(tǒng),消息是Ensemble內(nèi)部協(xié)調(diào)業(yè)務(wù)步驟所需要傳遞的數(shù)據(jù),消息根據(jù)方向分為請(qǐng)求消息和響應(yīng)消息。每建立的一個(gè)Ensemble production包含三個(gè)組件:業(yè)務(wù)服務(wù)(BS)、業(yè)務(wù)流程(BP)、業(yè)務(wù)操作(BO)。BS從Ensemble外部接收消息,每一個(gè)BS連接一個(gè)接口;BP提供邏輯以及流程控制,對(duì)于HL7,成為“消息路由”或者“路由引擎”;BO向Ensemble外部發(fā)送消息,每一個(gè)操作連接一個(gè)接口。通過(guò)從BS到BP,再到BO實(shí)現(xiàn)消息的傳遞。

      本文在Ensemble集成平臺(tái)上用Web Service+XML方式實(shí)現(xiàn)增量數(shù)據(jù)在多源異構(gòu)系統(tǒng)之間的增量同步[3,7-8,11],具體設(shè)計(jì)的處理過(guò)程見(jiàn)圖3。

      圖3 增量數(shù)據(jù)同步更新處理流程

      處理流程的過(guò)程說(shuō)明如下:

      (1) 源應(yīng)用程序定期觸發(fā)增量變化數(shù)據(jù)捕獲程序模塊(具體見(jiàn)第1節(jié)),把輸出的增量變化數(shù)據(jù)XML流和隨機(jī)生成的進(jìn)程ID分別插入增量數(shù)據(jù)表和發(fā)送到集成平臺(tái)。

      (2) 集成平臺(tái)通過(guò)BS、BP、BO處理后,發(fā)送到目標(biāo)應(yīng)用程序。

      (3) 目標(biāo)應(yīng)用程序通過(guò)自身Web Service獲取從集成平臺(tái)傳入的XML流,使用DataSet讀取XML流,根據(jù)解析轉(zhuǎn)換出來(lái)的各行記錄,更新目標(biāo)數(shù)據(jù)庫(kù)對(duì)應(yīng)的表數(shù)據(jù)。并向集成平臺(tái)發(fā)送同步是否成功的響應(yīng)消息。

      (4) 集成平臺(tái)向源應(yīng)用程序轉(zhuǎn)發(fā)響應(yīng)消息。

      (5) 源應(yīng)用程序接收響應(yīng)消息后,更新增量日志表,若響應(yīng)消息成功,則刪除增量日志表對(duì)應(yīng)進(jìn)程ID的行記錄;若響應(yīng)消息失敗,則源應(yīng)用程序重新發(fā)送,直到重復(fù)次數(shù)超過(guò)3次。若成功,轉(zhuǎn)第7步,否則放棄。

      (6) 源應(yīng)用程序定期輪詢?cè)隽繑?shù)據(jù)表,若查詢到有數(shù)據(jù),跳轉(zhuǎn)到第2步。

      (7) 結(jié)束。

      圖4中的增量數(shù)據(jù)表設(shè)計(jì)為3列,第1列表自增列, 第2列為進(jìn)程ID,第3列為第2節(jié)中每次生成的XML流字節(jié)。在Ensemble平臺(tái)內(nèi)BS、BP、BO消息處理過(guò)程[7,9]為:平臺(tái)內(nèi)定義好BS、BP、BO程序,BS內(nèi)定義各函數(shù),發(fā)布為集成平臺(tái)的Web Service, 將請(qǐng)求消息發(fā)送給業(yè)務(wù)流程BP。BP內(nèi)利用業(yè)務(wù)流程語(yǔ)言(BPL)工具定制好開始(start)、分流(switch)、調(diào)用(call)、等待(wait)、代碼(code)、結(jié)束(end)業(yè)務(wù)流程,轉(zhuǎn)換消息格式,根據(jù)BS傳入的消息參數(shù)不同,在調(diào)用屬性中設(shè)定調(diào)用的某個(gè)BO,BO中定義好要連接異構(gòu)系統(tǒng)的Web Service接口程序。目標(biāo)程序獲得XML回應(yīng)消息,發(fā)送XML回應(yīng)消息。在需要連接多個(gè)目標(biāo)應(yīng)用程序情況下,在平臺(tái)的BO中添加相應(yīng)的目標(biāo)應(yīng)用程序,在BP中定義好調(diào)用的順序即可。

      圖4中目標(biāo)應(yīng)用程序?qū)nsemble集成平臺(tái)傳入的XML流解析處理的具體過(guò)程為:首先目標(biāo)應(yīng)用程序調(diào)用自身Web Service接收平臺(tái)傳入的XML流;接著使用數(shù)據(jù)集DataSet對(duì)象的ReadXML方法將XML流加載到 DataSet,通過(guò)DataSet.Tables[“表名”]轉(zhuǎn)換為數(shù)據(jù)表DataTable對(duì)象。用foreach循環(huán)DataTable每行數(shù)據(jù),根據(jù)各行的主鍵ID,業(yè)務(wù)邏輯判斷是插入還是更改,最后使用sqlcommand方法將數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)相應(yīng)的表。實(shí)現(xiàn)將增量數(shù)據(jù)也就是源系統(tǒng)變化數(shù)據(jù)同步更新到目標(biāo)系統(tǒng)。

      3 實(shí)驗(yàn)結(jié)果分析

      本文實(shí)驗(yàn)構(gòu)建在筆者所在信息中心的環(huán)境下,該環(huán)境通過(guò)Ensemble集成平臺(tái)實(shí)現(xiàn)了各醫(yī)療子系統(tǒng)的集成。本實(shí)驗(yàn)根據(jù)第1、2節(jié)提出的數(shù)據(jù)庫(kù)日志分析法+Ensemble集成平臺(tái)實(shí)現(xiàn)增量數(shù)據(jù)同步的設(shè)計(jì),實(shí)現(xiàn)主庫(kù)到各異構(gòu)分庫(kù)增量數(shù)據(jù)的準(zhǔn)同步。本實(shí)驗(yàn)的測(cè)試中,主庫(kù)與集成平臺(tái)的測(cè)試環(huán)境參數(shù)為: 操作系統(tǒng)Windows Server 2008 R2 Enterprise;硬件環(huán)境: Intel(R) Xeon(R) CPU X5650 @ 2.67 GHz 2個(gè);內(nèi)存 8 GB。分庫(kù)的測(cè)試環(huán)境參數(shù)為: 操作系統(tǒng)Windows Server 2003 R2 Enterprise;硬件環(huán)境: Intel(R) Xeon(R) CPU E5649 @ 2.53 GHz 2個(gè);內(nèi)存8 GB。網(wǎng)絡(luò)環(huán)境都是 100 Mbit/s校園網(wǎng)。

      主庫(kù)的編程語(yǔ)言采用集成平臺(tái)自帶的M開發(fā)語(yǔ)言, 源數(shù)據(jù)庫(kù)為面向?qū)ο蟮腃aché數(shù)據(jù)庫(kù)。目標(biāo)庫(kù)的編程語(yǔ)言采用C#,數(shù)據(jù)庫(kù)為oracle10i數(shù)據(jù)庫(kù)。實(shí)驗(yàn)通過(guò)對(duì)源數(shù)據(jù)庫(kù)某個(gè)表使用SQLdbx工具進(jìn)行增、刪、改操作,在目標(biāo)數(shù)據(jù)庫(kù)oracle10i目標(biāo)表數(shù)據(jù)檢查是否同步成功,并且在主庫(kù)初始日志大小為111 MB的情況下, 測(cè)試了單個(gè)表,同步4個(gè)字段列,在數(shù)據(jù)記錄行變化的情況下同步成功所用的不同時(shí)間,實(shí)驗(yàn)結(jié)果見(jiàn)圖4。以1千條數(shù)據(jù)為例,下載的日志文件大小為3 763 KB, 增量數(shù)據(jù)XML文件大小為177 KB,同步時(shí)間為19 125 ms。

      圖4 增量同步時(shí)間

      4 結(jié) 語(yǔ)

      本文首先分析了面向?qū)ο驝aché數(shù)據(jù)庫(kù)日志文件的結(jié)構(gòu)特點(diǎn), 用Caché數(shù)據(jù)庫(kù)開放的API下載變化數(shù)據(jù)日志。接著分析如何采用數(shù)據(jù)庫(kù)日志法分析日志, 結(jié)合Caché數(shù)據(jù)庫(kù)與正則表達(dá)式法捕獲增量變化數(shù)據(jù),通過(guò)Ensemble集成平臺(tái),使用Web Service+XML的方式推送到相應(yīng)的目標(biāo)系統(tǒng)。最后是目標(biāo)系統(tǒng)對(duì)XML串的解析與處理。在多源異構(gòu)系統(tǒng)之間完成增量同步,實(shí)現(xiàn)主庫(kù)到各異構(gòu)分庫(kù)的增量數(shù)據(jù)同步的目的,使得各異構(gòu)分庫(kù)與主庫(kù)保持統(tǒng)一標(biāo)準(zhǔn)化數(shù)據(jù)字典, 提高數(shù)據(jù)同步的效率。該方法應(yīng)用到某醫(yī)療環(huán)境的信息系統(tǒng)中,實(shí)驗(yàn)結(jié)果表明本文采用的方法增量同步數(shù)據(jù)文件約在940 KB大小下,同步速度大約為5 300條記錄/min,實(shí)現(xiàn)了多源異構(gòu)系統(tǒng)的增量同步,在不含大對(duì)象情況下,增量同步獲得較好效果。

      參考文獻(xiàn)

      [1] 田淼.分布式異構(gòu)數(shù)據(jù)庫(kù)同步中間件的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012:17-34.

      [2] 王玉標(biāo),饒錫如,何盼.異構(gòu)環(huán)境下數(shù)據(jù)庫(kù)增量同步更新機(jī)制[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2011, 32(3): 948-951.

      [3] 任建輝,徐林,蔡航標(biāo).一種基于XML/Web Services 的分布式數(shù)據(jù)庫(kù)同步技術(shù)的研究與實(shí)現(xiàn)[J].成都大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,28(2):136-145.

      [4] 鄒先霞,賈維嘉,潘久輝. 基于數(shù)據(jù)庫(kù)日志的變化數(shù)據(jù)捕獲研究[J].小型微型計(jì)算機(jī)系統(tǒng),2012,33(3): 534-535.

      [5] 李立亞.一種基于記錄標(biāo)記的數(shù)據(jù)庫(kù)同步算法[J]. 計(jì)算機(jī)與數(shù)字工程,2015,43(6):947-951.

      [6] 周健. 數(shù)據(jù)同步技術(shù)在省級(jí)數(shù)據(jù)集中的應(yīng)用[D].湖北:湖北大學(xué),2012:9-12.

      [7] 宮濤. 異構(gòu)數(shù)據(jù)庫(kù)準(zhǔn)實(shí)時(shí)同步技術(shù)研究[D].湖北:華中科技大學(xué),2010:20-22.

      [8] 劉天平.信息交換平臺(tái)數(shù)據(jù)同步模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2011:38-48.

      [9] 龍鳳舞.基于Ensemble的醫(yī)院信息集成平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 湖南:中南大學(xué),2014:19-20, 24-26.

      [10] 黃冉.基于Ensemble的醫(yī)療信息系統(tǒng)集成[D]. 浙江:浙江大學(xué),2012: 33-42.

      [11] 顧倩文,曾獻(xiàn)輝. 多源異構(gòu)環(huán)境下數(shù)據(jù)同步復(fù)制技術(shù)的研究[J].微型機(jī)與應(yīng)用,2015,34(22):22-24.

      猜你喜歡
      異構(gòu)日志增量
      試論同課異構(gòu)之“同”與“異”
      提質(zhì)和增量之間的“辯證”
      一名老黨員的工作日志
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      “價(jià)增量減”型應(yīng)用題點(diǎn)撥
      游學(xué)日志
      overlay SDN實(shí)現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
      基于均衡增量近鄰查詢的位置隱私保護(hù)方法
      LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
      德州儀器(TI)發(fā)布了一對(duì)32位增量-累加模數(shù)轉(zhuǎn)換器(ADC):ADS1262和ADS126
      昌黎县| 荥阳市| 汶上县| 龙南县| 泰顺县| 绥化市| 天全县| 山阴县| 蓝山县| 尼玛县| 屏东县| 清河县| 南安市| 会东县| 汽车| 凉城县| 安义县| 东方市| 六枝特区| 榆中县| 庆阳市| 翼城县| 深泽县| 临汾市| 兴国县| 科尔| 静海县| 措勤县| 什邡市| 太康县| 都昌县| 镇巴县| 通江县| 桃江县| 宝山区| 漾濞| 汉源县| 峨山| 泸州市| 灌南县| 石阡县|