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

非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法、服務(wù)器和系統(tǒng)與流程

文檔序號:12465057閱讀:421來源:國知局
非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法、服務(wù)器和系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)存儲管理,特別涉及非結(jié)構(gòu)化數(shù)據(jù)的存儲管理。



背景技術(shù):

在企業(yè)中,非結(jié)構(gòu)化數(shù)據(jù)的主要來源是各種業(yè)務(wù)應(yīng)用系統(tǒng)(如辦公系統(tǒng)、ERP系統(tǒng)、圖檔系統(tǒng),等)。隨著非結(jié)構(gòu)化數(shù)據(jù)的量不斷增加,為了減小各專業(yè)應(yīng)用系統(tǒng)在非結(jié)構(gòu)化數(shù)據(jù)存儲管理方面的負擔,逐漸形成了專門用于非結(jié)構(gòu)化數(shù)據(jù)存儲、管理、加工處理的“非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)”(也有稱之為“云存儲系統(tǒng)”、“海量存儲系統(tǒng)”、“非結(jié)構(gòu)化數(shù)據(jù)庫”等)。

在功能方面,非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)主要負責統(tǒng)一存儲、管理、加工處理各類企業(yè)應(yīng)用系統(tǒng)產(chǎn)生的非結(jié)構(gòu)化數(shù)據(jù),即非結(jié)構(gòu)化數(shù)據(jù)存儲管理軟件的管理對象是非結(jié)構(gòu)化數(shù)據(jù)及其元數(shù)據(jù)。

在性能方面,非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)管理的數(shù)據(jù)至少在TB級別以上,大型企業(yè)更可能達到PB或更高級別,文件個數(shù)在“億”級別。所以,系統(tǒng)一般采用集群的方式部署,PB級別的系統(tǒng)集群規(guī)模一般超過10臺服務(wù)器。

而目前的非結(jié)構(gòu)化存儲管理系統(tǒng),將非結(jié)構(gòu)化數(shù)據(jù)的所有屬性放入內(nèi)存中,以方便根據(jù)關(guān)鍵值獲取非結(jié)構(gòu)化數(shù)據(jù)的屬性,但其無法支撐大量的小文件及其元數(shù)據(jù)的存儲和訪問。

例如HDFS,根據(jù)X86服務(wù)器的體系架構(gòu),服務(wù)器的內(nèi)存是有上限的,例如高性能的4路服務(wù)器最多只能配置128GB的內(nèi)存。那么,服務(wù)器的內(nèi)存大小就限制了HDFS的集群的規(guī)模。例如:假設(shè)非結(jié)構(gòu)化數(shù)據(jù)的平均文件大小是100KB,假設(shè)系統(tǒng)設(shè)置的元數(shù)據(jù)信息為1KB,那么128GB內(nèi)存最多可以存儲的元數(shù)據(jù)條目數(shù)=128GB/1KB=1.28億,對應(yīng)的集群文件規(guī)模最大=1.28億*100KB=12.8TB。這遠遠不能滿足大數(shù)據(jù)存儲的需求。

另外,該服務(wù)器只提供了三種操作:根據(jù)ID進行Get(獲取)、Set(設(shè)置)、Delete(刪除)操作。因此無法滿足多種任務(wù)場景需求,例如需要通過查詢甲方為XX公司的合同。



技術(shù)實現(xiàn)要素:

以下給出對一個或更多個方面的簡化概述以力圖提供對此類方面的基本理解。此概述不是所有構(gòu)想到的方面的詳盡綜覽,并且既非旨在指認出所有方面的關(guān)鍵性或決定性要素亦非試圖界定任何或所有方面的范圍。其唯一的目的是要以簡化形式給出一個或更多個方面的一些概念以作為稍后給出的更加具體的說明之序。

本文提供一種非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法、服務(wù)器和系統(tǒng),解決現(xiàn)有技術(shù)中非結(jié)構(gòu)化存儲管理系統(tǒng)無法支撐大量的小文件及其元數(shù)據(jù)的存儲和快速訪問的問題。

為實現(xiàn)上述目的,發(fā)明人提供了非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法、服務(wù)器和系統(tǒng),其中方法用于存儲和管理非結(jié)構(gòu)化數(shù)據(jù),該方法包括:

非結(jié)構(gòu)化數(shù)據(jù)具有與其對應(yīng)的第二元數(shù)據(jù);

第二元數(shù)據(jù)存儲于內(nèi)存中,以哈希表的結(jié)構(gòu)存儲,

第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)和第一鍵值;

第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;

接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;

若非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,

則在內(nèi)存中執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令。

相對于為了滿足業(yè)務(wù)處理需求而只能采用數(shù)據(jù)庫方式存儲第一元數(shù)據(jù)信息的現(xiàn)有方式,本文的方法在處理部分數(shù)據(jù)訪問請求時能在內(nèi)存中快速返回所請求的數(shù)據(jù),從而提高系統(tǒng)整體的效率。

