基于Key-Value數(shù)據(jù)塊的數(shù)據(jù)管理方法及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及物聯(lián)網(wǎng)、數(shù)據(jù)庫和云計算技術領域,具體涉及一種基于Key-Value數(shù) 據(jù)塊的數(shù)據(jù)管理方法及系統(tǒng)。
【背景技術】
[0002] 物聯(lián)網(wǎng)在智慧城市、智能交通、工業(yè)監(jiān)測、食品溯源等各領域都有著廣泛的應用, 近年來得到了迅速的發(fā)展。物聯(lián)網(wǎng)通過射頻識別、紅外感應器、全球定位系統(tǒng)、激光掃描器、 氣體感應器等信息傳感設備,按約定的協(xié)議,把任何物品與網(wǎng)絡連接起來,進行信息交換和 通訊,以實現(xiàn)智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡。
[0003]物聯(lián)網(wǎng)的一個特點是對各種感知技術的廣泛應用。物聯(lián)網(wǎng)上部署了多種類型傳感 器,每個傳感器都是一個信息源。傳感器按一定的頻率周期采集環(huán)境信息,不斷更新數(shù)據(jù)。 物聯(lián)網(wǎng)采集的感知數(shù)據(jù)具有如下特點:
[0004]數(shù)據(jù)具有結(jié)構(gòu)化特征,并且數(shù)據(jù)類型比較簡單;數(shù)據(jù)總量非常大,呈現(xiàn)出海量特 征,數(shù)據(jù)條目數(shù)量常常超過數(shù)十億條,存儲量常常達到TB以上級別;生成的數(shù)據(jù)具有時間 屬性,數(shù)據(jù)生成速度快,并發(fā)量高,對數(shù)據(jù)的存儲要求比較高;數(shù)據(jù)變化部分主要為傳感器 數(shù)據(jù),數(shù)據(jù)條目間存在大量重復屬性信息;數(shù)據(jù)往往是"一次存儲,多次應用",數(shù)據(jù)存儲后 常常不再修改,但是在數(shù)據(jù)應用時需要經(jīng)常查詢數(shù)據(jù),對數(shù)據(jù)的查詢要求比較高,數(shù)據(jù)并發(fā) 量高。如何對這些數(shù)據(jù)進行高效的存儲、管理和檢索,從中獲取有用的信息,進而提供智能 決策,是物聯(lián)網(wǎng)面臨的關鍵問題之一。
[0005] 關系型數(shù)據(jù)庫經(jīng)過幾十年的發(fā)展,已經(jīng)成為一個成熟的數(shù)據(jù)管理和分析技術,是 存儲管理結(jié)構(gòu)化數(shù)據(jù)的最有效手段。它是建立在關系型數(shù)據(jù)庫模型基礎上的數(shù)據(jù)庫,其借 助于集合代數(shù)等概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù),同時也是一個被組織成一組擁有正式 描述性的表格,該形式的表格作用的實質(zhì)是裝載著數(shù)據(jù)項的特殊收集體,這些表格中的數(shù) 據(jù)能以許多不同的方式被存取或重新召集而不需要重新組織數(shù)據(jù)庫表格。結(jié)構(gòu)化查詢語言 SQL是訪問關系型數(shù)據(jù)庫的標準接口,大量使用多表連接操作,通用性強。隨著數(shù)據(jù)規(guī)模的 擴大,關系型數(shù)據(jù)庫可以采用分區(qū)技術進行擴充,表由多個物理文件組成,當單個節(jié)點的能 力抵達上限時,就得通過多服務器節(jié)點來分發(fā)負載。這時關系型數(shù)據(jù)庫的復雜性就開始影 響其潛在的擴展規(guī)模了。分布式中的單點故障問題、跨節(jié)點多表格間連接操作的支持等都 存在極大困難。由于關系型數(shù)據(jù)庫追求的是高度一致性、正確性,系統(tǒng)擴展的代價較高,因 此在面對海量數(shù)據(jù)處理時遇到了瓶頸。
[0006] 隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,非關系型的數(shù)據(jù)庫成了一個極其熱門的新領域, 非關系數(shù)據(jù)庫產(chǎn)品的發(fā)展非常迅速。NoSQL是非關系型數(shù)據(jù)存儲的廣義定義,數(shù)據(jù)存儲不 需要固定的表結(jié)構(gòu),通常也不存在連接操作,采用Key-Value數(shù)據(jù)模型(根據(jù)給定的Key 值,查找對應的Value值),在超大型數(shù)據(jù)存取上具備關系型數(shù)據(jù)庫無法比擬的性能優(yōu)勢, 如Google的BigTable與Amazon的Dynamo等。這類數(shù)據(jù)庫通過降低一致性約束來提高數(shù) 據(jù)的存儲規(guī)模和查詢效率,并且大大降低了系統(tǒng)水平擴展的復雜性,但是卻無法滿足針對 海量數(shù)據(jù)的結(jié)構(gòu)化復雜查詢和統(tǒng)計,需要分布式服務器集群,機器數(shù)量龐大,維護費用(場 地、能源)高。
[0007] 簡而言之,面對海量的物聯(lián)網(wǎng)感知數(shù)據(jù),關系型數(shù)據(jù)庫讀寫效率低,擴展復雜,技 術要求高;以NoSQL為代表的非關系型數(shù)據(jù)庫雖然通過降低一致性約束提高了效率,但是 處理海量數(shù)據(jù)時成百上千甚至上萬的計算機規(guī)模,對很多應用而言投入過重,并且不支持 結(jié)構(gòu)化復雜查詢。因此亟需一種擴展方便、規(guī)模適中的海量數(shù)據(jù)存儲和查詢的方法和系統(tǒng)。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明提出一種基于Key-Value數(shù)據(jù)塊的數(shù)據(jù)管理方法及系統(tǒng),以實現(xiàn)在較少數(shù) 量計算機情況下就能夠?qū)A课锫?lián)網(wǎng)感知數(shù)據(jù)進行高效讀寫,并可根據(jù)業(yè)務規(guī)模方便地進 行擴展。
[0009] 為了解決上述技術問題,本發(fā)明提供一種基于Key-Value數(shù)據(jù)塊的數(shù)據(jù)管理方 法,根據(jù)感知數(shù)據(jù)具有的屬性選取數(shù)據(jù)聚集的維度,將具有共性即具有同一屬性維度的感 知數(shù)據(jù)進行聚類,并將其集中存儲在同一數(shù)據(jù)塊中,將選取的數(shù)據(jù)聚集維度作為數(shù)據(jù)塊對 應的屬性信息;數(shù)據(jù)塊內(nèi)部的數(shù)據(jù)采用Key-Value數(shù)據(jù)格式存儲和管理;數(shù)據(jù)塊的存儲位 置及其對應的屬性信息采用關系型數(shù)據(jù)庫進行存儲和管理。
[0010] 具體而言,本發(fā)明基于Key-Value數(shù)據(jù)塊的數(shù)據(jù)管理方法包括以下步驟:
[0011] 步驟一、從感知數(shù)據(jù)描述的屬性中選取數(shù)據(jù)聚集的維度,一般選取查詢頻度較高 或者取值重復性較高的屬性作為數(shù)據(jù)聚集的維度;
[0012] 步驟二、根據(jù)選取的數(shù)據(jù)聚集的維度組建數(shù)據(jù)分塊規(guī)則,所述數(shù)據(jù)分塊規(guī)則用于 指示數(shù)據(jù)聚集的維度與存儲該數(shù)據(jù)的數(shù)據(jù)塊的對應關系,反映了數(shù)據(jù)分塊條件與數(shù)據(jù)塊之 間的對應關系,將選取的數(shù)據(jù)聚集維度作為數(shù)據(jù)塊對應的屬性信息;
[0013] 步驟三、根據(jù)數(shù)據(jù)分塊規(guī)則以及數(shù)據(jù)塊與數(shù)據(jù)塊鍵值之間的對應關系,獲取數(shù)據(jù) 分塊規(guī)則與數(shù)據(jù)塊鍵值的對應關系以及數(shù)據(jù)塊的存儲位置,所述數(shù)據(jù)塊的存儲位置是用于 指示數(shù)據(jù)塊所存儲的計算機節(jié)點以及節(jié)點中的包括路徑和名稱等在內(nèi)的信息;
[0014] 步驟四、根據(jù)感知數(shù)據(jù)分塊規(guī)則在關系型數(shù)據(jù)庫中查找對應的數(shù)據(jù)塊鍵值,如果 查詢結(jié)果中不存在與所述感知數(shù)據(jù)分塊規(guī)則對應的數(shù)據(jù)條目,則將數(shù)據(jù)塊的存儲位置及其 對應的屬性信息組織成一條數(shù)據(jù)條目添加到關系型數(shù)據(jù)庫中進行存儲和管理;
[0015] 步驟五、將感知數(shù)據(jù)條目按照所述對應的數(shù)據(jù)聚集的維度和數(shù)據(jù)塊的存儲位置添 加存儲到對應的數(shù)據(jù)塊中,所述數(shù)據(jù)塊內(nèi)的感知數(shù)據(jù)條目采用Key-Value數(shù)據(jù)模型,Key值 采用感知數(shù)據(jù)條目的鍵值,Value值為感知數(shù)據(jù)的屬性,所述Key值的數(shù)據(jù)結(jié)構(gòu)具體可以為 R樹、B+樹、B樹或自定義的方法;
[0016] 步驟六、建立新添加感知數(shù)據(jù)條目的數(shù)據(jù)塊內(nèi)索弓丨,所述數(shù)據(jù)塊內(nèi)索引采用 Key-Value數(shù)據(jù)模型,Key值為所述數(shù)據(jù)塊內(nèi)索引所對應的字段,Value值為感知數(shù)據(jù)條目 的鍵值,所述Key值的數(shù)據(jù)結(jié)構(gòu)具體可以為R樹、B+樹、B樹或自定義的方法。
[0017] 本發(fā)明還提供一種基于Key-Value數(shù)據(jù)塊的數(shù)據(jù)管理系統(tǒng),所述系統(tǒng)包括:
[0018] 數(shù)據(jù)分塊規(guī)則獲取模塊,所述數(shù)據(jù)分塊規(guī)則用于指示數(shù)據(jù)聚集的維度,反映了數(shù) 據(jù)分塊條件與數(shù)據(jù)塊之間的對應關系;
[0019] 數(shù)據(jù)分塊規(guī)則與數(shù)據(jù)塊鍵值對應關系建立模塊,其根據(jù)數(shù)據(jù)分塊規(guī)則和數(shù)據(jù)塊與 數(shù)據(jù)塊鍵值之間的對應關系,建立數(shù)據(jù)分塊規(guī)則與數(shù)據(jù)塊鍵值之間的對應關系;
[0020] 數(shù)據(jù)塊鍵值與存儲位置關系建立模塊,其根據(jù)數(shù)據(jù)塊鍵值和數(shù)據(jù)塊存儲位置,建 立數(shù)據(jù)塊鍵值與其存儲位置之間的對應關系;
[0021 ] Key-Value數(shù)據(jù)模型建立模塊,根據(jù)數(shù)據(jù)條目在數(shù)據(jù)塊內(nèi)的鍵值建立數(shù)據(jù)條目的 Key-Value數(shù)據(jù)模型;
[0022] 數(shù)據(jù)塊索引建立模塊,其根據(jù)查詢的屬性建立數(shù)據(jù)條目的數(shù)據(jù)塊索引。
[0023] 需要說明的是,本發(fā)明并不限定數(shù)據(jù)存儲在單一計算機環(huán)境還是多計算機環(huán)境, 實際上本發(fā)明既適用于單計算機環(huán)境