韓圣亞,嚴 莉,劉 蔭,徐 浩,朱韶松
(國網(wǎng)山東省電力公司信息通信公司,山東濟南 250001)
當前互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)正朝著縱深方向發(fā)展,分布于不同網(wǎng)絡空間的異構(gòu)數(shù)據(jù)源具有典型的分布性和異構(gòu)性特征[1]。數(shù)據(jù)的異構(gòu)性容易導致原始數(shù)據(jù)在提取、分析、集成和融合過程中的復雜度和難度[2-3]。異構(gòu)數(shù)據(jù)處理系統(tǒng)可以有效減少多源異構(gòu)數(shù)據(jù)庫之間的差異性[4-5]。異構(gòu)數(shù)據(jù)處理的一致性程度,是評價異構(gòu)數(shù)據(jù)自動化系統(tǒng)性能的主要指標之一,而且數(shù)據(jù)融合處理完畢后必須對數(shù)據(jù)集做一致性檢驗[6-8]。
匯總現(xiàn)有針對多源異構(gòu)數(shù)據(jù)一致性校驗的方法,文獻[9]提出通過數(shù)據(jù)庫模擬轉(zhuǎn)換的方式來同步源數(shù)據(jù),但該方法對異構(gòu)數(shù)據(jù)的規(guī)模和復雜程度都有要求,無法處理過于復雜的數(shù)據(jù)集;文獻[10]利用HTML 語言工具實現(xiàn)對異構(gòu)數(shù)據(jù)的復制和校驗,但該方法的適用場景較少,靈活性不足,且對于通信網(wǎng)絡的健壯性要求較高。針對上述問題,文中提出基于XML(可擴展標記語言)語言的數(shù)據(jù)一致性校驗方法。XML 是一種標準化、結(jié)構(gòu)化的通用計算機語言,有效彌補了傳統(tǒng)HTML 語言的漏洞和不足,且該語言在結(jié)構(gòu)化設(shè)計、兼容性、可拓展性等方面具有較大的優(yōu)化空間,能夠更好地對異構(gòu)數(shù)據(jù)進行標準化處理,滿足不同用戶的具體使用需求。
XML 語言具有良好的軟件伸縮性、靈活性和可拓展性,對于現(xiàn)有的Web 應用而言,不僅能夠?qū)崿F(xiàn)數(shù)據(jù)的兼容和共享,還可以集成不同結(jié)構(gòu)的異構(gòu)數(shù)據(jù)庫,拓展數(shù)據(jù)庫的應用方向和應用場景[11]。XML 工具對傳統(tǒng)的HTML 語言功能進行了深度完善,更便于比對異構(gòu)數(shù)據(jù)庫,提取關(guān)鍵信息。XML工具的最大優(yōu)勢在于針對異構(gòu)數(shù)據(jù)深度交換和標準化,并能夠參與關(guān)系型數(shù)據(jù)庫之間映射關(guān)系的轉(zhuǎn)換。XML 工具的映射關(guān)系采用基于模型的驅(qū)動方式,如圖1 所示。

