一種基于云平臺的元數(shù)據(jù)索引模型及方法
【專利摘要】本發(fā)明公開一種基于云平臺的元數(shù)據(jù)索引模型及方法,模型包括:全量索引模塊,主要解決對遺留數(shù)據(jù)和遷移數(shù)據(jù)建立全量索引的問題;增量索引模塊,主要解決審核通過的元數(shù)據(jù)以增量的方式加入索引庫;索引管理模塊,用于對索引的基本管理需求。方法通過構(gòu)建提供元數(shù)據(jù)建立索引的一套SaaS服務(wù)。租戶通過遷移或者注冊流程存儲元數(shù)據(jù)到元數(shù)據(jù)存儲中心,對遷移的元數(shù)據(jù)采用建立全量索引的方式,對通過注冊流程存儲的元數(shù)據(jù),調(diào)用建立增量索引接口,以增量的方式向索引庫添加數(shù)據(jù);建立索引使用分布式檢索工具Elasticsearch完成。本發(fā)明建立索引速度具有明顯提升,能夠達到實時搜索,具有良好的可擴展性。
【專利說明】—種基于云平臺的元數(shù)據(jù)索引模型及方法
[0001]
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及一種基于云平臺的元數(shù)據(jù)索引模型及方法,屬于信息處理【技術(shù)領(lǐng)域】?!颈尘凹夹g(shù)】
[0003]元數(shù)據(jù)是描述資源信息的結(jié)構(gòu)數(shù)據(jù),隨著信息化程度的不斷提高,行業(yè)相關(guān)的元數(shù)據(jù)種類也越來越多,元數(shù)據(jù)的數(shù)據(jù)量也越來越龐大,對元數(shù)據(jù)快速建立索引的需求也越來越迫切。通過建立一套云平臺,為租戶提供建立索引的SaaS服務(wù),多個客戶可以共用同一套系統(tǒng),節(jié)約運行與維護成本,也有利于數(shù)據(jù)的集中。
[0004]目前常見的搜索方案有:使用搜索引擎API構(gòu)建站內(nèi)搜索,阿里開放云搜索,使用開源搜索引擎工具如Lucene、Solr構(gòu)建索引等。使用搜索引擎提供的API接口,雖然使用方便,但是不夠靈活,也不能良好的擴展;阿里開放云搜索,它是針對結(jié)構(gòu)化數(shù)據(jù)的云端搜索服務(wù),具有易擴展,可定制,實時性等特性,但是不能滿足多種類型元數(shù)據(jù)配置的需求,且上傳的元數(shù)據(jù),沒有經(jīng)過審核流程,不能保證數(shù)據(jù)的完整性和正確性;使用Lucene創(chuàng)建索引已經(jīng)在現(xiàn)有元數(shù)據(jù)建立索引中廣泛采用,但是Lucene搜索工具本身不是建立在分布式之上,不支持多租戶機制,建立索引數(shù)據(jù)隔離機制復(fù)雜,建立索引速度相對較慢,對于Solr搜索工具雖然支持分布式,易于擴展,但是同樣不支持多租戶機制。
【發(fā)明內(nèi)容】
[0005]發(fā)明目的:針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明公開一種基于云平臺的元數(shù)據(jù)索引模型及方法。本發(fā)明充分利用云計算中的SaaS思想為多租戶提供建立索引的服務(wù)、支持針對多種類型元數(shù)據(jù)的配置、建立索引速度有明顯提升、實時性好、易擴展。
[0006]技術(shù)方案:一種基于云平臺的元數(shù)據(jù)索引模型,應(yīng)用了分布式索引工具Elasticsearch的特性,與現(xiàn)有元數(shù)據(jù)建立索引方案結(jié)合,為多個租戶提供建立索引服務(wù),租戶之間的索引數(shù)據(jù)保持獨立,每個租戶擁有不同類型的元數(shù)據(jù)對應(yīng)的索引類型,租戶劃分與權(quán)限賦予由用戶圈組負責。模型主要涉及三個功能模塊:全量索引創(chuàng)建、增量索引創(chuàng)建與索引管理。索引管理模塊提供索引管理功能,管理粒度分為三層,分別為用戶層、索引層、索引類型層,支持用戶、索引、索引類型的查詢,支持索引、索引類型的刪除,支持索引權(quán)限的變更。全量索引模塊用于提升建立索引的速度,由于遷移數(shù)據(jù)與遺留數(shù)據(jù)的數(shù)據(jù)量很大,對元數(shù)據(jù)建立索引的過程中,解析元數(shù)據(jù)與建立索引步驟比較耗時,針對此種情況需要通過建立合理的批量提交建立索引請求機制,來保證整個流程的效率。模塊具體介紹如下:
建立元數(shù)據(jù)全量索引模塊,在租戶通過權(quán)限驗證后,提取租戶在元數(shù)據(jù)存儲庫中存儲的遷移元數(shù)據(jù),采用批量方式對元數(shù)據(jù)建立全量索引。
[0007]建立元數(shù)據(jù)增量索引模塊,在租戶通過權(quán)限驗證后,獲得審核通過的元數(shù)據(jù)ID,當索引文件中不存在該元數(shù)據(jù)信息時,增量式的把數(shù)據(jù)存入租戶對應(yīng)的索引文件中。[0008]索引管理模塊,用于顯示索引庫中索引的基本信息,包括:以及租戶對應(yīng)的索引和類型,索引的權(quán)限控制,索引的存儲管理。
[0009]一種基于云平臺對元數(shù)據(jù)建立索引方法,包括以下步驟:
步驟1,首先需要判斷租戶的權(quán)限,使用用戶圈組提供的接口驗證租戶權(quán)限,若通過驗證,則表明租戶擁有租戶空間的使用權(quán)限,可以在租戶空間中建立索引。其中租戶空間為邏輯隔離,租戶索引數(shù)據(jù)被存放在一個索引庫中。進入步驟2:
步驟2,依據(jù)租戶信息提取出租戶對應(yīng)元數(shù)據(jù)存儲中心存儲的標識信息;
步驟3,判斷租戶當前執(zhí)行的操作是否針對遷移或者遺留的元數(shù)據(jù),如果是則轉(zhuǎn)向步驟4,如果為通過元數(shù)據(jù)審核流程審核通過后的元數(shù)據(jù)則轉(zhuǎn)向步驟9 ;
步驟4,建立元數(shù)據(jù)全量索引,主要包括建立索引庫,提取索引配置項與建立索引類型Mapping信息,具體步驟如下:
步驟4-1,向Elasticsearch發(fā)送建立空索引庫指令,在租戶空間建立一個空索引庫。調(diào)用索引管理模塊接口添加租戶與索引庫關(guān)聯(lián)信息,轉(zhuǎn)向步驟4-2;
步驟4-2,租戶或者系統(tǒng)管理員可以填寫索引配置文件,用以定義索引建立方式和元數(shù)據(jù)解析,每一種類型的元數(shù)據(jù)對應(yīng)一種類型的索引配置文件。從索引配置文件中提取索引配置項,包括分詞器配置信息、是否存儲、是否分詞、索引類型、索引名稱等,轉(zhuǎn)向步驟4-3 ;步驟4-3,依據(jù)步驟4-2提取出的索引配置項,構(gòu)建指定索引類型的Mapping, Mapping相當于數(shù)據(jù)庫中表結(jié)構(gòu),規(guī)定了索引的結(jié)構(gòu),即索引名稱字段對應(yīng)的分詞信息、索引分詞器、搜索分詞器、存儲信息、索引類型等。轉(zhuǎn)向步驟5;
步驟5,從索引配置文件中提取出元數(shù)據(jù)解析路徑,即XPATH配置項,轉(zhuǎn)向步驟6 ;
步驟6,依據(jù)XPATH從元數(shù)據(jù)存儲中心中解析出對應(yīng)的數(shù)據(jù),轉(zhuǎn)向步驟7 ;
步驟7,將步驟6解析出的數(shù)據(jù)匹配到對應(yīng)的Mapping中,形成一條索引數(shù)據(jù),轉(zhuǎn)向步驟
8 ;
步驟8,采用分層思想建立批量,第一層以租戶為單位,第二層以元數(shù)據(jù)類型為單位,每次循環(huán)提交一次批量,執(zhí)行成功后轉(zhuǎn)向步驟10 ;
步驟9,建立增量索引,主要包括提取增量ID、判斷索引與類型信息,增量添加索引數(shù)據(jù),具體步驟如下:
步驟9-1,租戶注冊的元數(shù)據(jù)在元數(shù)據(jù)存儲中心中擁有唯一 ID,提取ID ;
步驟9-2,判斷租戶建立的索引中是否存在與此ID沖突的數(shù)據(jù),若存在則轉(zhuǎn)向步驟9-2-1,否則轉(zhuǎn)向步驟9-2-2 ;
步驟9-2-1,依據(jù)元數(shù)據(jù)唯一 ID號,刪除索引中對應(yīng)的數(shù)據(jù),刪除成功后轉(zhuǎn)向步驟9-2-2 ;
步驟9-2-2,查詢到對應(yīng)的索引類型的Mapping信息,轉(zhuǎn)向步驟5 ;
步驟10,結(jié)束。
[0010]有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明提供的基于云平臺的元數(shù)據(jù)索引模型與方法,利用了分布式搜索引擎工具構(gòu)建了一個提供建立索引的SaaS服務(wù),通過使用此SaaS服務(wù),企業(yè)或部門無需重新開發(fā)一套類似系統(tǒng),節(jié)約了開發(fā)、運行、維護成本,促進了組織機構(gòu)的跨地域合作,有利于數(shù)據(jù)信息實現(xiàn)共享;只需要修改索引配置文件便可以靈活添加新生元數(shù)據(jù)類型的支持;能夠擴展索引服務(wù)器集群來支持海量數(shù)據(jù)的建立索引需求;達到真正的實時檢索需求;利用Elasticsearch與元數(shù)據(jù)的特性,采用以租戶、元數(shù)據(jù)類型為單位劃分兩層建立批量索引,使建立索引的速度具有明顯提高;提供索引管理功能,對索引權(quán)限進行控制,并且方便查看與管理索引信息。
【專利附圖】
【附圖說明】
[0011]圖1為本發(fā)明的基于云平臺對元數(shù)據(jù)建立索引方法的流程圖;
圖2為本發(fā)明的索引數(shù)據(jù)隔離機制示意圖;
圖3為本發(fā)明的架構(gòu)設(shè)計示意圖。
【具體實施方式】
[0012]下面結(jié)合具體實施例,進一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
[0013]如圖1所示,為本發(fā)明實施例的基于云平臺對元數(shù)據(jù)建立索引的方法,例如存在五種類型的元數(shù)據(jù),租戶A與租戶B各需要創(chuàng)建兩個索引,其中每個索引包含的類型也不相同,在開始創(chuàng)建索引流程前,需要配置元數(shù)據(jù)的解析配置文件,在租戶創(chuàng)建索引時,系統(tǒng)自動匹配租戶對應(yīng)的元數(shù)據(jù)類型,并依據(jù)涉及的元數(shù)據(jù)類型創(chuàng)建對應(yīng)類型的索引,此方法具體包含以下步驟:
步驟1,首先通過用戶圈組提供的權(quán)限認證機制判斷租戶的權(quán)限,用戶圈規(guī)定租戶空間,并設(shè)置一個圈管理員,圈管理員可以控制租戶空間使用者數(shù)量與用戶組權(quán)限設(shè)定,用戶圈包含若干用戶組,用戶組對應(yīng)權(quán)限,包括:建立索引,管理索引,查看索引等權(quán)限。若租戶擁有租戶空間的創(chuàng)立索引權(quán)限,可以在租戶空間中建立索引,若租戶擁有租戶空間的管理權(quán)限,則可以對租戶空間中的索引文件進行管理,若租戶擁有查看索引權(quán)限,租戶可以查看索引中的記錄。其中租戶空間為邏輯隔離,租戶索引數(shù)據(jù)被存放在一個索引庫中。若租戶獲得租戶空間創(chuàng)建索引權(quán)限,進入步驟2:
步驟2,依據(jù)租戶信息查詢出租戶對應(yīng)元數(shù)據(jù)存儲中心存儲的標識信息,使用該標識信息可以從元數(shù)據(jù)存儲中心提取出租戶對應(yīng)的元數(shù)據(jù);
步驟3,判斷租戶當前執(zhí)行的操作是否針對遷移或者遺留的元數(shù)據(jù),如果是則轉(zhuǎn)向步驟4,如果為通過元數(shù)據(jù)審核流程審核通過后的元數(shù)據(jù)則轉(zhuǎn)向步驟9 ;
步驟4,建立元數(shù)據(jù)全量索引,主要包括建立索引庫,提取索引配置項與建立索引類型Mapping信息等,具體步驟如下:
步驟4-1,向Elasticsearch發(fā)送建立空索引庫指令,在租戶空間建立一個空索引庫。調(diào)用索引管理模塊接口添加租戶與索引庫關(guān)聯(lián)信息,轉(zhuǎn)向步驟4-2 ;
步驟4-2,租戶或者系統(tǒng)管理員填寫索引配置文件,每種類型的元數(shù)據(jù)都需要有一個對應(yīng)類型的索引配置文件,文件中定義了索引建立方式和元數(shù)據(jù)解析路徑。從索引配置文件中提取Mapping配置項,包括分詞器配置信息、是否存儲、是否分詞、索引類型、索引名稱等,轉(zhuǎn)向步驟4-3 ;
步驟4-3,依據(jù)步驟4-2提取出的Mapping配置項,構(gòu)建指定索引類型的Mapping,Mapping相當于數(shù)據(jù)庫中表結(jié)構(gòu),規(guī)定了索引的結(jié)構(gòu),即索引名稱字段對應(yīng)的分詞信息、索引分詞器、搜索分詞器、存儲信息、索引類型等。轉(zhuǎn)向步驟5 ;
步驟5,從索引配置文件中提取出元數(shù)據(jù)解析路徑,即XPATH配置項,轉(zhuǎn)向步驟6 ;
步驟6,若元數(shù)據(jù)存在Oracle的XMLTYPE項中,則使用extract函數(shù)利用XPATH解析出對應(yīng)的數(shù)據(jù),若元數(shù)據(jù)存儲在其他數(shù)據(jù)庫或者文件系統(tǒng)中,則作相應(yīng)的擴展,轉(zhuǎn)向步驟7 ;步驟7,將步驟6解析出的數(shù)據(jù)匹配到對應(yīng)的Mapping中,形成一條索引數(shù)據(jù),轉(zhuǎn)向步驟
8 ;
步驟8,全量索引是對元數(shù)據(jù)存儲中心中所有元數(shù)據(jù)建立索引,元數(shù)據(jù)存儲中心存儲著多個租戶的多種類型元數(shù)據(jù),由于解析元數(shù)據(jù)比較耗時,所以此處采用分層思想對索引數(shù)據(jù)建立批量,第一層以租戶為單位,第二層以元數(shù)據(jù)類型為單位,每次循環(huán)提交一次批量,在解析元數(shù)據(jù)時不會影響到索引數(shù)據(jù)導(dǎo)入到Elasticsearch中,執(zhí)行成功后轉(zhuǎn)向步驟10 ;步驟9,建立增量索引,主要包括提取增量ID、判斷索引與類型信息,增量添加索引數(shù)據(jù),具體步驟如下:
步驟9-1,租戶注冊的元數(shù)據(jù)在元數(shù)據(jù)存儲中心中擁有唯一 ID,提取ID ;
步驟9-2,判斷租戶建立的索引中是否存在與此ID沖突的數(shù)據(jù),若存在則轉(zhuǎn)向步驟9-2-1,否則轉(zhuǎn)向步驟9-2-2 ;
步驟9-2-1,依據(jù)元數(shù)據(jù)唯一 ID號,刪除索引中對應(yīng)的數(shù)據(jù),刪除成功后轉(zhuǎn)向步驟9-2-2 ;
步驟9-2-2,查詢到對應(yīng)的索引類型的Mapping信息,轉(zhuǎn)向步驟5 ;
步驟10,結(jié)束。
[0014]如圖2為本發(fā)明實施例的基于云平臺對元數(shù)據(jù)建立索引的索引結(jié)構(gòu)示意圖,租戶建立的索引在索引庫中是獨立存放的,依據(jù)Elasticsearch檢索工具的特性,租戶可以建立多個索引,每個索引可以擁有多種索引類型。不同類型的資源對應(yīng)著不同類型的元數(shù)據(jù),每一種類型的元數(shù)據(jù)對應(yīng)一種類型的索引類型。
[0015]如圖3為本發(fā)明實施的架構(gòu)示意圖,租戶由用戶圈組創(chuàng)建,并賦予權(quán)限;租戶可以向元數(shù)據(jù)注冊中心注冊或者遷移元數(shù)據(jù);租戶調(diào)用建立索引的SaaS服務(wù),需要向用戶圈組請求租戶驗證;索引服務(wù)器支撐建立索引與搜索服務(wù),并且是可擴展的;租戶空間存放著索引文件,不同租戶的索引數(shù)據(jù)是邏輯隔離的。
【權(quán)利要求】
1.一種基于云平臺的元數(shù)據(jù)索引模型,其特征在于:所述模型應(yīng)用了分布式索引工具Elasticsearch的特性,與元數(shù)據(jù)建立索引方案結(jié)合,為多個租戶提供建立索引服務(wù),租戶之間的索引數(shù)據(jù)保持獨立,每個租戶擁有不同類型的元數(shù)據(jù)對應(yīng)的索引類型,租戶劃分與權(quán)限賦予由用戶圈組負責;模型主要包括三個功能模塊:全量索引創(chuàng)建、增量索引創(chuàng)建與索引管理; 索引管理模塊提供索引管理功能,管理粒度分為三層,分別為用戶層、索引層、索引類型層,支持用戶、索引、索引類型的查詢,支持索引、索引類型的刪除,支持索引權(quán)限的變更;全量索引模塊用于提升建立索引的速度,通過建立合理的批量提交建立索引請求機制,來保證整個流程的效率; 建立元數(shù)據(jù)全量索引模塊,在租戶通過權(quán)限驗證后,提取租戶在元數(shù)據(jù)存儲庫中存儲的遷移元數(shù)據(jù),采用批量方式對元數(shù)據(jù)建立全量索引; 建立元數(shù)據(jù)增量索引模塊,在租戶通過權(quán)限驗證后,獲得審核通過的元數(shù)據(jù)ID,當索引文件中不存在該元數(shù)據(jù)信息時,增量式的把數(shù)據(jù)存入租戶對應(yīng)的索引文件中; 索引管理模塊,用于顯示索引庫中索引的基本信息,包括:以及租戶對應(yīng)的索引和類型,索引的權(quán)限控制,索引的存儲管理。
2.一種基于云平臺對元數(shù)據(jù)建立索引的方法,其特征在于,包括以下步驟: 步驟1,首先需要判斷租戶的權(quán)限,使用用戶圈組提供的接口驗證租戶權(quán)限,若通過驗證,則表明租戶擁有租戶空間的使用權(quán)限,可以在租戶空間中建立索引;其中租戶空間為邏輯隔離,租戶索引數(shù)據(jù)被存放在一個索引庫中;進入步驟2: 步驟2,依據(jù)租戶信息提取出租戶對應(yīng)元數(shù)據(jù)存儲中心存儲的標識信息; 步驟3,判斷租戶當 前執(zhí)行的操作是否針對遷移或者遺留的元數(shù)據(jù),如果是則轉(zhuǎn)向步驟4,如果為通過元數(shù)據(jù)審核流程審核通過后的元數(shù)據(jù)則轉(zhuǎn)向步驟9 ; 步驟4,建立元數(shù)據(jù)全量索引,主要包括建立索引庫,提取索引配置項與建立索引類型Mapping 信息; 步驟5,從索引配置文件中提取出元數(shù)據(jù)解析路徑,即XPATH配置項,轉(zhuǎn)向步驟6 ; 步驟6,依據(jù)XPATH從元數(shù)據(jù)存儲中心中解析出對應(yīng)的數(shù)據(jù),轉(zhuǎn)向步驟7 ; 步驟7,將步驟6解析出的數(shù)據(jù)匹配到對應(yīng)的Mapping中,形成一條索引數(shù)據(jù),轉(zhuǎn)向步驟8 ; 步驟8,采用分層思想建立批量,第一層以租戶為單位,第二層以元數(shù)據(jù)類型為單位,每次循環(huán)提交一次批量,執(zhí)行成功后轉(zhuǎn)向步驟10 ; 步驟9,建立增量索引,主要包括提取增量ID、判斷索引與類型信息,增量添加索引數(shù)據(jù); 步驟10,結(jié)束。
3.如權(quán)利要求1所述的基于云平臺對元數(shù)據(jù)建立索引的方法,其特征在于,步驟4中建立元數(shù)據(jù)全量索引具體步驟如下: 步驟4-1,向Elasticsearch發(fā)送建立空索引庫指令,在租戶空間建立一個空索引庫。
4.調(diào)用索引管理模塊接口添加租戶與索引庫關(guān)聯(lián)信息,轉(zhuǎn)向步驟4-2; 步驟4-2,租戶或者管理員可以填寫索引配置文件,用以定義索引建立方式和元數(shù)據(jù)解析,每一種類型的元數(shù)據(jù)對應(yīng)一種類型的索引配置文件;從索引配置文件中提取索引配置項,包括分詞器配置信息、是否存儲、是否分詞、索引類型、索引名稱等,轉(zhuǎn)向步驟4-3; 步驟4-3,依據(jù)步驟4-2提取出的索引配置項,依據(jù)特定的規(guī)則,構(gòu)建立指定索引類型的Mapping, Mapping相當于數(shù)據(jù)庫中表結(jié)構(gòu),規(guī)定了索引的結(jié)構(gòu),即索引名稱字段對應(yīng)的分詞信息、索引分詞器、搜索分詞器、存儲信息、索引類型等;轉(zhuǎn)向步驟5。
5.如權(quán)利要求1所述的基于云平臺對元數(shù)據(jù)建立索引的方法,其特征在于,步驟9的具體步驟如下: 步驟9-1,租戶注冊的元數(shù)據(jù)在元數(shù)據(jù)存儲中心中擁有唯一 ID,提取ID ; 步驟9-2,判斷租戶建立的索引中是否存在與此ID沖突的數(shù)據(jù),若存在則轉(zhuǎn)向步驟9-2-1,否則轉(zhuǎn)向步驟9-2-2 ; 步驟9-2-1,依據(jù)元數(shù)據(jù)唯一 ID 號,刪除索引中對應(yīng)的數(shù)據(jù),刪除成功后轉(zhuǎn)向步驟9-2-2 ; 步驟9-2-2,查詢到對應(yīng)的索引類型的Mapping信息,轉(zhuǎn)向步驟5。
【文檔編號】G06F17/30GK103744960SQ201410004932
【公開日】2014年4月23日 申請日期:2014年1月6日 優(yōu)先權(quán)日:2014年1月6日
【發(fā)明者】馮鈞, 姜康, 唐志賢, 萬定生, 朱躍龍, 李士進, 朱康康, 馮讀慶, 許瀟, 劉子源, 陳煥霖 申請人:河海大學