為能達成前述及相關(guān)目的,這一個或更多個方面包括在下文中充分描述并在所附權(quán)利要求中特別指出的特征。以下描述和附圖詳細闡述了這一個或更多個方面的某些說明性特征。但是,這些特征僅僅是指示了可采用各種方面的原理的各種方式中的若干種,并且本描述旨在涵蓋所有此類方面及其等效方面。

附圖說明

以下將結(jié)合附圖來描述所公開的方面,提供附圖是為了說明而非限定所公開的方面,附圖中相似的標號標示相似要素,并且在其中:

圖1元數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)共同保存的結(jié)構(gòu)示意圖;

圖2本發(fā)明提供的系統(tǒng)架構(gòu)圖;

圖3本發(fā)明系統(tǒng)中上傳非結(jié)構(gòu)化數(shù)據(jù)流程示意圖;

圖4本發(fā)明系統(tǒng)中下載非結(jié)構(gòu)化數(shù)據(jù)流程示意圖。

附圖標記說明:

101:非結(jié)構(gòu)化數(shù)據(jù);

102:元數(shù)據(jù);

201:客戶端;

202:服務(wù)端;

2021:非結(jié)構(gòu)化數(shù)據(jù)存儲服務(wù)模塊;

2022:元數(shù)據(jù)存儲管理模塊;

2023:數(shù)據(jù)庫模塊;

2024:分布式消息模塊;

2027:硬件驅(qū)動模塊;

301:客戶端;

311:元數(shù)據(jù)存儲管理模塊;

312:離線計算模塊;

313:分布式消息模塊;

321:數(shù)據(jù)庫模塊;

3223、3222、3221:非結(jié)構(gòu)化數(shù)據(jù)存儲服務(wù)模塊;

具體實施方式

為詳細說明技術(shù)方案的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合具體實施例并配合附圖詳予說明。在以下描述中,出于解釋目的闡述了眾多的具體細節(jié)以提供對一個或更多個方面的透徹理解。但是顯而易見的是,沒有這些具體細節(jié)也可實踐此類方面。

本文中元數(shù)據(jù)(Metadata)是描述其它數(shù)據(jù)的數(shù)據(jù)(data about other data),或者說是用于提供某種資源的有關(guān)信息的結(jié)構(gòu)數(shù)據(jù)(structured data)。元數(shù)據(jù)是描述信息資源或數(shù)據(jù)等對象的數(shù)據(jù),其使用目的在于:識別資源;評價資源;追蹤資源在使用過程中的變化;實現(xiàn)簡單高效地管理大量網(wǎng)絡(luò)化數(shù)據(jù);實現(xiàn)信息資源的有效發(fā)現(xiàn)、查找、一體化組織和對使用資源的有效管理。

元數(shù)據(jù)的最為重要的特征和功能是為數(shù)字化信息資源建立一種機器可理解框架。非結(jié)構(gòu)化數(shù)據(jù)的屬性通常包括四類:基本屬性(如文件名、創(chuàng)建時間,等)、語義特征(和具體業(yè)務(wù)相關(guān)的信息,如一份“合同”,其元數(shù)據(jù)包括甲方、乙方、合同額,等)、底層特征(如視頻文件的幀數(shù)、圖像文件的顏色空間,等)和管理屬性(如非結(jié)構(gòu)化數(shù)據(jù)的權(quán)限歸屬、存儲路徑,等)。這四類都可作為元數(shù)據(jù)。

可以理解的是,在不同的系統(tǒng)中,根據(jù)系統(tǒng)所存儲和處理的非結(jié)構(gòu)化數(shù)據(jù)不同、數(shù)據(jù)業(yè)務(wù)流程的不同等,所選取的非結(jié)構(gòu)化數(shù)據(jù)的屬性也是不同的,即元數(shù)據(jù)可以是預先設(shè)定,或根據(jù)神經(jīng)網(wǎng)絡(luò)計算生成的用于描述非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)集合。例如有些系統(tǒng)中的元數(shù)據(jù)包括文件名、文件編號、授權(quán)信息等屬性;而另一些系統(tǒng)中,元數(shù)據(jù)包括甲方、乙方、查看權(quán)限、文件名、合同文本等;

本文提供一種非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法、服務(wù)器和系統(tǒng),用于提供一種支撐大量的小文件及其元數(shù)據(jù)的存儲和快速訪問、以及支持對非結(jié)構(gòu)化數(shù)據(jù)屬性的直接查詢的存儲管理系統(tǒng)。該系統(tǒng)特別適合作為數(shù)據(jù)至少在TB級別以上,甚至達到PB或更高級別、文件個數(shù)在“億”級別的非結(jié)構(gòu)化數(shù)據(jù)存儲管理的解決方案。

