欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種云端大數(shù)據(jù)處理方法和系統(tǒng)的制作方法

文檔序號:6621965閱讀:351來源:國知局
一種云端大數(shù)據(jù)處理方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種云端大數(shù)據(jù)處理方法和系統(tǒng),該方法包括:定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層;在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表;定義映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。本發(fā)明融合了兩種數(shù)據(jù)模型,增加了數(shù)據(jù)表達(dá)的靈活性和擴(kuò)展性,性能得到了很大的提高。
【專利說明】一種云端大數(shù)據(jù)處理方法和系統(tǒng)

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云存儲(chǔ),特別涉及一種大數(shù)據(jù)的云計(jì)算方法和系統(tǒng)。

【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等應(yīng)用的飛速發(fā)展,全球數(shù)據(jù)量出現(xiàn)了爆炸式增長。數(shù)據(jù)量的飛速增長預(yù)示著現(xiàn)在已經(jīng)進(jìn)入了大數(shù)據(jù)時(shí)代。網(wǎng)絡(luò)運(yùn)營商擁有龐大的用戶,同時(shí)具有對終端及用戶上網(wǎng)通道的掌控能力,使得在用戶行為分析方面具有很好的數(shù)據(jù)基礎(chǔ),深入分析用戶流量行為特征和規(guī)律,發(fā)現(xiàn)用戶潛在消費(fèi)需求,是提升價(jià)值和經(jīng)營水平的有效手段。然而,不僅僅是數(shù)據(jù)規(guī)模越來越大,而且數(shù)據(jù)類型多和處理實(shí)時(shí)性要求都極大地增加了大數(shù)據(jù)處理的復(fù)雜度。大數(shù)據(jù)給傳統(tǒng)的數(shù)據(jù)分析處理技術(shù)(例如并行數(shù)據(jù)庫、數(shù)據(jù)倉庫)帶來的技術(shù)挑戰(zhàn)。傳統(tǒng)數(shù)據(jù)分析處理技術(shù)無法處理大數(shù)據(jù)的高擴(kuò)展性和海量需求。針對億萬的用戶,數(shù)據(jù)呈現(xiàn)出多源化、異構(gòu)化的趨勢,不同的應(yīng)用對數(shù)據(jù)的一致性、數(shù)據(jù)交互、傳輸延時(shí)等均有不同的需求?;赬ML的數(shù)據(jù)模型很好地解決了多機(jī)并行處理的瓶頸,存儲(chǔ)容量也不再受限,并且能更好地存儲(chǔ)各種復(fù)雜的數(shù)據(jù)類型,查詢效率也更高。但XML數(shù)據(jù)模型功能較單一,使用起來沒有SQL數(shù)據(jù)模型靈活,不能增加表以及多表結(jié)合來完成復(fù)雜的查詢功能,應(yīng)用者必須要更深入的分析大數(shù)據(jù)之間的結(jié)構(gòu),對應(yīng)用支持不好,使用不方便。
[0003]因此,針對相關(guān)技術(shù)中所存在的上述問題,目前尚未提出有效的解決方案。


【發(fā)明內(nèi)容】