圖1 XML語言與異構(gòu)數(shù)據(jù)庫的關(guān)系轉(zhuǎn)換
其中,一種對應關(guān)系轉(zhuǎn)換方式是從關(guān)系數(shù)據(jù)庫的具體模式中識別出映射的具體類型,再基于關(guān)系模式重構(gòu)與其對應的有向圖;另一種映射關(guān)系為根據(jù)XML 文檔結(jié)構(gòu),提取具體的文檔和示例[12]?;赬ML 語言轉(zhuǎn)換的異構(gòu)數(shù)據(jù)庫表包含可參照、可引用的主鍵列,首先構(gòu)建多源異構(gòu)數(shù)據(jù)庫表的主鍵約束關(guān)系,再建立外鍵約束和表的索引約束,確定出兩者之間映射關(guān)系的主體框架結(jié)構(gòu),完成異構(gòu)數(shù)據(jù)庫的結(jié)構(gòu)映射與XML 文檔關(guān)系映射的融合處理。
在XML 文檔模式與異構(gòu)關(guān)系型數(shù)據(jù)庫之間的關(guān)系轉(zhuǎn)換前后,需要保持數(shù)據(jù)表信息的一致,XML 文檔在結(jié)構(gòu)設(shè)計上比HTML 更為復雜。因此在功能設(shè)計和應用范圍上,為保持XML 文檔信息的完整性和一致性,模型轉(zhuǎn)換中僅允許定義單個主元素,并以該元素作為異構(gòu)數(shù)據(jù)網(wǎng)絡的一個子節(jié)點。利用XML工具文檔與異構(gòu)性數(shù)據(jù)庫之間的映射關(guān)系,可以實現(xiàn)對異構(gòu)數(shù)據(jù)格式的轉(zhuǎn)換,這是最終異構(gòu)數(shù)據(jù)一次性校驗的關(guān)鍵環(huán)節(jié),異構(gòu)數(shù)據(jù)轉(zhuǎn)換的主要步驟如下:
Step1:將XML 文檔中的主元素和子元素形成元素集合,元素集合可以準確地描述XML 文檔的結(jié)構(gòu)和類型。
Step2:確定出不同數(shù)據(jù)庫表之間的映射關(guān)系、節(jié)點關(guān)系及網(wǎng)絡拓撲結(jié)構(gòu),并明確數(shù)據(jù)類型映射與閾值約束映射之間的關(guān)系。
Step3:依據(jù)映射關(guān)系集合生成與異構(gòu)數(shù)據(jù)庫對應的XML 格式語言,并按照關(guān)系模型找出與異構(gòu)數(shù)據(jù)庫表同步變化的主鍵、外鍵、索引等工具。
Step4:按照最終的映射結(jié)果將數(shù)值轉(zhuǎn)換過的XML 語句插入數(shù)據(jù)庫中。只有經(jīng)過映射關(guān)系調(diào)整和數(shù)值轉(zhuǎn)換后,自動化異構(gòu)系統(tǒng)在數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型及檢驗標準上才具有一定的可比性。
XML 語言及多元異構(gòu)數(shù)據(jù)庫文檔,均具有良好的數(shù)據(jù)庫兼容性,且內(nèi)部允許運行國際上通用的IEC61850 標準。語義模式是一種較為完善的計算機高級指令集,利用語義指令集構(gòu)造以XML語言為基礎(chǔ)的模型及自動化異構(gòu)系統(tǒng),以便于在計算機語義層面上相互操作[13]。IEC61850 標準是國際上通用的映射標準,利用該標準構(gòu)建的XML 語言模型,可以實現(xiàn)在語義空間范圍內(nèi)的數(shù)據(jù)交互、數(shù)據(jù)傳輸及共享。
使用XML 語言工具包解析相應的文本模型,再遍歷異構(gòu)數(shù)據(jù)庫中的各個數(shù)據(jù)表,比較數(shù)據(jù)類別、數(shù)據(jù)關(guān)系及屬性之間的關(guān)系性。對異構(gòu)數(shù)據(jù)的一致性校驗包括對副本數(shù)據(jù)的一致性校驗,核對單表數(shù)據(jù)的一致性校驗,分析等效數(shù)據(jù)集與原數(shù)據(jù)集的符合程度。等效數(shù)據(jù)集是在數(shù)據(jù)復制、傳輸過程中形成,隨著時間的推移而產(chǎn)生,因此,數(shù)據(jù)的復制與拷貝時間指標,也是評價一次性校驗的重要指標之一。首先構(gòu)建數(shù)據(jù)一致性校驗函數(shù)f如式(1)所示。

其中,A表示精準率,計算公式為a為一致性的數(shù)據(jù)記錄,b為不一致性的數(shù)據(jù)記錄;B是召回率指標,計算公式為c為未檢測出不一致的記錄數(shù)。根據(jù)公式(1)及其指標計算公式得出數(shù)據(jù)一致性校驗的測量函數(shù)f′:

其中,fi表示第i次測量得到的校驗值,ti表示該次校驗所耗費的時間,h表示測量的總次數(shù)。使用fi指標分別對副本數(shù)據(jù)、單表數(shù)據(jù)做一致性校驗,異構(gòu)數(shù)據(jù)的一致性檢驗主要關(guān)注數(shù)據(jù)的內(nèi)容。對于異構(gòu)數(shù)據(jù)的副本而言一致性的校驗項目主要包括校驗實體、元素、及函數(shù)等,利用統(tǒng)計特征識別出滿足條件的特定值,使用測量函數(shù)校驗數(shù)據(jù)是否一致[14]。異構(gòu)數(shù)據(jù)庫測量工作的前提是完成一致性的校驗,如果校驗完畢并獲取檢測結(jié)果,即可以利用測量函數(shù)配置數(shù)據(jù)庫副本數(shù)據(jù),并分塊計算數(shù)據(jù)的差異數(shù)值;如果測量后發(fā)現(xiàn)異構(gòu)數(shù)據(jù)庫中的A指標值與B指標值過低,表明該異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)一致性較差,使用XML 語義值判斷數(shù)據(jù)庫表的一致性,使驗證總體效率得到本質(zhì)地改善。
對于單數(shù)據(jù)表而言,以XML 語言和判斷函數(shù)為基礎(chǔ),使用XML 程序語句可直接實現(xiàn)對內(nèi)容復制前后的數(shù)據(jù)庫表進行對照和判斷[15-16]。獲取單表檢查的結(jié)果后,再計算f′的函數(shù)值,判斷數(shù)據(jù)庫表的一致性程度,異構(gòu)數(shù)據(jù)庫副本校驗與數(shù)據(jù)庫表的校驗流程如圖2 所示。