本文提供非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法,用于存儲和管理非結(jié)構(gòu)化數(shù)據(jù),該方法如下:

非結(jié)構(gòu)化數(shù)據(jù)具有與其對應(yīng)的第二元數(shù)據(jù);

第二元數(shù)據(jù)存儲于內(nèi)存中,以哈希表的結(jié)構(gòu)存儲,

第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)和第一鍵值;

第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;

接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;

若非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,

則在內(nèi)存中執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令。

為了便于描述,非結(jié)構(gòu)化數(shù)據(jù)管理指令也簡稱數(shù)據(jù)管理指令或指令。

本文中第一元數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)中所有業(yè)務(wù)處理過程中,需要用到的非結(jié)構(gòu)化數(shù)據(jù)的所有原始的描述數(shù)據(jù)的集合;本文中第二元數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù)的部分原始的描述數(shù)據(jù)的集合;例如,在某一系統(tǒng)中:某一業(yè)務(wù)處理過程中需要用到文件名、目錄、訪問權(quán)限;另一業(yè)務(wù)處理過程中需要用到案件編號、摘要、摘要附圖;因此在該系統(tǒng)中,第一元數(shù)據(jù)包括關(guān)鍵字、文件名、目錄、訪問權(quán)限、文件編號、摘要、摘要附圖,這些數(shù)據(jù)可以是以表的形式存儲于數(shù)據(jù)庫中;可以理解的是,根據(jù)開發(fā)或應(yīng)用場景的不同,這些數(shù)據(jù)是否作為原始描述數(shù)據(jù),是由非結(jié)構(gòu)化存儲管理系統(tǒng)開發(fā)時決定的;例如在一個管理合同的非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)中,合同的簽署日期是合同這種非結(jié)構(gòu)化數(shù)據(jù)的一個原始描述數(shù)據(jù),但有些系統(tǒng)在設(shè)計時,將合同的生效時長作為原始描述數(shù)據(jù),而另一些情況中,合同的生效時長不作為原始描述數(shù)據(jù),因為合同的生效時長可以通過合同的簽署日期計算出;第二元數(shù)據(jù)僅包含關(guān)鍵字、文件名、文件編號;第二元數(shù)據(jù)為系統(tǒng)中業(yè)務(wù)處理過程中頻繁用到的數(shù)據(jù),可以理解的是這里的頻繁指的是相對于該系統(tǒng)中的其他數(shù)據(jù);例如在一個系統(tǒng)中,需要文件名和文件編號的業(yè)務(wù)處理流程較多,或者用戶日常需要通過根據(jù)關(guān)鍵字獲取文件名和文件編號,而不需要每天根據(jù)關(guān)鍵字獲取摘要、摘要附圖等信息,則相對于摘要、摘要附圖,第二元數(shù)據(jù)優(yōu)先包括文件名和文件編號。第二元數(shù)據(jù)的數(shù)據(jù)量小于第一元數(shù)據(jù),在大多數(shù)情況下,第二元數(shù)據(jù)是第一元數(shù)據(jù)的真子集。

第一元數(shù)據(jù)存儲于數(shù)據(jù)庫中,該存儲方式支持用戶的對非結(jié)構(gòu)化數(shù)據(jù)的各種數(shù)據(jù)管理指令,數(shù)據(jù)管理指令包括數(shù)據(jù)庫命令。例如用戶的數(shù)據(jù)管理指令為查詢在2016年間產(chǎn)生的勞動合同數(shù)據(jù),或查詢2016年間企業(yè)的技術(shù)人員的平均工資,等等。

第二元數(shù)據(jù)存儲于內(nèi)存中,優(yōu)選的僅支持三種操作,即根據(jù)第一鍵值進行Get(獲取)、Set(設(shè)置)、Delete(刪除)操作,即內(nèi)存中支持的數(shù)據(jù)管理指令為Get(獲取)、Set(設(shè)置)、Delete(刪除)操作,操作的參數(shù)為第一鍵值。

可以理解的是上述非結(jié)構(gòu)化數(shù)據(jù)管理指令的執(zhí)行只涉及內(nèi)存中的數(shù)據(jù),因此執(zhí)行過程是很快的,因此本文所介紹的非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)可以支持大量的并發(fā)訪問;同時對于同一批非結(jié)構(gòu)化數(shù)據(jù),第二元數(shù)據(jù)的數(shù)據(jù)量小于第一元數(shù)據(jù)的數(shù)據(jù)量,因此在服務(wù)器內(nèi)存大小一定時,所以本文的方法所支持的非結(jié)構(gòu)化數(shù)據(jù)的管理規(guī)模會大于現(xiàn)有技術(shù)。

在另一些優(yōu)選的實施方式中上述方法為:

非結(jié)構(gòu)化數(shù)據(jù)具有與其對應(yīng)的第一元數(shù)據(jù);

