亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于分布式結(jié)構(gòu)的并行數(shù)據(jù)處理方法與流程

文檔序號:12006934閱讀:271來源:國知局
本發(fā)明面向地理信息系統(tǒng)、時空數(shù)據(jù)管理、位置相關(guān)服務(wù)、大規(guī)模傳感器流數(shù)據(jù)管理等領(lǐng)域,針對云計算環(huán)境中超大規(guī)模海量數(shù)據(jù)的存儲、檢索與高效訪問需求,提出了一種集鍵-值數(shù)據(jù)庫(Key-ValueStore)和關(guān)系數(shù)據(jù)庫雙方優(yōu)勢的RDB-KV并行云數(shù)據(jù)庫存儲與檢索方法,實現(xiàn)兼?zhèn)滏I值存儲高效訪問特性與數(shù)據(jù)庫完整特性的海量數(shù)據(jù)存儲技術(shù)。
背景技術(shù)
:云計算是當(dāng)前信息技術(shù)發(fā)展的重要方向?;谠破脚_的計算與存儲服務(wù)因底層架構(gòu)基礎(chǔ)設(shè)施的變化,在應(yīng)用模式、應(yīng)用范圍以及技術(shù)需求上發(fā)生了重大變革。云存儲是在云計算(cloudcomputing)概念上延伸和發(fā)展出來的一個新的概念,是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。當(dāng)云計算系統(tǒng)運算和處理的核心是大量數(shù)據(jù)的存儲和管理時,云計算系統(tǒng)中就需要配置大量的存儲設(shè)備,那么云計算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。分布、并行是云存儲的基本特點。在云存儲的環(huán)境中,存儲節(jié)點之間構(gòu)成復(fù)雜的互相依賴關(guān)系。為了有效利用資源、提高存儲服務(wù)的性能,數(shù)據(jù)通常根據(jù)一定原則分布在特定集群節(jié)點范圍內(nèi)容。這些集群節(jié)點通過“數(shù)據(jù)池”等方式將片段數(shù)據(jù)存儲在本地環(huán)境中。為了保障數(shù)據(jù)的安全,集群節(jié)點內(nèi)部又將這一特定片段數(shù)據(jù)進(jìn)行多副本復(fù)制與分發(fā)。集群內(nèi)部的儲存設(shè)備之間構(gòu)成多個副本。這樣從整體上,保證數(shù)據(jù)的有效分散與安全。云存儲的推廣帶動了存儲技術(shù)的發(fā)展。云存儲的高彈性、并行性等特點可以很好的滿足日益膨脹的企業(yè)應(yīng)用發(fā)展。企業(yè)業(yè)務(wù)在向云環(huán)境的遷移過程中,需要將相關(guān)數(shù)據(jù)植入云存儲的分布式并行存儲環(huán)境中。在傳統(tǒng)的企業(yè)應(yīng)用中,數(shù)據(jù)支撐環(huán)境通常構(gòu)建在關(guān)系數(shù)據(jù)庫中。在關(guān)系數(shù)據(jù)模型的基礎(chǔ)上,依據(jù)業(yè)務(wù)邏輯設(shè)計基本庫表結(jié)構(gòu)。在設(shè)計階段,以獨立事物對象或業(yè)務(wù)單步活動為數(shù)據(jù)粒度劃分的原則。將一組屬性構(gòu)成基本粒度數(shù)據(jù)的表征全集,以此構(gòu)成一個獨立二維表的基本結(jié)構(gòu)。為滿足復(fù)雜邏輯中數(shù)據(jù)一致性與完全性,在庫表設(shè)計的過程中,不同表項之間通常存在復(fù)雜的約束與依賴關(guān)系;在數(shù)據(jù)更新的過程中,利用這些表項之間的約束關(guān)系,實現(xiàn)全局范圍內(nèi)數(shù)據(jù)一致性的校核。另一方面,在業(yè)務(wù)數(shù)據(jù)查詢的過程中,通常一個查詢?nèi)蝿?wù)涉及多個基本粒度數(shù)據(jù)模型的交叉、組合。這些任務(wù)以關(guān)系代數(shù)為基礎(chǔ)構(gòu)造查,利用jion等復(fù)雜操作滿足查詢?nèi)蝿?wù)的基本要求。在傳統(tǒng)的存儲環(huán)境中,成熟的關(guān)系數(shù)據(jù)庫管理系統(tǒng)依托關(guān)系數(shù)據(jù)庫模型,借助于集合代數(shù)等概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。此類關(guān)系數(shù)據(jù)庫建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的。關(guān)系模型的概念單一,無論實體還是實體之間的聯(lián)系都用關(guān)系表示,操作的對象和操作的結(jié)果都是關(guān)系,所以其數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。隨著企業(yè)應(yīng)用規(guī)模的不斷膨脹,關(guān)系數(shù)據(jù)庫的在性能方便的瓶頸問題日益凸顯,因數(shù)據(jù)海量性、異構(gòu)性、高并發(fā)性等特點導(dǎo)致的數(shù)據(jù)集成環(huán)境性能低下的問題成為影響企業(yè)發(fā)展以及信息技術(shù)推廣的一個核心問題。另一方面,云存儲的興起為海量高并發(fā)數(shù)據(jù)的應(yīng)用與管理提供了物質(zhì)支持。云存儲因其自身高彈性,高伸縮性、高并發(fā)性等特點可以很好的為企業(yè)應(yīng)用的迅速擴(kuò)展提供服務(wù)。然而,傳統(tǒng)的云存儲在技術(shù)層面以none-sql等模式為基礎(chǔ)。在應(yīng)對以關(guān)系代數(shù)為基礎(chǔ)的傳統(tǒng)數(shù)據(jù)庫遷移的過程中,存在以下基本問題:1)海量數(shù)據(jù)對傳統(tǒng)存儲架構(gòu)的挑戰(zhàn):傳統(tǒng)的數(shù)據(jù)管理系統(tǒng)以關(guān)系代數(shù)與關(guān)系數(shù)據(jù)為存儲架構(gòu)的設(shè)計依據(jù)。在傳統(tǒng)的應(yīng)用中,由于關(guān)系數(shù)據(jù)之間存在復(fù)雜的依賴與約束關(guān)系;這些數(shù)據(jù)管理系統(tǒng)多以集中式的架構(gòu)實現(xiàn)存儲管理。隨著數(shù)據(jù)規(guī)模的膨脹,部分成熟數(shù)據(jù)管理系統(tǒng)利用分布式結(jié)構(gòu)、以多副本平行復(fù)制、CDN等方式在多節(jié)點之間實現(xiàn)數(shù)據(jù)的統(tǒng)一組織與管理。以oraclerac等為代表,在數(shù)據(jù)查詢等活動中,在本質(zhì)上,節(jié)點局部內(nèi)仍以數(shù)據(jù)全集為基本范圍執(zhí)行查詢?nèi)蝿?wù)。這就導(dǎo)致系統(tǒng)查詢性能存在瓶頸制約。同時,系統(tǒng)中數(shù)據(jù)吞吐量嚴(yán)重影響了整體穩(wěn)定性與可靠性。這一不足之處嚴(yán)重影響了服務(wù)計算規(guī)模與處理質(zhì)量的提升;2)基于RDB的查詢與可支持KV查詢矛盾:鍵-值查詢是云存儲的一個基本特點,同時也是云存儲高性能實現(xiàn)的技術(shù)保證。在非結(jié)構(gòu)化數(shù)據(jù)管理的過程中數(shù)據(jù)本體用于基本存儲。數(shù)據(jù)屬性經(jīng)過抽象后,形成對本體取值描述的key。數(shù)據(jù)管理系統(tǒng)通過key的排列、組合形成有序的鍵索引機(jī)制。在查詢過程中,依據(jù)一定的排序規(guī)則通過key的比對、匹配實現(xiàn)數(shù)據(jù)本體的快速定位與訪問。另一方面,結(jié)構(gòu)化數(shù)據(jù)本身具有明確的數(shù)據(jù)項結(jié)構(gòu)定義。在數(shù)據(jù)組織與存儲的過程中,數(shù)據(jù)本體經(jīng)過處理其取值存放在所屬表項行目中。各個表中的數(shù)據(jù)存儲過程中,不存在統(tǒng)一的特征抽取、key值排序的步驟。從全局的角度出發(fā),不能支持全部表對象統(tǒng)一的key值對應(yīng)數(shù)據(jù)本體查詢;這一矛盾導(dǎo)致RDB查詢與KV查詢結(jié)合的困難;3)海量數(shù)據(jù)分析對高性能查詢的挑戰(zhàn):服務(wù)計算涉及大量復(fù)雜要素、對象屬性、監(jiān)測數(shù)據(jù)、多媒體數(shù)據(jù)、遙感數(shù)據(jù)以及各種非結(jié)構(gòu)化數(shù)據(jù)的復(fù)雜訪問。另一方面,圍繞服務(wù)計算中數(shù)據(jù)的空間分布性特點,底層數(shù)據(jù)多以分布式方式實現(xiàn)組織與管理。因此高性能并行查詢成為提高數(shù)據(jù)訪問工作性能的必然手段。然而,在傳統(tǒng)GIS平臺依賴的數(shù)據(jù)管理系統(tǒng)中,由于架構(gòu)上存在先天性的不足,導(dǎo)致在高性能查詢方面存在無法逾越的機(jī)制限制。這就導(dǎo)致GIS平臺在面對日益膨脹的地理數(shù)據(jù),在基本查詢方面就存在缺陷。因此,需要在并行存儲架構(gòu)的技術(shù)上,實現(xiàn)高性能并行查詢的任務(wù)組織、調(diào)度,數(shù)據(jù)匯聚與過濾的相關(guān)技術(shù),滿足服務(wù)計算對海量數(shù)據(jù)高性能訪問的核心需求;技術(shù)實現(xiàn)要素:針對上述問題,本發(fā)明的目的在于提供一種基于分布式環(huán)境的并行數(shù)據(jù)集群處理方法,其目的是在分布式環(huán)境并行架構(gòu)的基礎(chǔ)上,實現(xiàn)海量數(shù)據(jù)的有序組織、檢索與查詢服務(wù),實現(xiàn)集鍵-值數(shù)據(jù)庫(Key-ValueStore)和關(guān)系數(shù)據(jù)庫雙方優(yōu)勢的RDB-KV云數(shù)據(jù)庫存儲與檢索。提供兼?zhèn)滏I值存儲高效訪問特性與數(shù)據(jù)庫完整特性的海量數(shù)據(jù)存儲技術(shù);滿足如物聯(lián)網(wǎng)傳感器數(shù)據(jù)、多媒體數(shù)據(jù)、交通網(wǎng)絡(luò)數(shù)據(jù)、移動對象時空數(shù)據(jù)等數(shù)據(jù)的管理與查詢。為了實現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案為:一種基于分布式結(jié)構(gòu)的并行數(shù)據(jù)存儲方法,其步驟包括:1)根據(jù)主鍵值類型在主節(jié)點抽取得到數(shù)據(jù)主鍵值,在所述主節(jié)點中根據(jù)數(shù)據(jù)屬性取值與區(qū)間對比結(jié)果確定數(shù)據(jù)分發(fā)的定向從節(jié)點,同時建立全局關(guān)鍵字B+樹索引;2)根據(jù)所述全局關(guān)鍵字B+樹索引基于share-nothing原則將數(shù)據(jù)分發(fā)到所述主鍵值對應(yīng)的從節(jié)點;3)在所述從節(jié)點接受數(shù)據(jù)分發(fā)請求,在本地基于share-everything原則將數(shù)據(jù)存儲在子節(jié)點中。更進(jìn)一步,根據(jù)所述share-nothing原則將數(shù)據(jù)從主節(jié)點轉(zhuǎn)發(fā)到各個從節(jié)點,且從節(jié)點間的數(shù)據(jù)不互為副本;根據(jù)所述share-everything原則將子節(jié)點中之間的數(shù)據(jù)在本地集群中進(jìn)行多副本復(fù)制且子節(jié)點間的數(shù)據(jù)互為副本。更進(jìn)一步,將數(shù)據(jù)分發(fā)到所述主鍵值對應(yīng)的從節(jié)點的步驟如下:1)利用預(yù)先注冊的分發(fā)策略從當(dāng)前數(shù)據(jù)中提取指定的列對應(yīng)的數(shù)據(jù)內(nèi)容構(gòu)成當(dāng)前數(shù)據(jù)屬性,根據(jù)策略類型抽取屬性作為當(dāng)前數(shù)據(jù)的主鍵值;2)所述分發(fā)策略信息注冊在全局關(guān)鍵字分區(qū)表中,根據(jù)當(dāng)前數(shù)據(jù)表對應(yīng)類型的全局關(guān)鍵字B+樹獲取當(dāng)前數(shù)據(jù)鍵值對應(yīng)的映射關(guān)系對;3)通過這一映射關(guān)系對綁定特定的從節(jié)點,實現(xiàn)基于主鍵值取值的定向發(fā)送。更進(jìn)一步,主鍵值類型包括文本屬性取值、數(shù)值區(qū)間取值以及空間柵格三種基本類型;不同類型主鍵值的抽取與構(gòu)造按照如下一種或者多種方式進(jìn)行:文本屬性取值策略:數(shù)據(jù)在注冊階段將當(dāng)前表以特定列取值作為全局關(guān)鍵詞的依據(jù);在分發(fā)過程中,文本全局關(guān)鍵字樹和與其對應(yīng)的全局關(guān)鍵字分區(qū)表中會記錄當(dāng)前表中對應(yīng)文本取值的數(shù)據(jù)定向發(fā)送的節(jié)點標(biāo)識從節(jié)點,當(dāng)前表中所有特定列取值為該文本的數(shù)據(jù)定向發(fā)送到個節(jié)點中;和/或者數(shù)值區(qū)間取值策略:數(shù)據(jù)在注冊階段將前表以特定列取值作為全局關(guān)鍵值的依據(jù),所述特定列的數(shù)據(jù)由數(shù)值型構(gòu)成;在分發(fā)過程中,數(shù)值全局關(guān)鍵字樹和與其對應(yīng)的全局關(guān)鍵字分區(qū)表中會記錄當(dāng)前表中對應(yīng)數(shù)值取值區(qū)間的數(shù)據(jù)定向發(fā)送的節(jié)點標(biāo)識從節(jié)點,當(dāng)前表中所有特定列取值為該數(shù)值取值的數(shù)據(jù)定向發(fā)送到個節(jié)點中;和/或者空間柵格策略:數(shù)據(jù)在注冊階段將確空間取值對應(yīng)的特定列,所述特定列的數(shù)據(jù)由空間地理坐標(biāo)等數(shù)據(jù)類型構(gòu)成;在分發(fā)過程中,空間柵格全局關(guān)鍵字和與其對應(yīng)的全局關(guān)鍵字分區(qū)表中會記錄當(dāng)前表中對應(yīng)空間柵格取值區(qū)間編碼的數(shù)據(jù)定向發(fā)送的節(jié)點標(biāo)識從節(jié)點,當(dāng)前表中所有特定列取值為空間柵格的數(shù)據(jù)定向發(fā)送到個節(jié)點中。更進(jìn)一步,全局關(guān)鍵字B+樹由一存放在根結(jié)點的全局關(guān)鍵字分區(qū)表和一組關(guān)鍵字到分發(fā)從節(jié)點標(biāo)識的映射組成;根據(jù)所述主鍵值類型建立與全局關(guān)鍵字B+樹索引一一對應(yīng)的B+樹索引包括:關(guān)鍵詞/字索引、關(guān)鍵值索引以及空間柵格索引三種基本類型。更進(jìn)一步,所述全局關(guān)鍵字B+樹按照不同的分布原則分為:缺省全局關(guān)鍵字樹、文本全局關(guān)鍵字樹、數(shù)值區(qū)間全局關(guān)鍵字樹以及空間柵格全局關(guān)鍵字樹四個基本類型。更進(jìn)一步,所述全局關(guān)鍵字B+樹索引根據(jù)數(shù)據(jù)自動增加新的數(shù)據(jù)關(guān)系對,通過判斷當(dāng)前葉結(jié)點中主鍵值映射關(guān)系對的數(shù)量是否會超過閾值,對樹進(jìn)行局部優(yōu)化過程如下:1)為當(dāng)前葉節(jié)點構(gòu)造一組子節(jié)點,將構(gòu)造的該組子節(jié)點放置在當(dāng)前葉節(jié)點的子節(jié)點集合中;2)將當(dāng)前葉節(jié)點的映射關(guān)系對列表清空;從當(dāng)前子節(jié)點中提取與主鍵值對應(yīng)的子節(jié)點,設(shè)置為當(dāng)前葉節(jié)點;3)查看當(dāng)前葉節(jié)點中是否已經(jīng)存儲了主鍵值與當(dāng)前映射關(guān)系對,如果已經(jīng)存儲則結(jié)束當(dāng)前操作,否則將當(dāng)前主鍵值與映射關(guān)系對放置在當(dāng)前葉節(jié)點中,完成平衡操作。更進(jìn)一步,通過并行方法實現(xiàn)步驟如下:(1)提取當(dāng)前查詢sql語句中的計算符將sql語句分解為若干子sql語句;(2)構(gòu)造并行二叉任務(wù)樹,將計算符作為任務(wù)數(shù)的葉節(jié)點;將分解的字句作為葉結(jié)點的子節(jié)點;(3)遍歷當(dāng)前任務(wù)樹,從最底層計算符節(jié)點開始執(zhí)行左右單步查詢?nèi)蝿?wù),完成當(dāng)前計算節(jié)點的左右單步查詢?nèi)蝿?wù)節(jié)點結(jié)果集匯聚與處理后向上逐級執(zhí)行。更進(jìn)一步,根據(jù)全局關(guān)鍵字B+樹索引提取數(shù)據(jù)對象的屬性集合作為該特定取值的屬性集記錄在索引數(shù)據(jù)表中,利用所述索引數(shù)據(jù)表進(jìn)行查詢的步驟為:(1)根據(jù)查詢請求提交的主鍵值,在屬性取值策略所對應(yīng)的全局關(guān)鍵字分區(qū)表中利用RDB查詢與當(dāng)前關(guān)鍵詞匹配的索引記錄列提取全部匹配命中的索引記錄行信息;(2)根據(jù)所述行信息中記錄的數(shù)據(jù)表名進(jìn)行分組,同時統(tǒng)計每個數(shù)據(jù)表所涉及的節(jié)點標(biāo)示;(3)根據(jù)不同的數(shù)據(jù)表,建立并行查詢?nèi)蝿?wù)。更進(jìn)一步,在查詢?nèi)蝿?wù)的執(zhí)行過程中在多個從節(jié)點的對應(yīng)數(shù)據(jù)表中執(zhí)行,并完成結(jié)果集的匯聚與合并,查詢步驟如下:(1)根據(jù)注冊的從節(jié)點信息,構(gòu)造子任務(wù)對象,(2)依次啟動子任務(wù)對象線程,直到當(dāng)前任務(wù)進(jìn)入等待狀態(tài)后子任務(wù)完成本地查詢,將查詢結(jié)果集匯聚回當(dāng)前任務(wù)結(jié)果集中,完成匯聚后通知當(dāng)前任務(wù)執(zhí)行完畢信息;(3)當(dāng)全部子任務(wù)執(zhí)行完畢后,當(dāng)前任務(wù)完成全部數(shù)據(jù)結(jié)果集匯聚結(jié)束任務(wù)。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:(1)針對大數(shù)據(jù)海量性、異構(gòu)性的特點,提出一種高性能數(shù)據(jù)并行云存儲方法。在現(xiàn)有技術(shù)的框架中一般采用share-nothing原則簡單的分為兩級分散存儲,或者采用share-everything原則單級多副本并行存儲。本發(fā)明中的存儲管理方法利用兩級三層的基本框架,結(jié)合有效的索引機(jī)制,提高系統(tǒng)數(shù)據(jù)存儲與管理的效率;一方面保證數(shù)據(jù)合理分布,降低從節(jié)點存儲吞吐,提高局部查詢性能,利用從節(jié)點高可擴(kuò)展性保證系統(tǒng)彈性;另一方面通過局部多副本復(fù)制保證局部副本安全。(2)提出了一種新型的、集“鍵-值”型數(shù)據(jù)存儲與關(guān)系數(shù)據(jù)庫二者優(yōu)勢于一體的云計算數(shù)據(jù)庫存儲模型。在實現(xiàn)海量數(shù)據(jù)快速“鍵-值”訪問的同時,提供完整的關(guān)系數(shù)據(jù)庫功能特性。(3)基于某市道路交通數(shù)據(jù)的實驗表明,系統(tǒng)在對全集數(shù)據(jù)查詢的過程中效率提高5.2%;對單個對象的流數(shù)據(jù)查詢、提取效率提高了11.6%。附圖說明圖1是本發(fā)明采取的分布式數(shù)據(jù)集群管理架構(gòu)示意圖;圖2是本發(fā)明一實施例中分布式環(huán)境中數(shù)據(jù)轉(zhuǎn)發(fā)、存儲的基本流程示意圖;圖3是本發(fā)明一實施例中主節(jié)點數(shù)據(jù)分發(fā)中全局key索引樹的基本結(jié)構(gòu)示意圖;圖4是本發(fā)明一實施例中數(shù)據(jù)更新過程中全局key索引樹維護(hù)流程示意圖;圖5是圖4所示的key索引樹中數(shù)據(jù)更新過程中全局key索引樹平衡流程;圖6是本發(fā)明一實施例中并行查詢?nèi)蝿?wù)基本組織流程示意圖;圖7是本發(fā)明一實施例中并行任務(wù)二叉樹查詢語句的示例圖;圖8是本發(fā)明一實施例中并行任務(wù)執(zhí)行節(jié)點阻塞關(guān)系示意圖;圖9是本發(fā)明一實施例中并行查詢?nèi)蝿?wù)結(jié)果集匯聚組織示意圖;圖10是本發(fā)明一實施例中全局關(guān)鍵詞索引樹示例示意圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,可以理解的是,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明所采用的技術(shù)方案如下:第一步:針對云存儲環(huán)境的特點,提供一種并行數(shù)據(jù)處理方法。整個數(shù)據(jù)集群處理系統(tǒng)采用兩級三層的數(shù)據(jù)組織、管理架構(gòu)。在這一系統(tǒng)中,數(shù)據(jù)的組織過程經(jīng)過全局分發(fā)與局部存儲兩個基本步驟。在全局分發(fā)的過程中,首先將當(dāng)前數(shù)據(jù)根據(jù)當(dāng)前數(shù)據(jù)注冊的特征列提取數(shù)值作為特征,經(jīng)過選擇哈希編碼、取值區(qū)間量化編碼、空間柵格編碼三種編碼方式中的一種處理后形成當(dāng)前數(shù)據(jù)主key,而后,基于share-nothing的原則根據(jù)按照B+樹或者其他索引的規(guī)則,將數(shù)據(jù)分發(fā)到與主key對應(yīng)的從節(jié)點中,保證不同節(jié)點之間數(shù)據(jù)沒有交集。從節(jié)點接受這一數(shù)據(jù)分發(fā)請求后,在本地以share-everything的原則,存儲在本地數(shù)據(jù)集群構(gòu)成的子節(jié)點中。子節(jié)點中的數(shù)據(jù)互為副本?;楦北镜囊馑季褪窃谧庸?jié)點中,每一個節(jié)點中的數(shù)據(jù)集是完全一樣的,這樣在訪問的時候可以根據(jù)任意選擇一個子節(jié)點進(jìn)行訪問,查詢或者提取數(shù)據(jù)。第二步:在數(shù)據(jù)的分發(fā)與存儲過程中,根據(jù)屬性取值與區(qū)間對比確定數(shù)據(jù)分發(fā)的定向節(jié)點。利用這一以屬性取值區(qū)間為原則的分發(fā)策略構(gòu)成全局索引。全局索引的目的是縮小實際需要執(zhí)行查詢的葉結(jié)點范圍。主節(jié)點中,數(shù)據(jù)分發(fā)過程中各個數(shù)據(jù)屬性取值與區(qū)間定義的對比結(jié)果構(gòu)成主key,這一主key在全局關(guān)鍵字B+樹(GlobalFull-TextKeywordB+-Tree,簡稱GFTKB+-Tree)。GFTKB+-Tree對全局關(guān)鍵字進(jìn)行統(tǒng)一管理,同時建立索引機(jī)制。在整個系統(tǒng)中,根據(jù)數(shù)據(jù)取值的類型提供關(guān)鍵詞/字索引、關(guān)鍵值索引以及空間柵格索引三種基本類型的服務(wù)。每一種基本類型對應(yīng)一種B+樹;第三步:在數(shù)據(jù)查詢的過程中,在系統(tǒng)中,首先解析、分解當(dāng)前查詢請求的sql語句。根據(jù)查詢語句中的join、union、in、notin等關(guān)系,將復(fù)雜查詢sql分解為一組簡單sql語句。利用二叉樹樹構(gòu)造復(fù)雜查詢?nèi)蝿?wù)。這一任務(wù)樹的根節(jié)點為任務(wù)匯聚根節(jié)點。其由一組子節(jié)點構(gòu)成。子節(jié)點為一個表結(jié)果集處理計算符,為join、union等。表結(jié)果集處理計算符表示對其所約束的表查詢語句結(jié)果集的處理計算方式。表結(jié)果集處理計算符子節(jié)點包含一組子節(jié)點。這組子節(jié)點既可以是表結(jié)果集處理計算符節(jié)點也可以是單步查詢的簡單任務(wù)節(jié)點。針對KV-RDB查詢,根據(jù)提交的key,在主節(jié)點的全局GKR-table中利用RDB查詢與當(dāng)前關(guān)鍵詞匹配的索引記錄列。提取全部匹配命中的索引記錄行信息。根據(jù)行信息中記錄的數(shù)據(jù)表名進(jìn)行分組。同時,統(tǒng)計每個數(shù)據(jù)表所涉及的節(jié)點標(biāo)示;而后根據(jù)不同的數(shù)據(jù)表,建立并行查詢?nèi)蝿?wù)。并行查詢?nèi)蝿?wù)的從節(jié)點范圍由以上統(tǒng)計節(jié)點結(jié)果確定。完成查詢?nèi)蝿?wù)創(chuàng)建后,既執(zhí)行該任務(wù)。多個表所對應(yīng)的查詢結(jié)果集以xml的方式實現(xiàn)匯聚與展示;第一步:建立分布式并行數(shù)據(jù)集群管理架構(gòu)本發(fā)明的目的是在云基礎(chǔ)平臺的基礎(chǔ)上,構(gòu)建云存儲環(huán)境,這一環(huán)境滿足云環(huán)境中海量、異構(gòu)數(shù)據(jù)統(tǒng)一組織、管理、訪問的基本要求;提供兼?zhèn)滏I值存儲高效訪問特性與數(shù)據(jù)庫完整特性的海量數(shù)據(jù)存儲技術(shù);滿足云存儲環(huán)境高并發(fā)、高可用的基本要求,同時,基于云計算的基本要求,提供有效的安全管理機(jī)制,保障云存儲數(shù)據(jù)的安全性。圖1中展示了這一架構(gòu)的基本組織結(jié)構(gòu)。圖1中展示了本發(fā)明的基本層次關(guān)系。整體而言整個數(shù)據(jù)管理系統(tǒng)采用兩級三層的數(shù)據(jù)組織、管理架構(gòu)。在這一系統(tǒng)中,數(shù)據(jù)的組織過程經(jīng)過全局分發(fā)與局部存儲兩個基本步驟。在全局分發(fā)的過程中,首先將當(dāng)前數(shù)據(jù)特征抽取,經(jīng)過哈希或其他手段處理為主key,而后,基于share-nothing的原則根據(jù)按照B+樹或者其他索引的規(guī)則,將數(shù)據(jù)分發(fā)到與key對應(yīng)的從節(jié)點中。在局部存儲過程中,從節(jié)點接受這一數(shù)據(jù)分發(fā)請求后,在本地以share-everything的原則,存在在本地數(shù)據(jù)集群構(gòu)成的子節(jié)點中。子節(jié)點中的數(shù)據(jù)互為副本。整個云存儲數(shù)據(jù)庫包括三個基本層次:控制層、組織層與數(shù)據(jù)層,其中:控制層:控制層承擔(dān)整個云存儲系統(tǒng)數(shù)據(jù)更新請求分發(fā)與組織;數(shù)據(jù)訪問請求解析、并行任務(wù)構(gòu)造與執(zhí)行;全局key維護(hù)與管理;全局安全統(tǒng)一認(rèn)證與訪問等基本任務(wù)??刂茖佑梢粋€主節(jié)點構(gòu)成。組織層:組織層是數(shù)據(jù)組織與管理的核心。在本發(fā)明中組織層中部署大量從節(jié)點。這些數(shù)據(jù)節(jié)點具有高度的可擴(kuò)充性與彈性;在數(shù)據(jù)更新過程中,組織層對上接收數(shù)據(jù)更新請求。這一請求在從節(jié)點本地的數(shù)據(jù)集群中進(jìn)行統(tǒng)一更新。組織層的從節(jié)點之間數(shù)據(jù)不存在互為副本的關(guān)系。不同從節(jié)點的數(shù)據(jù)完全沒有交集;在查詢過程中,從節(jié)點根據(jù)當(dāng)前的查詢?nèi)蝿?wù)在本地數(shù)據(jù)集群中提取結(jié)果集并匯聚給主節(jié)點。當(dāng)本地執(zhí)行局部查詢或者數(shù)據(jù)更新時。從節(jié)點通過管理層的統(tǒng)一訪問控制首先對請求權(quán)限進(jìn)行校核,保證組織層中局部數(shù)據(jù)安全;數(shù)據(jù)層:數(shù)據(jù)層由一組互為副本的數(shù)據(jù)集群構(gòu)成。這一數(shù)據(jù)集群中的節(jié)點之間數(shù)據(jù)完全一致,互為副本;在數(shù)據(jù)更新的過程中從節(jié)點利用數(shù)據(jù)庫復(fù)制、一致性維護(hù)等手段實現(xiàn)數(shù)據(jù)副本的統(tǒng)一制作與管理維護(hù)。在數(shù)據(jù)查詢過程中,依賴cdn、負(fù)載均衡等手段,合理執(zhí)行查詢?nèi)蝿?wù);在整個云存儲換中,數(shù)據(jù)層中的集群節(jié)點可以根據(jù)實際情況進(jìn)行靈活擴(kuò)展。通過這一方式,提高從節(jié)點的穩(wěn)定性與安全性,保證企業(yè)應(yīng)用的順利開展;在本發(fā)明中并行分布是數(shù)據(jù)存儲與管理的基本特點。在并行分布的過程中,系統(tǒng)遵守兩級分布的基本策略。既:根據(jù)share-noting的原則實現(xiàn)從節(jié)點之間的分布;根據(jù)share-everything原則實現(xiàn)從節(jié)點中局部數(shù)據(jù)的多副本式分布。保證數(shù)據(jù)合理分布,降低從節(jié)點存儲吞吐,提高局部查詢性能,利用從節(jié)點高可擴(kuò)展性保證系統(tǒng)彈性;另一方面通過局部多副本復(fù)制保證局部副本安全。圖2中展示了數(shù)據(jù)更新的基本流程:這一基本流程如下:1.提取當(dāng)前數(shù)據(jù)對應(yīng)的表映射注冊信息;2.根據(jù)映射注冊信息從當(dāng)前數(shù)據(jù)中提取屬性特征列對應(yīng)的數(shù)據(jù)集作為屬性;3.將當(dāng)前數(shù)據(jù)屬性轉(zhuǎn)化為對應(yīng)分布策略的主key4.根據(jù)當(dāng)前策略,選擇并綁定特定從節(jié)點;5.存儲或者更新當(dāng)前數(shù)據(jù)的屬性特征與key以及與從節(jié)點定向?qū)?yīng)信息;6.將當(dāng)前數(shù)據(jù)更新請求發(fā)送給從節(jié)點;7.從節(jié)點接受數(shù)據(jù)請求進(jìn)行全局一致性檢查,通過檢查則執(zhí)行步驟9,否則執(zhí)行步驟8;8.拋出異常報告一致性檢查錯誤信息,結(jié)束當(dāng)前操作;9.從節(jié)點本地進(jìn)行數(shù)據(jù)更新操作;10.從節(jié)點在本地數(shù)據(jù)集群中進(jìn)行副本同步更新;11.結(jié)束當(dāng)前操作在云存儲系統(tǒng)中,每個從結(jié)點slavenode對應(yīng)于一個特定數(shù)據(jù)屬性取值區(qū)(例如:地理位置、ID、采樣取值等記為α(snode))而主結(jié)點中存貯屬性取值分區(qū)定向映射表,(AttributeKeyMappingTable,簡稱AKM-Table)。數(shù)據(jù)對象根據(jù)它們的特定屬性取值分布在不同的葉結(jié)點中。對于任意一個數(shù)據(jù)對象data,如果其屬性取值是固定不變的,則它僅對應(yīng)于一個元組,該元組存貯在屬性取值區(qū)包含data的從結(jié)點中;如果數(shù)據(jù)的屬性的動態(tài)變化的,則它對應(yīng)于多個元組-元組的基本信息。在對象屬性取值所覆蓋的從結(jié)點中進(jìn)行分割并分布式存放在這些從結(jié)點中。對于一個從結(jié)點site,它僅存放屬性與α(site)在取值上相交的部分。第二步:數(shù)據(jù)存儲過程中實現(xiàn)定向分布與全局?jǐn)?shù)據(jù)索引在云存儲環(huán)境中數(shù)據(jù)分發(fā)過程中根據(jù)屬性取值與區(qū)間對比確定分發(fā)節(jié)點。利用這一以屬性取值區(qū)間為原則的分發(fā)策略構(gòu)成全局索引。為了支持全局的查詢處理,在RDB-KV云存儲系統(tǒng)中需要建立相應(yīng)的全局索引。全局索引的目的是縮小實際需要執(zhí)行查詢的葉結(jié)點范圍。主節(jié)點中,數(shù)據(jù)分發(fā)過程中各個數(shù)據(jù)屬性取值與區(qū)間定義的對比結(jié)果構(gòu)成主key這一主key在全局關(guān)鍵字B+樹(GlobalFull-TextKeywordB+-Tree,簡稱GFTKB+-Tree)。GFTKB+-Tree對全局關(guān)鍵字進(jìn)行統(tǒng)一管理,同時建立索引機(jī)制。下圖中給出了GFTKB+-Tree的基本結(jié)構(gòu):如圖3所示,GFTKB+-Tree實際上包含一個存放在根結(jié)點的全局關(guān)鍵字分區(qū)表RangeTable,簡稱GKR-Table)和一組keyword到slaveNodeID的映射B+樹(keywordtoSiteIDMappingB+-Tree,簡稱KSMB+-Tree)。GKR-table由一個一組全局關(guān)鍵字映射關(guān)系對構(gòu)成;GKR-table={kmi|i=1,2,……,n};其中km為關(guān)鍵字映射關(guān)系對,其由一個四元組構(gòu)成:km={key,attGroup,slaveID,dataRef};其中key為當(dāng)前關(guān)系對中數(shù)據(jù)屬性主key取值,這一取值根據(jù)分發(fā)策略share-nothing的不同可以為哈希編碼hashcode、空間柵格地理編碼、取值區(qū)間編碼、文本取值等構(gòu)成;attGroup為屬性集合;slaveID為當(dāng)前key取值對應(yīng)的分發(fā)從節(jié)點標(biāo)識;在不同的策略下主key對應(yīng)的從節(jié)點方法存在一定的區(qū)別;dataRef為數(shù)據(jù)存儲指針映射,其由一個二元組構(gòu)成:dataRef={localPointer,tabname}其中:localPointer為數(shù)據(jù)在從節(jié)點中存儲的指針;tabname為當(dāng)前數(shù)據(jù)所對應(yīng)的數(shù)據(jù)表名稱。在系統(tǒng)中,對應(yīng)不同的分布策略,GFTKB+-Tree包括缺省全局關(guān)鍵字樹、文本全局關(guān)鍵字樹、數(shù)值區(qū)間全局關(guān)鍵字樹以及空間柵格全局關(guān)鍵字樹四個基本類型。在結(jié)構(gòu)上這四個全局關(guān)鍵字樹類型是一致的。一個全局關(guān)鍵字樹GFTKB+-Tree由一個多元組構(gòu)成,其根節(jié)點包括一組葉結(jié)點構(gòu)成:Root={leafi|i=1,2,……n}Leaf為葉節(jié)點。一個葉結(jié)點對應(yīng)一個取值區(qū)間。其由一個多元組構(gòu)成:Leaf={ID,keymax,keymin,kkms,leafs,size}其中:ID為當(dāng)前葉結(jié)點對應(yīng)的標(biāo)識,這一標(biāo)識全局唯一;Keymax為當(dāng)前葉結(jié)點對應(yīng)的關(guān)鍵詞取值上限;Keymin為當(dāng)前葉結(jié)點對應(yīng)的關(guān)鍵詞取值下限;kKms為關(guān)鍵字映射關(guān)系對集合,其為一組kkm構(gòu)成:kkms={kkmi|i=1,2……,n};kkm={key,{km1,km2,….kmj}key為關(guān)鍵詞取值km其定義與GKR-table中的定義完全一致;Leafs為當(dāng)前葉節(jié)點的子節(jié)點集合。當(dāng)當(dāng)前葉結(jié)點沒有子節(jié)點時,其kms中存放全部關(guān)系對;當(dāng)當(dāng)前葉結(jié)點包含子節(jié)點時,其kms中沒有任何關(guān)系對存在。本級節(jié)點中的關(guān)系對集合通過遍歷其子節(jié)點中的關(guān)系對集合獲?。籗ize為當(dāng)前葉結(jié)點中關(guān)系對的個數(shù)。在索引的維護(hù)過程中,為了保證平衡性,當(dāng)一個葉結(jié)點的size超過閾值時,就將這一葉結(jié)點進(jìn)行拆分;在數(shù)據(jù)更新的過程中,系統(tǒng)首先提取當(dāng)前數(shù)據(jù)對象對應(yīng)的注冊信息,根據(jù)這一注冊信息提取屬性集與主key取值。而后與全局索引中進(jìn)行的葉節(jié)點進(jìn)行對比,如果當(dāng)前葉結(jié)點中已經(jīng)存在了這一主key對應(yīng)的取值,則將這一主key取值中的映射關(guān)系對中與tabname相匹配的關(guān)系對提取,并獲取其中的slaveID,根據(jù)slaveID與對應(yīng)的slave節(jié)點建立連接關(guān)系,將當(dāng)前的數(shù)據(jù)更新請求轉(zhuǎn)發(fā)給slave節(jié)點。完成后,將slave節(jié)點返回的局部指針在關(guān)系對中進(jìn)行更新;在這一過程中,如果不存在這一關(guān)系對,則建立當(dāng)前tabname對應(yīng)的關(guān)系對,根據(jù)當(dāng)前分布策略選擇一個從節(jié)點,完成從節(jié)點中數(shù)據(jù)更新后,將這一從節(jié)點的slaveID與對應(yīng)的信息作為新的關(guān)系對存儲在GKR-table表中,同時,對當(dāng)前GFTKB+-Tree的葉節(jié)點進(jìn)行更新。圖4中展示了這一過程的基本流程:這一流程的基本過程如下:1.提取當(dāng)前數(shù)據(jù)表注冊的分布類型全局索引樹GFTKB-TREE;成功則執(zhí)行步驟3,否則執(zhí)行步驟2;2.構(gòu)造當(dāng)前數(shù)據(jù)庫內(nèi)該類型所對應(yīng)的全局索引樹;3.獲取當(dāng)前數(shù)據(jù)對應(yīng)表注冊的分布策略信息;4.根據(jù)策略信息從當(dāng)前數(shù)據(jù)中提取屬性集與當(dāng)前數(shù)據(jù)的主key;5.根據(jù)當(dāng)前數(shù)據(jù)的主key從當(dāng)前GFTKB-TREE中提取對應(yīng)的映射關(guān)系對,如果映射關(guān)系對提取成功則執(zhí)行步驟9,否則執(zhí)行步驟6;6.根據(jù)當(dāng)前映射關(guān)系對,提取對應(yīng)的從節(jié)點slavenode,并綁定;7.將當(dāng)前數(shù)據(jù)更新請求發(fā)送給步驟6中綁定的slavenode;slavenode完成本地數(shù)據(jù)更新以及局部集群中的數(shù)據(jù)同步;8.更新當(dāng)前GFTKB-TREE中主key的對應(yīng)內(nèi)容;執(zhí)行步驟13;9.根據(jù)當(dāng)前分布策略動態(tài)選擇一個slavenode節(jié)點并綁定;10.將當(dāng)前數(shù)據(jù)更新請求發(fā)送給步驟9中綁定的slavenode;slavenode完成本地數(shù)據(jù)更新以及局部集群中的數(shù)據(jù)同步;11.在當(dāng)前類型對應(yīng)的GKR-table中存儲新的key與映射關(guān)系對的信息;12.在當(dāng)前類型對應(yīng)的GFTKB-TREE中存儲新的key與映射關(guān)系對的信息;13.更新當(dāng)前GFTKB-TREE中主key的相關(guān)內(nèi)容;14.結(jié)束在上述的數(shù)據(jù)更新過程中,全局GFTKB-TREE根據(jù)數(shù)據(jù)更新增量,自動增加新的數(shù)據(jù)關(guān)系對。在這一過程中葉節(jié)點根據(jù)一定的數(shù)據(jù)平衡原則,對樹的局部進(jìn)行數(shù)結(jié)構(gòu)優(yōu)化。如圖5所示這一過程如下所示:這一流程基本如下:1.獲取當(dāng)前樹種key與映射關(guān)系對增量請求;2.從當(dāng)前數(shù)中提取主key對應(yīng)取值區(qū)間的葉節(jié)點;提取成功則執(zhí)行步驟4,否則執(zhí)行步驟3;3.創(chuàng)建新的葉節(jié)點,將當(dāng)前主key與映射關(guān)系對放置在這一葉節(jié)點中,結(jié)束當(dāng)前操作;4.查看當(dāng)前葉節(jié)點中的映射關(guān)系對數(shù)量是否超過閾值設(shè)置,如果超過則執(zhí)行步驟5,否則執(zhí)行步驟9;5.根據(jù)平衡原則,為當(dāng)前葉節(jié)點構(gòu)造一組子節(jié)點;6.將構(gòu)造的這一組子節(jié)點放置在當(dāng)前葉節(jié)點的子節(jié)點集合中;7.將當(dāng)前葉節(jié)點的映射關(guān)系對列表清空;8.從當(dāng)前子節(jié)點中提取與key對應(yīng)的子節(jié)點,設(shè)置為當(dāng)前葉節(jié)點;9.查看當(dāng)前葉節(jié)點中是否已經(jīng)存儲了主key與當(dāng)前映射關(guān)系對,如果已經(jīng)存儲則結(jié)束當(dāng)前操作,否則執(zhí)行步驟10;10.將當(dāng)前key與映射關(guān)系對放置在當(dāng)前葉節(jié)點中,完成平衡操作;第三步:實現(xiàn)高性能并行數(shù)據(jù)查詢與全局KV-RBD查詢本發(fā)明云存儲系統(tǒng)是采用并行架構(gòu)的云存儲系統(tǒng),數(shù)據(jù)根據(jù)特定的分布測量分散在不同從節(jié)點中,從全局的角度出發(fā),從節(jié)點中的局部數(shù)據(jù)為數(shù)據(jù)全集的一個子集。通過降低從節(jié)點中的數(shù)據(jù)吞吐量,實現(xiàn)單節(jié)點數(shù)據(jù)高效組織與查詢,以及數(shù)據(jù)吞吐量的規(guī)模。另一方面,在數(shù)據(jù)查詢過程中,系統(tǒng)充分利用分布式數(shù)據(jù)的特點,采用并行處理模式提高查詢過程的速度與性能。本發(fā)明采用數(shù)據(jù)無交叉分布的原則,在查詢過程中,利用并行架構(gòu)實現(xiàn)數(shù)據(jù)任務(wù)的組織、結(jié)果集的匯聚與過濾。圖6中展示了數(shù)據(jù)查詢?nèi)蝿?wù)整體組織過程在系統(tǒng)中,首先解析、分解當(dāng)前查詢請求的sql語句。根據(jù)查詢語句中的join、union、in、notin等關(guān)系,將復(fù)雜查詢sql分解為一組簡單sql語句。利用二叉樹樹構(gòu)造復(fù)雜查詢?nèi)蝿?wù)。這一任務(wù)樹的根節(jié)點為任務(wù)匯聚根節(jié)點。其由一組子節(jié)點構(gòu)成。子節(jié)點為一個表結(jié)果集處理計算符,為join、union等。表結(jié)果集處理計算符表示對其所約束的表查詢語句結(jié)果集的處理計算方式。表結(jié)果集處理計算符子節(jié)點包含一組子節(jié)點。這組子節(jié)點既可以是表結(jié)果集處理計算符節(jié)點也可以是單步查詢的簡單任務(wù)節(jié)點。任務(wù)樹的定義如下:QueryTree={ID,childNodes};其中:ID為當(dāng)前任務(wù)樹的標(biāo)示;childNodes為當(dāng)前任務(wù)樹的子子節(jié)點集合,childNodes={cni|i=1,2,......,n},cn為子節(jié)點定義,其取值為計算符型節(jié)點ccn或單步查詢簡單任務(wù)節(jié)點scn,計算符型節(jié)點定義如下:ccn={factor,leftNode,rightNode};其中:factor為當(dāng)前計算符取值,其取值為union、join、in、notin等;leftNode為當(dāng)前計算符節(jié)點的左子節(jié)點,其定義與前述一致;rightNode為當(dāng)前計算符節(jié)點的右子節(jié)點,其定義與前述一致;scn={sqlstate};其中:Sqlstate為當(dāng)前單步查詢簡單任務(wù)節(jié)點的單步查詢sql語句在任務(wù)樹中,復(fù)雜查詢?nèi)蝿?wù)的sql語句被分解為一組計算符與單步查詢sql語句,例如:select*fromGPStablewherelocationin(selectroadlineTable.locationfromroadlineTable,maptablewheremaptable.areacode<>’haidian’andmaptable.Areacode=roadlineTable.areacode);圖7展示了這一復(fù)雜查詢分解為任務(wù)樹后的組織情況:在任務(wù)的執(zhí)行過程中,系統(tǒng)遍歷當(dāng)前任務(wù)樹,從最底層計算符節(jié)點開始執(zhí)行左右單步查詢?nèi)蝿?wù)。完成當(dāng)前計算節(jié)點的左右單步查詢?nèi)蝿?wù)節(jié)點結(jié)果集匯聚與處理后向上逐級執(zhí)行。最終完成整個二叉樹的任務(wù)執(zhí)行與結(jié)果匯聚、處理;一個計算符節(jié)點包括左右兩個單步查詢?nèi)蝿?wù)節(jié)點。其首先執(zhí)行左節(jié)點查詢?nèi)蝿?wù)。在左子節(jié)點任務(wù)執(zhí)行過程中,在本地創(chuàng)建左任務(wù)臨時數(shù)據(jù)表,通過并行查詢左任務(wù)的結(jié)果集被存儲在臨時數(shù)據(jù)表中,這一臨時數(shù)據(jù)表通過表復(fù)制的方式,復(fù)制在從節(jié)點中。而后,再利用并行查詢執(zhí)行右任務(wù),右任務(wù)的結(jié)果集匯聚到本地后創(chuàng)建右任務(wù)臨時數(shù)據(jù)表,將匯聚結(jié)果存儲在右臨時數(shù)據(jù)表中,至此完成當(dāng)前計算符節(jié)點的全部查詢?nèi)蝿?wù)請求。執(zhí)行其上級節(jié)點其他任務(wù);這一過程如圖8所示,在任務(wù)樹的執(zhí)行過程中,為了提高執(zhí)行效率,當(dāng)一個計算符型子節(jié)點的右子節(jié)點同樣為計算符型子節(jié)點時。當(dāng)前節(jié)點的兩個子任務(wù)以并行方式執(zhí)行,即如下結(jié)構(gòu):在查詢?nèi)蝿?wù)的執(zhí)行過程中,單步查詢簡單任務(wù)是一個不包含表關(guān)聯(lián)操作的單表查詢?nèi)蝿?wù)。本發(fā)明采用數(shù)據(jù)并行的策略。因此,一個簡單查詢?nèi)蝿?wù)需要在多個從節(jié)點的對應(yīng)數(shù)據(jù)表中執(zhí)行,并完成結(jié)果集的匯聚與合并。再啟動一個單步查詢簡單查詢節(jié)點的任務(wù)時。圖9中展示了這一任務(wù)的基本組織形式:在執(zhí)行過程中,首先根據(jù)系統(tǒng)注冊的從節(jié)點信息,構(gòu)造子任務(wù)對象,而后依次啟動子任務(wù)對象線程。當(dāng)前任務(wù)進(jìn)入等待狀態(tài),子任務(wù)完成本地查詢后,將結(jié)果集匯聚回當(dāng)前任務(wù)結(jié)果集中,完成匯聚后通知當(dāng)前任務(wù)執(zhí)行完畢信息。當(dāng)全部子任務(wù)執(zhí)行完畢后,當(dāng)前任務(wù)完成全部數(shù)據(jù)結(jié)果集匯聚結(jié)束任務(wù)。在本發(fā)明中,數(shù)據(jù)更新過程中,根據(jù)不同的數(shù)據(jù)分布策略建立相應(yīng)的全局索引樹。這些索引樹中記錄了當(dāng)前數(shù)據(jù)表特定列的取值或區(qū)間劃分對應(yīng)情況。同時,提取數(shù)據(jù)對象的屬性集合作為該特定取值的屬性集記錄在索引數(shù)據(jù)表中。利用這一索引數(shù)據(jù)表,可以實現(xiàn)RDB-KV相結(jié)合的高效查詢。這一查詢根據(jù)提交的key,在屬性取值策略所對應(yīng)的GKR-table中利用RDB查詢與當(dāng)前關(guān)鍵詞匹配的索引記錄列。提取全部匹配命中的索引記錄行信息。根據(jù)行信息中記錄的數(shù)據(jù)表名進(jìn)行分組。同時,統(tǒng)計每個數(shù)據(jù)表所涉及的節(jié)點標(biāo)示;而后根據(jù)不同的數(shù)據(jù)表,建立并行查詢?nèi)蝿?wù)。并行查詢?nèi)蝿?wù)的從節(jié)點范圍由以上統(tǒng)計節(jié)點結(jié)果確定。完成查詢?nèi)蝿?wù)創(chuàng)建后,既執(zhí)行該任務(wù)。多個表所對應(yīng)的查詢結(jié)果集以xml的方式實現(xiàn)匯聚與展示;在數(shù)據(jù)環(huán)境中根據(jù)云存儲環(huán)境中數(shù)據(jù)特點,構(gòu)造全局關(guān)鍵詞、全局關(guān)鍵值以及空間柵格等三種不同基本類型的分布策略與索引服務(wù)。下面以全局關(guān)鍵詞為例介紹本發(fā)明的方法。第一步,用戶創(chuàng)建數(shù)據(jù)表staffTable,其由三個基本字段構(gòu)成:{ID、name、job},其中:ID為當(dāng)前員工的標(biāo)示;name為當(dāng)前員工的名稱;job為當(dāng)前員工的崗位描述。第二步,用戶將當(dāng)前數(shù)據(jù)表注冊為全局關(guān)鍵詞類型;第三步,用戶插入一條記錄:(‘k001’,‘李白’,‘senior’),主節(jié)點接受這一數(shù)據(jù)更新請求后,首先根據(jù)注冊信息判定當(dāng)前數(shù)據(jù)表為全局關(guān)鍵詞型。而后訪問全局關(guān)鍵詞對應(yīng)的GFTKB-TREE;因是初始狀態(tài)當(dāng)前全局GFTKB-TREE不存在,系統(tǒng)根據(jù)對應(yīng)GKR-Table的內(nèi)容構(gòu)造GFTKB-TREE;第四步,在當(dāng)前GFTKB-TREE中未發(fā)現(xiàn)‘李白’為主key的葉節(jié)點。系統(tǒng)為當(dāng)前數(shù)據(jù)選擇一個從節(jié)點(slave01),綁定;將當(dāng)前數(shù)據(jù)更新請求發(fā)送給slave01節(jié)點,完成局部更新后,在當(dāng)前類型GKR-Table中插入主key李白所對應(yīng)的映射關(guān)系對信息;并在當(dāng)前GFTKB-TREE中構(gòu)造新的葉節(jié)點,將主key李白所對應(yīng)的映射關(guān)系對信息放置在新的葉節(jié)點中;第五步,在后續(xù)的數(shù)據(jù)更新操作中,用戶插入新的數(shù)據(jù):(‘k001’,‘李白’,‘vp);系統(tǒng)訪問當(dāng)前類型對應(yīng)的全局GFTKB-TREE,獲取其中李白作為主key的葉節(jié)點;通過葉節(jié)點提取映射關(guān)系對信息,從映射關(guān)系對中獲取綁定的從節(jié)點(slave01);將當(dāng)前數(shù)據(jù)定向發(fā)送給slave01節(jié)點,完成局部數(shù)據(jù)更新;如圖10所示本發(fā)明通過分布式云存儲環(huán)境實現(xiàn)數(shù)據(jù)管理與索引組織。通過并行查詢方法提供高性能查詢服務(wù)。在實驗中通過海量傳感器數(shù)據(jù)對系統(tǒng)性能進(jìn)行測試,測試環(huán)境如下所示:在測試過程中,通過對4從節(jié)點與8從節(jié)點分組測試來測試對海量傳感器數(shù)據(jù)讀寫操作的基本性能表1空間數(shù)據(jù)查詢表2關(guān)鍵詞數(shù)據(jù)查詢表3關(guān)鍵詞數(shù)據(jù)查詢針對當(dāng)前云存儲領(lǐng)域中傳統(tǒng)關(guān)系數(shù)據(jù)庫的局限性,本發(fā)明提供集鍵-值數(shù)據(jù)庫(Key-ValueStore)和關(guān)系數(shù)據(jù)庫雙方優(yōu)勢的RDB-KV云數(shù)據(jù)庫存儲與檢索系統(tǒng)。提供兼?zhèn)滏I值存儲高效訪問特性與數(shù)據(jù)庫完整特性的海量數(shù)據(jù)存儲技術(shù)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1