圖2 異構(gòu)數(shù)據(jù)的一致性校驗流程
在異構(gòu)數(shù)據(jù)校驗中,使用統(tǒng)一化的URI 標識符對整體的資源框架進行描述。在執(zhí)行查詢指令中,利用XML 直接編輯查詢語句,按照模型中匹配的查詢結(jié)果,完成對語義的檢索和一致性校驗。
異構(gòu)源數(shù)據(jù)節(jié)點采用分布式方式部署,通過200 M 的局域網(wǎng)連接,節(jié)點數(shù)據(jù)之間的異構(gòu)性主要從軟件的層面體現(xiàn),涉及到的網(wǎng)絡集群環(huán)境設(shè)置如表1所示。

表1 集群環(huán)境設(shè)置
在操作系統(tǒng)和數(shù)據(jù)庫關(guān)系中都能夠顯示出數(shù)據(jù)庫的異構(gòu)性,實驗用的操作系統(tǒng)選擇Windows10,實驗用的數(shù)據(jù)庫類型、數(shù)據(jù)表數(shù)量、記錄數(shù)量等信息如表2 所示。

表2 數(shù)據(jù)環(huán)境設(shè)置
在200 ms、100 ms 和0 ms 的網(wǎng)絡延遲下,分析不同規(guī)模的異構(gòu)集群數(shù)據(jù)一致性恢復耗時,數(shù)據(jù)的統(tǒng)計結(jié)果如圖3 所示(為了使實驗結(jié)果更為直觀,引入了文獻[9]和文獻[10]參與對比)。

圖3 不同網(wǎng)絡延遲條件下的數(shù)據(jù)一致性恢復耗時對比
當通信網(wǎng)絡不存在數(shù)據(jù)延遲時可以觀測出,隨著數(shù)據(jù)規(guī)模的增加,3 種不同算法的數(shù)據(jù)一致性恢復耗時均有所增加,但3 種算法的效率差距較??;當網(wǎng)絡延遲增加到100 ms時,受到網(wǎng)絡延遲的影響數(shù)據(jù)一致性恢復的耗時有所增長,但文中提出的基于XML 工具的耗時要明顯低于文獻[9]和文獻[10]提出的方法;當網(wǎng)絡延遲進一步增加到200 ms 時,基于XML 語言的數(shù)據(jù)一致性校驗方法的效率優(yōu)勢更為明顯。
數(shù)據(jù)庫中全部的數(shù)據(jù)記錄總數(shù)為50 000 條,隨機將全部數(shù)據(jù)記錄分為10 組,通過網(wǎng)絡在線傳輸,驗證一次性校驗的穩(wěn)定性情況,選取數(shù)據(jù)波動的均值指標μ和方差指標σ2作為評價標準(μ和σ2的取值越低表明數(shù)據(jù)校驗的一致性越穩(wěn)定),統(tǒng)計結(jié)果如表3 所示。

表3 數(shù)據(jù)的一致性校驗均值指標效果對比(μ)

表4 數(shù)據(jù)的一致性校驗方差指標效果對比(σ2)
統(tǒng)計結(jié)果顯示,無論是數(shù)據(jù)一次性校驗的均值指標還是方差指標,相對于兩種傳統(tǒng)的校驗方法,基于XML 工具的數(shù)據(jù)一次性校驗方法的指標值都更低,具有相對優(yōu)勢。最后在0~200 ms 的網(wǎng)絡延遲范圍內(nèi),分析不同的一致性校驗方法在讀寫性能上的差異,網(wǎng)絡延遲設(shè)定為0 ms、50 ms、100 ms、150 ms 和200 ms,讀取數(shù)據(jù)的吞吐率指標值變化如圖4 所示。

圖4 異構(gòu)數(shù)據(jù)讀取的吞吐率指標差異
當網(wǎng)絡延遲較低的條件下,3 種一致性校驗方法的數(shù)據(jù)讀取吞吐率相差較?。浑S著網(wǎng)絡延遲的提升,兩種傳統(tǒng)校驗方法的數(shù)據(jù)讀取吞吐率衰減過快,會嚴重影響到數(shù)據(jù)的一致性校驗。在不同網(wǎng)絡延遲條件下數(shù)據(jù)寫入的吞吐率變化情況如圖5 所示。

圖5 異構(gòu)數(shù)據(jù)寫入的吞吐率指標差異
與數(shù)據(jù)讀取時的吞吐率變化不同,當網(wǎng)絡延遲為0 ms 的條件下,基于XML 供給的一致性校驗方法并沒有出現(xiàn)性能上的衰減,表明該一致性校驗方法具有更強的數(shù)據(jù)復制與轉(zhuǎn)換性能。
數(shù)據(jù)資源作為最重要的社會資源之一,在社會經(jīng)濟生活中發(fā)揮出越來越重要的作用。大數(shù)據(jù)不僅表現(xiàn)為總量上的海量性,還表現(xiàn)為結(jié)構(gòu)上的復雜性,數(shù)據(jù)一致性檢驗也成為數(shù)據(jù)集成和融合的關(guān)鍵環(huán)節(jié)之一。文中基于XML 語言對異構(gòu)性數(shù)據(jù)庫進行一致性檢驗,仿真結(jié)果表明提出方法數(shù)據(jù)一致性校驗效果更好,數(shù)據(jù)讀寫的能力更強。