第一元數(shù)據(jù)存儲于存儲設(shè)備中,以數(shù)據(jù)庫的形式存儲,

第一元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的全部描述數(shù)據(jù)和第一鍵值;

第二元數(shù)據(jù)存儲于內(nèi)存中,以哈希表的結(jié)構(gòu)存儲,

第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)和第一鍵值;

第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;

接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;

若非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,

則在內(nèi)存中執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令。

若所接收的非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)不為第一鍵值,或所接收的非結(jié)構(gòu)化數(shù)據(jù)管理指令的調(diào)用方式為慢速接口調(diào)用,

則在數(shù)據(jù)庫中執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令即在復雜的數(shù)據(jù)管理請求時,通過數(shù)據(jù)庫的方式處理該數(shù)據(jù)管理指令;

相對于為了滿足業(yè)務(wù)處理需求而只能采用數(shù)據(jù)庫方式存儲第一元數(shù)據(jù)信息的現(xiàn)有方式,本文的方法在處理部分數(shù)據(jù)訪問請求時能在內(nèi)存中快速返回所請求的數(shù)據(jù),從而提高系統(tǒng)整體的效率。

優(yōu)選的實施方式中,第一元數(shù)據(jù)與對應(yīng)的非結(jié)構(gòu)化數(shù)據(jù)組合后存儲于存儲設(shè)備中。

例如參見圖1,在一種實施方式中,在保存非結(jié)構(gòu)化數(shù)據(jù)時,同時將元數(shù)據(jù)及其長度信息作為非結(jié)構(gòu)化數(shù)據(jù)流的頭部,進行一并保存,如圖1所示,原始非結(jié)構(gòu)化數(shù)據(jù)為100KB字節(jié)(L11所指示長度),元數(shù)據(jù)為2KB字節(jié)(L13所指示長度),元數(shù)據(jù)的長度預先保留8個字節(jié)進行保存,從而,最終保存的數(shù)據(jù)長度為104104字節(jié)(L12所指示長度);在進行非結(jié)構(gòu)化數(shù)據(jù)及其元數(shù)據(jù)下載時,首先讀取文件流的頭8字節(jié),獲得元數(shù)據(jù)長度為2014字節(jié);接著讀2048字節(jié),并識別為元數(shù)據(jù)信息;最后,剩下的數(shù)據(jù)就是原始非結(jié)構(gòu)化數(shù)據(jù)。

該方式使其可以同時讀取元數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),同時通過長度信息區(qū)分元數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。上述方式加快一部分數(shù)據(jù)處理的過程,該數(shù)據(jù)處理指的是:需要同時獲取元數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。

上述方法還可應(yīng)用在分布式數(shù)據(jù)存儲管理系統(tǒng)中,

第一服務(wù)器用于存儲非結(jié)構(gòu)化數(shù)據(jù),和用于管理第一元數(shù)據(jù)的數(shù)據(jù)庫;

第二服務(wù)器的內(nèi)存中存儲有第二元數(shù)據(jù);

第二服務(wù)器接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;

若所接收的非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,

則在第二服務(wù)器的內(nèi)存中執(zhí)行非結(jié)構(gòu)化數(shù)據(jù)管理指令;

若所接收的非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)不為第一鍵值,或所接收的非結(jié)構(gòu)化數(shù)據(jù)管理指令的調(diào)用方式為慢速接口調(diào)用,

則通過數(shù)據(jù)庫執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令。

本文還提供一種非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng),用于實現(xiàn)上述方法,該系統(tǒng)包括第一服務(wù)器;第二服務(wù)器;

第二服務(wù)器用于存儲第二元數(shù)據(jù);第二元數(shù)據(jù)存儲于第二服務(wù)器的內(nèi)存中,以哈希表的結(jié)構(gòu)存儲,第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)和第一鍵值;第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;用于接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;若非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,則在內(nèi)存中執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令;用于在非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)不為第一鍵值或所接收的非結(jié)構(gòu)化數(shù)據(jù)管理指令的調(diào)用方式為慢速接口調(diào)用時,將該非結(jié)構(gòu)化數(shù)據(jù)管理指令發(fā)送至第一服務(wù)器執(zhí)行;慢速接口為調(diào)用數(shù)據(jù)庫方式執(zhí)行的接口。慢速接口調(diào)用即指的是調(diào)用的接口為慢速接口。

第一服務(wù)器用于存儲第一元數(shù)據(jù),第一元數(shù)據(jù)存儲于存儲設(shè)備中,以數(shù)據(jù)庫的形式存儲,第一元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的全部描述數(shù)據(jù)和第一鍵值。

優(yōu)選的方案中,第一服務(wù)器或第二服務(wù)器的存儲設(shè)備中存儲有第一元數(shù)據(jù)與對應(yīng)的非結(jié)構(gòu)化數(shù)據(jù)的組合。