[0004]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種云端大數(shù)據(jù)處理方法和系統(tǒng),該方法包括:
[0005]定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層;
[0006]在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表;
[0007]定義映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。
[0008]優(yōu)選地,所述SQL層和XML層均由表結(jié)構(gòu)來表示數(shù)據(jù);在該層次模型中,SQL層位于最上層,用于處理應(yīng)用給出的各種事務(wù)性的操作,以及對結(jié)構(gòu)化數(shù)據(jù)的管理,數(shù)據(jù)的屬性和聯(lián)系均用二維表表示。
[0009]優(yōu)選地,所述XML層中的表結(jié)構(gòu)米用多維存儲(chǔ),表第一行是表的結(jié)構(gòu)信息,在定義表時(shí)首先定義表的列簇,所述列簇包含多列,行和列在進(jìn)行數(shù)據(jù)插入時(shí)寫入,在表中插入數(shù)據(jù)時(shí),要指定行、表中存在的列簇、以及列,并產(chǎn)生一個(gè)時(shí)間戳,根據(jù)時(shí)間戳個(gè)數(shù),決定數(shù)據(jù)的副本個(gè)數(shù);XML層的數(shù)據(jù)表和索引表采用水平分片,將表劃分為子表管理,隨著數(shù)據(jù)的插入,當(dāng)子表增長到預(yù)定大小時(shí)分裂為兩個(gè)子表,每個(gè)子表由若干記錄行組成。
[0010]優(yōu)選地,所述SQL表中的數(shù)據(jù)項(xiàng)和XML表中的數(shù)據(jù)項(xiàng)是一一對應(yīng)的,SQL層和XML層的劃分都是針對同一個(gè)實(shí)體型的數(shù)據(jù),屬于同一實(shí)體型的橫向分層,均封裝在系統(tǒng)的SQL層中;所述XML層中,只有數(shù)據(jù)表存儲(chǔ)了實(shí)際的大字段數(shù)據(jù),包括鍵和值,二層索引表保存了數(shù)據(jù)表的地址信息以及元數(shù)據(jù)信息,二層索引表中每行記錄對應(yīng)于一個(gè)數(shù)據(jù)表,根索引表保存了二層索引表的地址信息以及其他元數(shù)據(jù)信息,根索引表中每條記錄對應(yīng)一個(gè)二層索引表。
[0011]優(yōu)選地,所述B-樹的根索引節(jié)點(diǎn)不被劃分,具有唯一性;根據(jù)可自定義的節(jié)點(diǎn)大小與其文件大小確定數(shù)據(jù)節(jié)點(diǎn)的合并和分裂條件;數(shù)據(jù)插入和刪除,都在數(shù)據(jù)節(jié)點(diǎn)進(jìn)行,樹形結(jié)構(gòu)始終由兩層索引節(jié)點(diǎn)和一層數(shù)據(jù)節(jié)點(diǎn)組成;包括根索引節(jié)點(diǎn)在內(nèi)的索引節(jié)點(diǎn)的子樹個(gè)數(shù)等于索引節(jié)點(diǎn)的記錄項(xiàng)數(shù)目;索引節(jié)點(diǎn)的記錄項(xiàng)數(shù)目等于可自定義的節(jié)點(diǎn)大小與每行記錄大小的比值。
[0012]優(yōu)選地,所述映射函數(shù)根據(jù)不同的SQL層數(shù)據(jù)項(xiàng)而使用不同的映射函數(shù)進(jìn)行轉(zhuǎn)換,當(dāng)轉(zhuǎn)換成表之間的映射時(shí),SQL表與XML表之間是多對一的映射,即SQL層中I到i_l的表的某個(gè)分量都映射到了 XML層中同一個(gè)數(shù)據(jù)子表中不同的數(shù)據(jù)項(xiàng),其中I < i < η,η為映射函數(shù)的個(gè)數(shù);
[0013]并且若定義域?yàn)閄,值域?yàn)閅,映射函數(shù)f滿足以下約束:
[0014]6.1,任何不同的數(shù)據(jù)項(xiàng)或者NULL均表示X或Y中一個(gè)唯一元素;
[0015]6.2對于任意一個(gè)元素χ e X,通過f轉(zhuǎn)換,在Y中有唯一元素與其對應(yīng);
[0016]6.3對于每個(gè)函數(shù)fi (I ( i彡η),定義域X為SQL表中某個(gè)屬性的分量,或者直接為查詢條件,值域Y均為XML層中的表的數(shù)據(jù)。
[0017]優(yōu)選地,所述存儲(chǔ)和查詢操作中,用戶通過統(tǒng)一接口控制SQL層和XML層數(shù)據(jù)的插入或者刪除,數(shù)據(jù)查詢在接口中優(yōu)化為通過SQL層和XML層的查詢,并且對SQL層和XML層的數(shù)據(jù)訪問并發(fā)進(jìn)行,保證SQL層和XML層數(shù)據(jù)的一致性和完整性,其中XML層數(shù)據(jù)的讀寫并發(fā)根據(jù)時(shí)間戳進(jìn)行控制。
[0018]優(yōu)選地,所述SQL層和XML層數(shù)據(jù)的一致性和完整性通過以下約束過程來獲取:
[0019]8.1,當(dāng)創(chuàng)建表時(shí),如果不同的表有相同的聯(lián)合主鍵,則主鍵順序一致;
[0020]8.2,標(biāo)記與XML層中行相關(guān)的主鍵列,其余的主鍵列或者主鍵列的聯(lián)合作為步驟
8.2中列簇的列,當(dāng)SQL層中只有唯一主鍵時(shí),自動(dòng)標(biāo)記為行;
[0021]8.3,標(biāo)記表中的大字段屬性;
[0022]8.4,統(tǒng)計(jì)每一類型表中各個(gè)屬性列的信息,使一個(gè)schema下的各個(gè)SQL表映射到同一個(gè)XML表中;
[0023]8.5,對于步驟8.4中的SQL表和XML表,如果SQL表中,除去已經(jīng)在步驟8.2中標(biāo)記的主鍵列,其余屬性均為大字段,則標(biāo)記該SQL表為大字段,然后在XML表中增加一個(gè)名為SQL表名的列簇,否則增加一個(gè)名為SQL表中標(biāo)記的屬性的列簇;
[0024]8.6,對映射函數(shù)的約束,當(dāng)原象為NULL時(shí),象必為NULL ;
[0025]并且,在進(jìn)行數(shù)據(jù)操作時(shí),其鍵值根據(jù)查詢條件動(dòng)態(tài)產(chǎn)生,一次事務(wù)操作只有一個(gè)鍵。
[0026]根據(jù)本發(fā)明的另一方面,提供了一種云端大數(shù)據(jù)處理系統(tǒng),用于結(jié)合結(jié)構(gòu)化SQL和非結(jié)構(gòu)化XML對大數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢,其特征在于,包括:
[0027]模型定義模塊,用于定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層;
[0028]存儲(chǔ)模塊,用于在在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表;
[0029]映射模塊,用于定義映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。
[0030]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
[0031]改進(jìn)了大數(shù)據(jù)處理方法和系統(tǒng),按實(shí)體的屬性類型進(jìn)行橫向劃分,融合了兩種數(shù)據(jù)模型,使數(shù)據(jù)應(yīng)用在靈活性和擴(kuò)展性之間有了較好的平衡。在處理大字段數(shù)據(jù)時(shí),性能得到了很大的提高,在云計(jì)算大數(shù)據(jù)管理領(lǐng)域發(fā)揮更大的功能。

【專利附圖】

【附圖說明】
[0032]圖1是根據(jù)本發(fā)明實(shí)施例的云端大數(shù)據(jù)處理方法的流程圖。

【具體實(shí)施方式】
[0033]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
[0034]本發(fā)明的一方面提供了一種云端大數(shù)據(jù)處理方法和系統(tǒng)。根據(jù)數(shù)據(jù)實(shí)體的屬性類型,對數(shù)據(jù)實(shí)體進(jìn)行進(jìn)一步切分,每個(gè)子實(shí)體屬于SQL型即結(jié)構(gòu)化模型和XML型即非結(jié)構(gòu)化模型中的一種。在處理復(fù)雜數(shù)據(jù)類型時(shí),首先在實(shí)體模式定義中標(biāo)記數(shù)據(jù)對應(yīng)屬性,然后自動(dòng)轉(zhuǎn)換到對應(yīng)模塊,實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)的平滑過渡。圖1是根據(jù)本發(fā)明實(shí)施例的云端大數(shù)據(jù)處理方法和系統(tǒng)流程圖。如圖1所示,實(shí)施本發(fā)明方法的具體步驟如下:
[0035]首先,定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層;
[0036]其次,在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表;
[0037]第三,映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。
[0038]在定義數(shù)據(jù)層次模型步驟中,SQL層和XML層均由表結(jié)構(gòu)來表示數(shù)據(jù);在該層次模型中,最上層的是SQL層,與SQL數(shù)據(jù)庫系統(tǒng)一樣,數(shù)據(jù)的各種屬性和聯(lián)系均用二維表表示。SQL層主要負(fù)責(zé)處理應(yīng)用給出的各種事務(wù)性的操作,以及對常見的結(jié)構(gòu)化數(shù)據(jù)的管理。
[0039]SQL表中的一個(gè)數(shù)據(jù)項(xiàng)和XML表中的一個(gè)數(shù)據(jù)項(xiàng)是一一對應(yīng)的。SQL表和XML表是η:1的關(guān)系,并且組成樹形結(jié)構(gòu);SQL層和XML層的劃分都是針對同一個(gè)實(shí)體型的數(shù)據(jù),屬于同一實(shí)體型的橫向分層。因此,在處理實(shí)體間的無論一對多,還是多對多都很方便,不需要建立冗余節(jié)點(diǎn)和虛擬節(jié)點(diǎn),均封裝在系統(tǒng)的SQL層中,克服了縱向分層結(jié)構(gòu)的弱點(diǎn)。
[0040]在XML層中,數(shù)據(jù)的邏輯格式也是表,這點(diǎn)和SQL層一致,但是表內(nèi)部的結(jié)構(gòu)不同,XML層中的表結(jié)構(gòu)是多維的。
[0041]XML層中表的一行數(shù)據(jù),第一行是表的結(jié)構(gòu)信息。在定義表時(shí),要定義表的列簇,列簇包含很多列,列可以動(dòng)態(tài)寫入,列簇信息屬于表結(jié)構(gòu)的組成信息。行也是在進(jìn)行數(shù)據(jù)插入時(shí)寫入。所以在某個(gè)表中插入一項(xiàng)數(shù)據(jù)時(shí),要指定行、表中存在的列簇、以及列。每插入一個(gè)數(shù)據(jù),系統(tǒng)會(huì)產(chǎn)生一個(gè)時(shí)間戳,所以系統(tǒng)中支持的時(shí)間戳個(gè)數(shù),決定數(shù)據(jù)的副本個(gè)數(shù)。
[0042]數(shù)據(jù)表和索引表都米用水平分片的技術(shù),將一張表分為很多子表管理。索引表和數(shù)據(jù)表結(jié)構(gòu)一致,均由一個(gè)或多個(gè)不同的列簇組成。數(shù)據(jù)庫系統(tǒng)初始化時(shí),數(shù)據(jù)量較小,都保存在一個(gè)表中,即只有一個(gè)子表。隨著數(shù)據(jù)的不斷插入,當(dāng)?shù)谝粋€(gè)子表增長到預(yù)定大小,開始分裂為兩個(gè)子表,分裂后較小的兩個(gè)子表可以繼續(xù)插入然后再分裂。依次繼續(xù),到最后,原來的表由當(dāng)前由多個(gè)分裂出的子表組成,所以當(dāng)一張表的數(shù)據(jù)量很大時(shí),可以包含很多子表,每個(gè)子表由若干記錄行組成。
[0043]XML層中,只有數(shù)據(jù)表存儲(chǔ)了實(shí)際的大字段數(shù)據(jù),包括其鍵及值。其他都是索引表,二層索引表保存了數(shù)據(jù)表的地址信息以及其它元數(shù)據(jù)信息,二層索引表中每行記錄對應(yīng)一個(gè)數(shù)據(jù)表。根索引表保存了二層索引表的地址信息以及其他元數(shù)據(jù)信息,根索引表中每條記錄對應(yīng)一個(gè)二層索引表。數(shù)據(jù)尋址時(shí),涉及到分散的多臺(tái)服務(wù)器的磁盤查詢,為了降低磁盤讀取次數(shù),使用改進(jìn)的B-樹結(jié)構(gòu)存儲(chǔ)索引表和數(shù)據(jù)表,每個(gè)節(jié)點(diǎn)即為一個(gè)子表。本發(fā)明的B-樹形成過程具體包括以下步驟:
[0044](I)簡化第一層根索引節(jié)點(diǎn)和第二層索引節(jié)點(diǎn)的操作,根索引節(jié)點(diǎn)不分裂,永遠(yuǎn)只有一個(gè);
[0045](2)根據(jù)可自定義的節(jié)點(diǎn)大小與其文件大小而確定數(shù)據(jù)節(jié)點(diǎn)的合并和分裂條件,而不由B-樹的最小度數(shù)或者階數(shù)確定;
[0046](3)無論數(shù)據(jù)插入還是刪除,都在數(shù)據(jù)節(jié)點(diǎn)進(jìn)行,樹形結(jié)構(gòu)永遠(yuǎn)都由兩層索引節(jié)點(diǎn)和一層數(shù)據(jù)節(jié)點(diǎn)組成;
[0047](4)索引節(jié)點(diǎn)(包括根索引節(jié)點(diǎn))的子樹個(gè)數(shù)等于索引節(jié)點(diǎn)的記錄項(xiàng)數(shù)目,而不是由B-樹的最小度數(shù)或者階數(shù)決定。
[0048](5)索引節(jié)點(diǎn)的記錄項(xiàng)數(shù)目等于可自定義的節(jié)點(diǎn)大小除以每行記錄大小。
[0049]如果根索引表在內(nèi)存中,每次根據(jù)鍵訪問值時(shí),就只需兩次磁盤操作。將鍵與根索引節(jié)點(diǎn)中的記錄行比較,找到指向二層索引節(jié)點(diǎn)的指針,將相應(yīng)二層索引節(jié)點(diǎn)的數(shù)據(jù)讀入內(nèi)存,這是第一次磁盤讀取。然后再將鍵與二層索引節(jié)點(diǎn)中的記錄行比較,找到指向數(shù)據(jù)節(jié)點(diǎn)的指針,將相應(yīng)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)讀入內(nèi)存,這是第二次磁盤讀取。最后在數(shù)據(jù)節(jié)點(diǎn)中,進(jìn)行查找,就能訪問到與鍵關(guān)聯(lián)的值。改進(jìn)后的B-樹不僅提高了查詢效率,而且由于其合并和分裂時(shí),數(shù)據(jù)操作較單一,不用考慮樹的高度變化。
[0050]本發(fā)明定義了一組映射函數(shù)?.:Π....^..?.η(1彡i彡n,n為函數(shù)個(gè)數(shù))。映射函數(shù)f在用戶查詢條下,負(fù)責(zé)將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng),可能數(shù)據(jù)類型或者數(shù)據(jù)結(jié)構(gòu)有差異,不同的SQL層數(shù)據(jù)項(xiàng)需要用不同的映射函數(shù)進(jìn)行轉(zhuǎn)換,映射函數(shù)的功能決定了系統(tǒng)支持的映射種類,映射種類越完善,對XML層數(shù)據(jù)的訪問效率就越好。SQL層中的表由于關(guān)系約束,是嚴(yán)格規(guī)范化的;XML層中的表沒有SQL約束,表結(jié)構(gòu)較靈活,能存儲(chǔ)的字段很多,所以當(dāng)轉(zhuǎn)換成表之間的映射時(shí),SQL表與XML表之間是多對一的映射。即SQL層中I到i_l的表的某個(gè)分量都映射到了 XML層中同一個(gè)數(shù)據(jù)子表中不同的數(shù)據(jù)項(xiàng)。
[0051]在設(shè)計(jì)映射函數(shù)組f時(shí),假設(shè)定義域?yàn)閄,值域?yàn)閅,有以下幾點(diǎn)約束條件:
[0052](I)任何不同的數(shù)據(jù)項(xiàng)或者NULL均表示X或Y中一個(gè)唯一元素;
[0053](2)對于任意一個(gè)元素X e X,通過f轉(zhuǎn)換,在Y中有唯一元素與其對應(yīng);
[0054](3)對于每個(gè)函數(shù)fi (I ( i彡η),他們的定義域X為SQL表中某個(gè)屬性的分量,或者直接為查詢條件。值域Y均為XML層中的表的數(shù)據(jù)。
[0055]設(shè)計(jì)好的映射函數(shù),必須很好的分析函數(shù)的定義域、值域。實(shí)踐表明,為了提高查詢效率,在設(shè)計(jì)映射函數(shù)f時(shí),一個(gè)原則就是使XML表中的行盡量簡單,因?yàn)橛成浜瘮?shù)在執(zhí)行時(shí)會(huì)產(chǎn)生與行進(jìn)行匹配的中間值,而在對XML表的查詢中,行也是一個(gè)主要的查詢條件,需要解析行。因此,設(shè)計(jì)越簡單的行越能減少查詢時(shí)間模型支持查詢、插入、刪除和修改等操作,并且對復(fù)雜數(shù)據(jù)的查詢進(jìn)行了優(yōu)化。針對實(shí)體的不同屬性,本發(fā)明數(shù)據(jù)操作也有自己如下的特點(diǎn)。
[0056](I)通過統(tǒng)一接口控制SQL層和XML層數(shù)據(jù)的插入或者刪除。
[0057](2)數(shù)據(jù)查詢在接口中優(yōu)化為通過SQL層和XML層的查詢。
[0058](3)對SQL層和XML層的數(shù)據(jù)訪問并發(fā)進(jìn)行。
[0059](4)XML層數(shù)據(jù)的讀寫并發(fā),根據(jù)時(shí)間戳進(jìn)行控制。在XML層中我們定義行的約束條件,即當(dāng)行為空時(shí),該行不能有數(shù)據(jù)。
[0060]接下來是組織好XML層的列簇及其列的個(gè)數(shù),整合SQL層和XML層的操作,保證SQL層和XML層數(shù)據(jù)的一致性和完整性。對同時(shí)包含SQL子實(shí)體和XML子實(shí)體的新模型,自定義了如下約束過程:
[0061](I)當(dāng)創(chuàng)建表時(shí),如果不同的表有相同的聯(lián)合主鍵,則主鍵順序一致;
[0062](2)標(biāo)記與XML層中行相關(guān)的主鍵列,其余的主鍵列或者主鍵列的聯(lián)合作為步驟
(5)中列簇的列,當(dāng)SQL層中只有唯一主鍵時(shí),自動(dòng)標(biāo)記為行;
[0063](3)標(biāo)記表中的大字段屬性,如圖片或者長段文字描述等;
[0064](4)統(tǒng)計(jì)每一類型表中各個(gè)屬性列的信息,使一個(gè)schema下的各個(gè)SQL表能映射到同一個(gè)XML表中;
[0065](5)對于步驟(4)中的SQL表和XML表,如果SQL表中,除去已經(jīng)在步驟⑵中標(biāo)記的主鍵列,其余屬性均為大字段,則標(biāo)記該SQL表為大字段,然后在XML表中增加一個(gè)名為SQL表名的列簇,否則增加一個(gè)名為SQL表中標(biāo)記的屬性的列簇。
[0066](6)對映射函數(shù)的約束,當(dāng)原象為NULL時(shí),象必為NULL。
[0067]根據(jù)這些數(shù)據(jù)約束條件,當(dāng)在進(jìn)行數(shù)據(jù)操作時(shí),尤其是對大字段數(shù)據(jù)的索引,其鍵值是根據(jù)查詢條件動(dòng)態(tài)產(chǎn)生的,一次事務(wù)操作只有一個(gè)鍵,而不是一個(gè)鍵組。
[0068]下面從數(shù)據(jù)的基本讀寫訪問開始說明本發(fā)明數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的操作流程及具體實(shí)現(xiàn)。
[0069]在對外接口時(shí),無論SQL層和XML層,還是SQL表和非SQL表,都是透明的,但是SQL層與XML層之間的交互,采用兩階段提交協(xié)議。應(yīng)當(dāng)注意,有大字段標(biāo)記的屬性列,新模型都處理成字節(jié)類型,有可能數(shù)據(jù)容量較大,因此在對其進(jìn)行寫入時(shí)需指定輸入源,讀取時(shí)要定義好相應(yīng)的數(shù)據(jù)容器。
[0070]數(shù)據(jù)寫入:
[0071]為了保證數(shù)據(jù)的一致性,方便數(shù)據(jù)的管理,本發(fā)明向外提供統(tǒng)一的數(shù)據(jù)寫入接口。即在創(chuàng)建表時(shí),只需指明各列的數(shù)據(jù)屬性(大字段屬性標(biāo)記或者主鍵列的行標(biāo)記),然后接口內(nèi)部封裝了對有標(biāo)記的屬性列的操作,用戶不用接觸XML型數(shù)據(jù)的定義和操作。
[0072]首先用戶通過DDL語言定義表,標(biāo)記大字段的屬性列,用行標(biāo)記相關(guān)的主鍵列,然后模型根據(jù)標(biāo)記信息和其他相關(guān)信息,自動(dòng)產(chǎn)生對應(yīng)的XML表。
[0073]表定義完成后,用戶可以在表中插入數(shù)據(jù)。對于沒有大字段的表,在SQL表中寫入即可。如果只寫入有大字段屬性的列,直接調(diào)用數(shù)據(jù)寫入接口,接口內(nèi)部會(huì)轉(zhuǎn)換成對相應(yīng)XML表的寫入操作。當(dāng)在XML表中的操作完成后,在SQL表的屬性列的相應(yīng)行寫上對應(yīng)的大數(shù)據(jù)項(xiàng)的索引信息,只有這個(gè)分量寫入成功后才算對大字段的數(shù)據(jù)寫入操作完成。如果索引信息為NULL,則對應(yīng)的XML表數(shù)據(jù)項(xiàng)不能有數(shù)據(jù)。
[0074]對于同時(shí)有SQL子實(shí)體和XML子實(shí)體的數(shù)據(jù)進(jìn)行插入時(shí),可并發(fā)進(jìn)行。在SQL表中寫入基本數(shù)據(jù),在XML數(shù)據(jù)庫表中寫入大字段的數(shù)據(jù)。同一個(gè)實(shí)體型的數(shù)據(jù)除主鍵或者行之外,在SQL層中和XML層中是相互獨(dú)立的。
[0075]數(shù)據(jù)讀取:
[0076]在數(shù)據(jù)讀取過程中,與以往的SQL查詢不同的是,系統(tǒng)對非結(jié)構(gòu)化的大字段數(shù)據(jù)做了查詢優(yōu)化,并且同時(shí)保留結(jié)構(gòu)化數(shù)據(jù)的查詢優(yōu)勢。對于沒有大字段的表,數(shù)據(jù)讀取與傳統(tǒng)的SQL模型一致。
[0077]如果只讀取有大字段屬性的列,直接調(diào)用數(shù)據(jù)讀取接口,在接口內(nèi)部轉(zhuǎn)換成對相應(yīng)的XML表的讀取操作。當(dāng)執(zhí)行較小數(shù)據(jù)量的查詢時(shí),大大減少了讀取時(shí)間。
[0078]對于同時(shí)涉及到數(shù)據(jù)的SQL子實(shí)體和XML子實(shí)體的復(fù)雜查詢時(shí),首先要分析查詢條件,以便于查詢優(yōu)化。如果查詢的SQL子實(shí)體與XML子實(shí)體的數(shù)據(jù)之間沒有嚴(yán)格的拓?fù)潢P(guān)系,可以并行查詢,否則就先在SQL層中查詢,然后通過映射函數(shù)再到XML層。
[0079]根據(jù)本發(fā)明的另一方面,提供了一種云端大數(shù)據(jù)處理系統(tǒng),用于結(jié)合結(jié)構(gòu)化SQL和非結(jié)構(gòu)化XML對大數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢,其特征在于,包括:
[0080]模型定義模塊,用于定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層;
[0081]存儲(chǔ)模塊,用于在在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表;
[0082]映射模塊,用于定義映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。
[0083]綜上所述,本發(fā)明改進(jìn)了大數(shù)據(jù)處理方法和系統(tǒng),按實(shí)體的屬性類型進(jìn)行橫向劃分,融合了兩種數(shù)據(jù)模型,使數(shù)據(jù)應(yīng)用在靈活性和擴(kuò)展性之間有了較好的平衡。在處理大字段數(shù)據(jù)時(shí),性能得到了很大的提高,在云計(jì)算大數(shù)據(jù)管理領(lǐng)域發(fā)揮更大的功能。
[0084]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)系統(tǒng)中由計(jì)算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0085]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實(shí)施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
【權(quán)利要求】
1.一種云端大數(shù)據(jù)處理方法,用于結(jié)合結(jié)構(gòu)化SQL和非結(jié)構(gòu)化XML對大數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢,其特征在于,包括: 定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層; 在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表; 定義映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述SQL層和XML層均由表結(jié)構(gòu)來表示數(shù)據(jù);在該層次模型中,SQL層位于最上層,用于處理應(yīng)用給出的各種事務(wù)性的操作,以及對結(jié)構(gòu)化數(shù)據(jù)的管理,數(shù)據(jù)的屬性和聯(lián)系均用二維表表示。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述XML層中的表結(jié)構(gòu)采用多維存儲(chǔ),表第一行是表的結(jié)構(gòu)信息,在定義表時(shí)首先定義表的列簇,所述列簇包含多列,行和列在進(jìn)行數(shù)據(jù)插入時(shí)寫入,在表中插入數(shù)據(jù)時(shí),要指定行、表中存在的列簇、以及列,并產(chǎn)生一個(gè)時(shí)間戳,根據(jù)時(shí)間戳個(gè)數(shù),決定數(shù)據(jù)的副本個(gè)數(shù);XML層的數(shù)據(jù)表和索引表采用水平分片,將表劃分為子表管理,隨著數(shù)據(jù)的插入,當(dāng)子表增長到預(yù)定大小時(shí)分裂為兩個(gè)子表,每個(gè)子表由若干記錄行組成。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述SQL表中的數(shù)據(jù)項(xiàng)和XML表中的數(shù)據(jù)項(xiàng)是一一對應(yīng)的,SQL層和XML層的劃分都是針對同一個(gè)實(shí)體型的數(shù)據(jù),屬于同一實(shí)體型的橫向分層,均封裝在系統(tǒng)的SQL層中;所述XML層中,只有數(shù)據(jù)表存儲(chǔ)了實(shí)際的大字段數(shù)據(jù),包括鍵和值,二層索引表保存了數(shù)據(jù)表的地址信息以及元數(shù)據(jù)信息,二層索引表中每行記錄對應(yīng)于一個(gè)數(shù)據(jù)表,根索引表保存了二層索引表的地址信息以及其他元數(shù)據(jù)信息,根索引表中每條記錄對應(yīng)一個(gè)二層索引表。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述B-樹的根索引節(jié)點(diǎn)不被劃分,具有唯一性;根據(jù)可自定義的節(jié)點(diǎn)大小與其文件大小確定數(shù)據(jù)節(jié)點(diǎn)的合并和分裂條件;數(shù)據(jù)插入和刪除,都在數(shù)據(jù)節(jié)點(diǎn)進(jìn)行,樹形結(jié)構(gòu)始終由兩層索引節(jié)點(diǎn)和一層數(shù)據(jù)節(jié)點(diǎn)組成;包括根索引節(jié)點(diǎn)在內(nèi)的索引節(jié)點(diǎn)的子樹個(gè)數(shù)等于索引節(jié)點(diǎn)的記錄項(xiàng)數(shù)目;索引節(jié)點(diǎn)的記錄項(xiàng)數(shù)目等于可自定義的節(jié)點(diǎn)大小與每行記錄大小的比值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述映射函數(shù)根據(jù)不同的SQL層數(shù)據(jù)項(xiàng)而使用不同的映射函數(shù)進(jìn)行轉(zhuǎn)換,當(dāng)轉(zhuǎn)換成表之間的映射時(shí),SQL表與XML表之間是多對一的映射,即SQL層中I到1-Ι的表的某個(gè)分量都映射到了 XML層中同一個(gè)數(shù)據(jù)子表中不同的數(shù)據(jù)項(xiàng),其中I < i < η,η為映射函數(shù)的個(gè)數(shù); 并且若定義域?yàn)閄,值域?yàn)閅,映射函數(shù)f滿足以下約束: 6.1,任何不同的數(shù)據(jù)項(xiàng)或者NULL均表示X或Y中一個(gè)唯一元素; 6.2對于任意一個(gè)元素χ e X,通過f轉(zhuǎn)換,在Y中有唯一元素與其對應(yīng); 6.3對于每個(gè)函數(shù)fi (I彡i彡η),定義域X為SQL表中某個(gè)屬性的分量,或者直接為查詢條件,值域Y均為XML層中的表的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述存儲(chǔ)和查詢操作中,用戶通過統(tǒng)一接口控制SQL層和XML層數(shù)據(jù)的插入或者刪除,數(shù)據(jù)查詢在接口中優(yōu)化為通過SQL層和XML層的查詢,并且對SQL層和XML層的數(shù)據(jù)訪問并發(fā)進(jìn)行,保證SQL層和XML層數(shù)據(jù)的一致性和完整性,其中XML層數(shù)據(jù)的讀寫并發(fā)根據(jù)時(shí)間戳進(jìn)行控制。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述SQL層和XML層數(shù)據(jù)的一致性和完整性通過以下約束過程來獲取: 8.1,當(dāng)創(chuàng)建表時(shí),如果不同的表有相同的聯(lián)合主鍵,則主鍵順序一致; 8.2,標(biāo)記與XML層中行相關(guān)的主鍵列,其余的主鍵列或者主鍵列的聯(lián)合作為步驟8.2中列簇的列,當(dāng)SQL層中只有唯一主鍵時(shí),自動(dòng)標(biāo)記為行; 8.3,標(biāo)記表中的大字段屬性; 8.4,統(tǒng)計(jì)每一類型表中各個(gè)屬性列的信息,使一個(gè)schema下的各個(gè)SQL表映射到同一個(gè)XML表中; 8.5,對于步驟8.4中的SQL表和XML表,如果SQL表中,除去已經(jīng)在步驟8.2中標(biāo)記的主鍵列,其余屬性均為大字段,則標(biāo)記該SQL表為大字段,然后在XML表中增加一個(gè)名為SQL表名的列簇,否則增加一個(gè)名為SQL表中標(biāo)記的屬性的列簇; 8.6,對映射函數(shù)的約束,當(dāng)原象為NULL時(shí),象必為NULL ; 并且,在進(jìn)行數(shù)據(jù)操作時(shí),其鍵值根據(jù)查詢條件動(dòng)態(tài)產(chǎn)生,一次事務(wù)操作只有一個(gè)鍵。
9.一種云端大數(shù)據(jù)處理系統(tǒng),用于結(jié)合結(jié)構(gòu)化SQL和非結(jié)構(gòu)化XML對大數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢,其特征在于,包括: 模型定義模塊,用于定義數(shù)據(jù)層次模型,所述數(shù)據(jù)層次模型包括SQL層和XML層; 存儲(chǔ)模塊,用于在在數(shù)據(jù)尋址時(shí),使用B-樹結(jié)構(gòu)存儲(chǔ)XML層的索引表和數(shù)據(jù)表; 映射模塊,用于定義映射函數(shù),將SQL層中的數(shù)據(jù)項(xiàng)對應(yīng)到XML層中的數(shù)據(jù)項(xiàng)。
【文檔編號】G06F17/30GK104133890SQ201410370225
【公開日】2014年11月5日 申請日期:2014年7月30日 優(yōu)先權(quán)日:2014年7月30日
【發(fā)明者】蒲思羽 申請人:四川中亞聯(lián)邦科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
峨眉山市| 喀喇| 赫章县| 布拖县| 罗源县| 明星| 鸡东县| 班玛县| 三都| 左权县| 宿松县| 阿克| 海口市| 旌德县| 三原县| 土默特左旗| 鱼台县| 大英县| 响水县| 韩城市| 蓬安县| 河西区| 伊春市| 晋中市| 琼海市| 电白县| 綦江县| 三都| 鲁甸县| 五峰| 衡山县| 齐齐哈尔市| 无为县| 陵川县| 马山县| 清水河县| 高要市| 东兰县| 镇坪县| 青海省| 玛纳斯县|