在優(yōu)選的方案中,本文提供的非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng),包括客戶端,第一服務(wù)器、第二服務(wù)器;客戶端根據(jù)客戶的數(shù)據(jù)處理事務(wù),發(fā)送對應(yīng)的指令或調(diào)取對應(yīng)的訪問接口,從而分布式架構(gòu)的第一服務(wù)器和第二服務(wù)器

客戶端用于在非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值時,發(fā)送至第二服務(wù)器的執(zhí)行該非結(jié)構(gòu)化數(shù)據(jù)管理指令;若所發(fā)送到第二服務(wù)器的非結(jié)構(gòu)化數(shù)據(jù)管理指令添加、修改或刪除第二元數(shù)據(jù),則在第二服務(wù)器返回第一描述數(shù)據(jù)后,將第一描述數(shù)據(jù)發(fā)送至第一服務(wù)器;

客戶端用于在非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)不為第一鍵值,將該非結(jié)構(gòu)化數(shù)據(jù)管理指令發(fā)送至第第一服務(wù)器的執(zhí)行;

第二服務(wù)器用于存儲第二元數(shù)據(jù);第二元數(shù)據(jù)存儲于內(nèi)存中,以哈希表的結(jié)構(gòu)存儲,第二元數(shù)據(jù)包括與非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)和第一鍵值;第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;用于接收和執(zhí)行非結(jié)構(gòu)化數(shù)據(jù)管理指令,該非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值;若所執(zhí)行的非結(jié)構(gòu)化數(shù)據(jù)管理指令添加、修改或刪除第二元數(shù)據(jù),則還向客戶端返回第一描述數(shù)據(jù)。

第一服務(wù)器用于存儲第一元數(shù)據(jù),第一元數(shù)據(jù)存儲于存儲設(shè)備中,以數(shù)據(jù)庫的形式存儲,第一元數(shù)據(jù)包括與非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的全部描述數(shù)據(jù)和第一鍵值;用于接收客戶端發(fā)送的非結(jié)構(gòu)化數(shù)據(jù)管理指令,并使用該管理指令訪問數(shù)據(jù)庫;還用于接收第一描述數(shù)據(jù),并對應(yīng)的操作數(shù)據(jù)庫中的數(shù)據(jù)和存儲設(shè)備中的非結(jié)構(gòu)化數(shù)據(jù)。

優(yōu)選的,第一服務(wù)器中的數(shù)據(jù)庫的更新是異步的,即第一服務(wù)器的數(shù)據(jù)庫根據(jù)第二服務(wù)器的更新而更新,并且該更新是批量和滯后于第二服務(wù)器的更新的。第二服務(wù)器用于每隔一段設(shè)定的時間查詢第二服務(wù)器中的第二元數(shù)據(jù)是否有改變,若有改變則根據(jù)發(fā)生改變的數(shù)據(jù)從第一服務(wù)器中讀取對應(yīng)的第一元數(shù)據(jù),并根據(jù)讀取的第一元數(shù)據(jù)對應(yīng)的修改第一服務(wù)器的數(shù)據(jù)庫,所讀取的第一元數(shù)據(jù)為第一服務(wù)器中根據(jù)第二服務(wù)器中的第二元數(shù)據(jù)的改變而應(yīng)發(fā)生改變的非結(jié)構(gòu)化數(shù)據(jù)所對應(yīng)的第一元數(shù)據(jù)。

例如上述系統(tǒng)的一種實現(xiàn)可以是這樣的:

第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)所存儲的DataNode的編號、在DataNode中的存儲路徑、數(shù)據(jù)權(quán)限;

第一元數(shù)據(jù)還包括其他用于描述非結(jié)構(gòu)化數(shù)據(jù)的其他描述數(shù)據(jù),例如對于合同類的非結(jié)構(gòu)化數(shù)據(jù),其第一元數(shù)據(jù)可以是包括簽訂日期、甲方、乙方、條款正文等。

參見圖2,整體系統(tǒng)架構(gòu)分類兩部分:

1.客戶端201:客戶端觸發(fā)各業(yè)務(wù)系統(tǒng)訪問非結(jié)構(gòu)化數(shù)據(jù)及其元數(shù)據(jù)。另外客戶端也承擔關(guān)鍵字生成、元數(shù)據(jù)的邏輯校驗等工作。

2.服務(wù)端202:主要有四個組件構(gòu)成:非結(jié)構(gòu)化數(shù)據(jù)存儲服務(wù)模塊2021、元數(shù)據(jù)存儲管理模塊2022、分布式消息模塊2024、離線計算模塊2025、硬件驅(qū)動模塊2027;

其中元數(shù)據(jù)存儲管理模塊、分布式消息模塊、離線計算模塊位于第二服務(wù)器中;非結(jié)構(gòu)化數(shù)據(jù)存儲服務(wù)模塊和非結(jié)構(gòu)化數(shù)據(jù)存儲服務(wù)模塊位于第一服務(wù)器中;

1)非結(jié)構(gòu)化數(shù)據(jù)存儲服務(wù)模塊,即DataNode。用以非結(jié)構(gòu)化數(shù)據(jù)的存儲,并提供相關(guān)的網(wǎng)絡(luò)接口服務(wù)。DataNode組件可以是訪問多臺第一服務(wù)器中的數(shù)據(jù)庫,該數(shù)據(jù)庫中存儲有第一元數(shù)據(jù)。在一些優(yōu)選的實施例中,還存儲有第一元數(shù)據(jù),第一元數(shù)據(jù)與對應(yīng)的非結(jié)構(gòu)化數(shù)據(jù)集組合后存儲。

2)元數(shù)據(jù)存儲管理模塊,即NameNode。NameNode運行于第二服務(wù)器中,本方案中用于存儲和管理第二元數(shù)據(jù),并將相關(guān)的服務(wù)以網(wǎng)絡(luò)接口的形式提供。該網(wǎng)絡(luò)接口分為訪問內(nèi)存中第二元數(shù)據(jù)的接口,以及訪問存儲于存儲設(shè)備中的數(shù)據(jù)庫的接口。

3)分布式消息模塊。例如該模塊可以采用開源的消息中間件Kafka,為整體系統(tǒng)提供分布式消息服務(wù),其與離線計算模塊配合,完成各部分數(shù)據(jù)的同步。

4)離線計算模塊。執(zhí)行系統(tǒng)中各類離線計算任務(wù)。在本發(fā)明中,主要與分布式消息模塊配合,實現(xiàn)在數(shù)據(jù)操作增加、刪除、更新等指令下達時,實現(xiàn)第二元數(shù)據(jù)存儲管理模塊與關(guān)系數(shù)據(jù)庫模塊異步執(zhí)行邏輯。

5)數(shù)據(jù)庫模塊。采用開源的關(guān)系數(shù)據(jù)庫MySQL,用以存儲可查詢的第一元數(shù)據(jù)。

以下,通過非結(jié)構(gòu)化數(shù)據(jù)的上傳、下載流程的一個實施例,進一步闡明本發(fā)明的元數(shù)據(jù)存儲管理方法和系統(tǒng):

參見圖3的數(shù)據(jù)上傳流程,其主要包括以下幾個步驟:

S101:客戶端調(diào)用NameNode提供的Set接口,發(fā)起上傳數(shù)據(jù)請求,并傳輸關(guān)鍵字、數(shù)據(jù)權(quán)限等信息至NameNode;可以理解的是,這里的上傳數(shù)據(jù)請求指的是發(fā)起上傳非結(jié)構(gòu)化數(shù)據(jù)的請求。

S102:NameNode根據(jù)DataNode的資源情況,為該數(shù)據(jù)分配具體的DataNode和存儲目錄(即存儲路徑),并將存儲路徑和其他相關(guān)信息添加到第二元數(shù)據(jù)中,將第二元數(shù)據(jù)存儲于NameNode中將第二元數(shù)據(jù)和其他描述數(shù)據(jù)結(jié)合,構(gòu)成第一元數(shù)據(jù)。其他描述數(shù)據(jù)為:該非結(jié)構(gòu)化數(shù)據(jù)區(qū)別于第二元數(shù)據(jù)中的描述數(shù)據(jù)的其他描述數(shù)據(jù)。

S103:NameNode將第一元數(shù)據(jù)發(fā)往離線消息系統(tǒng)模塊,以供后續(xù)離線計算模塊異步調(diào)用。

S104:NameNode將上述信息返回給客戶端后,客戶端調(diào)用DataNode的數(shù)據(jù)傳輸接口,將非結(jié)構(gòu)化數(shù)據(jù)、第一元數(shù)據(jù)發(fā)送至DataNode。而后由DataNode保存非結(jié)構(gòu)化數(shù)據(jù)及第一元數(shù)據(jù)。

為了確保流程(S201-S203)不會影響主流程(S101-S104)的執(zhí)行效率、降低性能,步驟S201-S203設(shè)計為和主流程是異步并行開展的。

流程S201-S203具體為:

S201:離線計算模塊每隔一段時間(如3秒鐘)會向消息系統(tǒng)查詢是否有新增的非結(jié)構(gòu)化數(shù)據(jù)。如果有,則讀取對應(yīng)的第一元數(shù)據(jù)(其包括關(guān)鍵字和存儲路徑)。

S202:離線計算模塊根據(jù)第一元數(shù)據(jù)中的存儲路徑,從DataNode中讀取“整合到非結(jié)構(gòu)化數(shù)據(jù)頭部”的第一元數(shù)據(jù)。

S203:經(jīng)過一定規(guī)則的解析和格式整理后,離線計算模塊調(diào)用關(guān)系數(shù)據(jù)庫命令,執(zhí)行SQL腳本,將第一元數(shù)據(jù)插入到關(guān)系數(shù)據(jù)庫中。供后續(xù)其他數(shù)據(jù)業(yè)務(wù)使用。

數(shù)據(jù)下載流程,有以下兩種不同的類型:只下載一個非結(jié)構(gòu)化數(shù)據(jù)、下載涉及多個非結(jié)構(gòu)化數(shù)據(jù)。

參見圖4,只下載一個非結(jié)構(gòu)化數(shù)據(jù)的下載流程包括:

S301:客戶端調(diào)用NameNode的Get接口,查詢某關(guān)鍵字對應(yīng)第二元數(shù)據(jù)中記載的數(shù)據(jù)存儲路徑和權(quán)限。

S302:客戶端根據(jù)NameNode返回的存儲路徑、數(shù)據(jù)權(quán)限信息,首先檢查發(fā)起該操作的帳號是否有權(quán)限,如有權(quán)限則繼續(xù)解析存儲路徑信息,調(diào)用對應(yīng)的DataNode的數(shù)據(jù)下載接口(該接口為慢速接口),獲得非結(jié)構(gòu)化數(shù)據(jù)及全量元數(shù)據(jù)的信息,將元數(shù)據(jù)從頭部剝離后,即獲得非結(jié)構(gòu)化數(shù)據(jù)文件,以及對應(yīng)的元數(shù)據(jù)。

參見圖4,下載涉及多個非結(jié)構(gòu)化數(shù)據(jù)的下載流程,有以下兩個步驟:

S401:客戶端發(fā)起涉及多個非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)下載指令(該指令的調(diào)用接口為慢速接口),該指令轉(zhuǎn)換為數(shù)據(jù)庫查詢指令,用于在數(shù)據(jù)庫發(fā)起SQL查詢,獲得符合條件的所有相關(guān)數(shù)據(jù)的關(guān)鍵字(如查詢類型為“合同”的所有數(shù)據(jù),則執(zhí)行結(jié)果為返回所有合同數(shù)據(jù)的關(guān)鍵字)和存儲路徑。

S402:客戶端根據(jù)獲得的所有非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的關(guān)鍵字、存儲路徑,逐個調(diào)用對應(yīng)DataNode的數(shù)據(jù)下載接口,獲得非結(jié)構(gòu)化數(shù)據(jù)及全量元數(shù)據(jù)的信息,進一步解析后獲得非結(jié)構(gòu)化數(shù)據(jù)文件及對應(yīng)的元數(shù)據(jù)。

上述方法和系統(tǒng)在充分分析大型企業(yè)中非結(jié)構(gòu)化數(shù)據(jù)元數(shù)據(jù)訪問場景、特點的基礎(chǔ)上,將元數(shù)據(jù)的訪問需求進行分類,并在存儲和訪問的方式上予以區(qū)分對待,從而能夠有效兼顧、平衡企業(yè)非結(jié)構(gòu)化數(shù)據(jù)存儲管理中對元數(shù)據(jù)存儲管理的功能、性能需求,同步達到最優(yōu)化。

與現(xiàn)有技術(shù)相比,上述方法在第二服務(wù)器內(nèi)存一定時,擴大該系統(tǒng)所支持的分布式非結(jié)構(gòu)化數(shù)據(jù)管理的規(guī)模。通過異步并行寫入技術(shù),避免其對主流程進行影響,提高對主流程負責的頻發(fā)的數(shù)據(jù)處理指令的執(zhí)行速度;在實現(xiàn)元數(shù)據(jù)存儲管理的整體高性能的同時,兼顧企業(yè)應(yīng)用在元數(shù)據(jù)查詢等方面的相關(guān)需求。非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)需要統(tǒng)一為企業(yè)內(nèi)部的各類業(yè)務(wù)系統(tǒng)提供非結(jié)構(gòu)化數(shù)據(jù)存、取、管理的相關(guān)服務(wù)。在上述各系統(tǒng)中,用戶發(fā)起的針對非結(jié)構(gòu)化數(shù)據(jù)的所有請求(如查看一張圖片,或上傳下載一個文件),都會轉(zhuǎn)化為對非結(jié)構(gòu)化數(shù)據(jù)存儲管理軟件的訪問請求,而大型企業(yè)中各系統(tǒng)的大量并發(fā)操作將轉(zhuǎn)換為對非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)的操作,本文提供的非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng)將元數(shù)據(jù)的訪問需求進行分類,并在存儲和訪問的方式上予以區(qū)分對待,從而能夠有效兼顧、平衡企業(yè)非結(jié)構(gòu)化數(shù)據(jù)存儲管理中對元數(shù)據(jù)存儲管理的功能、性能需求,同步達到最優(yōu)化,從而可以承載很大的并發(fā)訪問。

本文提供一種用于實現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)存儲管理方法的數(shù)據(jù)服務(wù)器,其相當于第二服務(wù)器,包括元數(shù)據(jù)存儲模塊、元數(shù)據(jù)管理模塊;元數(shù)據(jù)存儲管理模塊包括元數(shù)據(jù)存儲模塊和元數(shù)據(jù)存儲管理模塊;

非結(jié)構(gòu)化數(shù)據(jù)具有與其對應(yīng)的第二元數(shù)據(jù);

元數(shù)據(jù)存儲模塊用于在內(nèi)存中存儲第二元數(shù)據(jù),第二元數(shù)據(jù)以哈希表的結(jié)構(gòu)存儲,第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)、第一鍵值;第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;

元數(shù)據(jù)管理模塊用于接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;若判斷非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,則在內(nèi)存中執(zhí)行非結(jié)構(gòu)化數(shù)據(jù)管理指令。

本文還提供一種用于實現(xiàn)上述方法的非結(jié)構(gòu)化數(shù)據(jù)存儲管理系統(tǒng),包括第一服務(wù)器;第二服務(wù)器;

第二服務(wù)器用于存儲第二元數(shù)據(jù);第二元數(shù)據(jù)存儲于內(nèi)存中,以哈希表的結(jié)構(gòu)存儲,第二元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的部分描述數(shù)據(jù)、第一鍵值;第一鍵值對應(yīng)第二元數(shù)據(jù)映射在哈希表中的關(guān)鍵字;用于接收非結(jié)構(gòu)化數(shù)據(jù)管理指令;若判斷非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)為第一鍵值,則在內(nèi)存中執(zhí)行非結(jié)構(gòu)化數(shù)據(jù)管理指令;

第一服務(wù)器用于存儲第一元數(shù)據(jù),第一元數(shù)據(jù)存儲于存儲設(shè)備中,以數(shù)據(jù)庫的形式存儲,第一元數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)對應(yīng)的全部描述數(shù)據(jù)、第一鍵值;

若判斷非結(jié)構(gòu)化數(shù)據(jù)管理指令的參數(shù)不為第一鍵值,則使用該管理指令訪問數(shù)據(jù)庫。

可以理解的是,第一服務(wù)器不具有第二服務(wù)器管理第二元數(shù)據(jù)的計算邏輯;但第二服務(wù)器可以具有第一服務(wù)器存儲和管理第一元數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的計算邏輯和硬件設(shè)施(例如硬盤)。

優(yōu)選的,第一服務(wù)器或第二服務(wù)器的存儲設(shè)備中存儲有第一元數(shù)據(jù)與對應(yīng)的非結(jié)構(gòu)化數(shù)據(jù)的組合。

需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的要素。此外,在本文中,“大于”、“小于”、“超過”等理解為不包括本數(shù);“以上”、“以下”、“以內(nèi)”等理解為包括本數(shù)。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,上述各實施例可提供為方法、裝置、或計算機程序產(chǎn)品。這些實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。上述各實施例涉及的方法中的全部或部分步驟可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于計算機設(shè)備可讀取的存儲介質(zhì)中,用于執(zhí)行上述各實施例方法所述的全部或部分步驟。所述計算機設(shè)備,包括但不限于:個人計算機、服務(wù)器、通用計算機、專用計算機、網(wǎng)絡(luò)設(shè)備、嵌入式設(shè)備、可編程設(shè)備、智能移動終端、智能家居設(shè)備、穿戴式智能設(shè)備、車載智能設(shè)備等;所述的存儲介質(zhì),包括但不限于:RAM、ROM、磁碟、磁帶、光盤、閃存、U盤、移動硬盤、存儲卡、記憶棒、網(wǎng)絡(luò)服務(wù)器存儲、網(wǎng)絡(luò)云存儲等。

上述各實施例是參照根據(jù)實施例所述的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到計算機設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機程序指令也可存儲在能引導計算機設(shè)備以特定方式工作的計算機設(shè)備可讀存儲器中,使得存儲在該計算機設(shè)備可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機程序指令也可裝載到計算機設(shè)備上,使得在計算機設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

盡管已經(jīng)對上述各實施例進行了描述,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改,所以以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利保護范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍之內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
哈尔滨市| 潍坊市| 星子县| 红安县| 陇西县| 玉门市| 厦门市| 咸宁市| 尤溪县| 东方市| 西青区| 阿拉善盟| 北流市| 清河县| 绥阳县| 泰州市| 峨眉山市| 九江市| 桂阳县| 平谷区| 神池县| 海晏县| 富阳市| 鸡西市| 华安县| 绥棱县| 剑阁县| 米林县| 平安县| 慈溪市| 张掖市| 泽普县| 翁源县| 班玛县| 巴林左旗| 赞皇县| 牙克石市| 张家川| 新平| 芒康县| 迭部县|