趙亞楠,朱月琴,李朝奎,肖克炎,范建福,李秋平
(1.湖南科技大學地理空間信息技術國家地方聯合工程實驗室,湖南 湘潭 411201;2.國土資源部地質信息技術重點實驗室,北京 100037;3.中國地質調查局發展研究中心,北京 100037;4.中國地質科學院礦產資源研究所,北京 100037;5.西北大學城市與環境學院,陜西 西安 710127)
全國礦產資源潛力評價成果數據智能檢索方法研究
趙亞楠1,朱月琴2,3,李朝奎1,肖克炎4,范建福4,李秋平5
(1.湖南科技大學地理空間信息技術國家地方聯合工程實驗室,湖南 湘潭 411201;2.國土資源部地質信息技術重點實驗室,北京 100037;3.中國地質調查局發展研究中心,北京 100037;4.中國地質科學院礦產資源研究所,北京 100037;5.西北大學城市與環境學院,陜西 西安 710127)
針對礦產資源潛力評價成果數據,提出使用Hadoop平臺下的HDFS對海量數據進行存儲,構造地質礦產資源數據存儲模型。使用支持單條記錄快速查詢的HBase數據庫管理其元數據,并進行礦產資源潛力評價成果數據的快速檢索,同時,在HBase上設計多級索引目錄支持非主鍵查詢,解決了HBase只支持簡單的基于主鍵索引的缺點,實現了對礦產資源潛力評價成果數據的智能檢索,并通過實驗進一步驗證該方法的正確性和可行性。
礦產資源;潛力評價;成果數據;Hadoop平臺;HBase多級索引方法
1979~1985年和1992~1996年,這兩段時間我國先后開展了成礦遠景區劃工作和第二輪礦產資源潛力評價工作,對主要的成礦區帶進行了礦產資源潛力評價。“數字地球”、“數字國土”等項目的開展,也使得地質數據也進入了“大數據”時代[1]。實現海量地質數據管理的同時如何高效、快捷的從全國礦產資源潛力評價成果數據中獲取所需數據則顯得至關重要。因此,需要一種方法,既能解決結構化與非結構化海量地質數據的存儲問題,又要實時、高效的進行數據檢索。Hadoop是當前十分流行的基于Share-nothing的分布式處理系統,具有高效率的數據處理功能、容易拓展等優點[2]。HDFS作為底層基礎設施,為云計算提供了高可靠性、高性能的存儲服務,可用于解決地質大數據的存儲問題。由于單純的HDFS文件系統不太適合低延遲的訪問應用,因此,用支持高效檢索的分布式數據庫HBase來滿足其檢索需求。針對礦產資源潛力評價成果數據,設計列式存儲表格,將礦產資源潛力評價元數據存儲于HBase中,便于高效檢索。同時,設計HBase多級索引目錄,并通過實驗證明,該方法具有可行性。
1.1大數據的智能檢索方法研究現狀
礦產資源潛力評價成果數據是通過礦產資源勘查和總結地質調查成果數據得到,可用于科學的評價未知礦的潛力,對于指示找礦具有重要的意義。伴隨著大數據時代的到來,如何迅速的從冗余的大數據中提取所需信息是人們仍需解決的問題。隨著近幾年數據處理等技術的快速發展,NoSQL技術已成為一個熱門的研究領域,各種NoSQL數據庫產品也不斷地被開發出來,例如HBase數據庫。不同于傳統數據庫,NoSQL數據庫放棄了RDBMS所遵循的“12 Codd’s rules”里的很多規則,同時在存儲和應用等方面也做出了創新,很難對它的檢索方法進行統一定義,因為它們本身就缺乏一個相對統一的技術解決方案[3]。本文歸納了主要的鍵值對型和列式存儲模型的非關系數據庫檢索方法。
1)單級索引方面。即“行健索引”或“主鍵索引”,其實現機制與關系數據庫所采用的B+Tree等方案類似。
2)二級索引方面。NoSQL由于具有弱原子性、一致性、隔離性、持久性等特點和開源分布式的特性,使其在達到數據低冗余及高度一致性的條件下實現二級檢索較為困難,目前也僅有Cassandra等幾種方法支持二級檢索。
3)全文索引方面。NoSQL只能借助Lucene等工具包由開發者根據實際需要進行開發實現。
Hadoop是一個可部署于多臺廉價機器上的分布式處理體系,被廣泛應用于大數據存儲、管理等方面。如何結合Hadoop實現海量數據的高效查詢,學者們針對具體的應用情況從不同的角度進行了大量的研究。如,利用HBase建立并存儲索引表及索引數據,通過分布式倒排索引方法實現了網頁的快速查詢檢索[4];使用應用程序將R-樹寫入到HBase中,實現HBase的多條件查詢[5];通過設計一致性哈希的分布式內存緩存機制,來實現HBase的基于非主鍵檢索和基于范圍的檢索[6];使用HDFS保存索引文件來實現對HDFS的文件進行分布式查詢[7];通過lucene信息檢索庫來實現HBase全文檢索的功能[8]。
1.2礦產資源潛力評價成果數據管理現狀
1.2.1 礦產資源潛力評價成果數據概況
全國潛力評價成果數據包含專題內容多,來源范圍廣,覆蓋大,是全國地質機構的成果匯總,數據總量達到了13T,其中包括了二十多個礦種,四十七個項目、九個類型的地質數據[9]。主要包含了MapGIS格式的WT點文件、WL線文件、WP圖形文件;JPG、TIF及MSI格式的圖片數據;XML和TXT的元數據文件、DOC的說明文件及XLS的表格數據。其中矢量數據是全國礦產資源潛力評價數據模型規定的成果數據,采用全國統一系統庫,利用MapGIS 67繪制而成。
1.2.2 礦產資源潛力評價數據管理模式現狀分析
20世紀60年代起,美國便加大地質數據庫的研究,并投入了大量資本,其他發達國家緊隨其后,根據各自國家地質情況,運用網格計算、海量圖庫管理技術、多類型空間數據集成等技術,建立起關于各自國家重力、磁力、水文、礦產資源分布等方面的數據庫[10]。我國的地質數據管理工作也在穩步前行,其管理系統是地理信息系統技術、數據庫技術以及網絡技術的綜合應用[11]。自2007年國土資源部開展了全國礦產資源潛力評價項目,礦產資源潛力評價信息管理系統的建立已成為國內學者的研究熱點。葉江等[12]結合MapGIS K9和GIS二次開發方法,實現了西藏地區礦產資源潛力評價數據管理體系;左超群[13]在Oracle 11G及MapGIS地理數據庫的基礎上,建立了礦產資源潛力評價數據模型;朱靜蘋等[14]通過MapGIS、SOL Server 2008及GeoMAG軟件,完成江蘇礦產資源潛力評價成果數據集成。
礦產資源潛力評價成果數據量大,且數據結構復雜,包含了矢量空間數據、遙感影像數據、文本等,其中非結構化數據增長較快。因此,構建一套地質大數據的智能檢索系統,完成海量地質數據穩定高效的智能檢索尤為重要。全國礦產資源潛力評價成果數據智能檢索模型主要包括三個功能模塊:數據存儲模塊、并行計算模塊和智能檢索模塊,結構圖如圖1所示。
2.1數據存儲模塊
從當前大數據存儲技術發展來看,基于Hadoop的數據存儲技術是具有研究意義和實際利用價值的,Hadoop是一個開源分布式的平臺,它通過分布式文件系統HDFS來實現底層存儲模塊。HDFS具有高容錯性的特點,允許用戶在廉價的物理機上部署分布式系統,從而為潛力評價成果數據提供了數據存儲服務[15]。本文基于Hadoop構建了礦產資源潛力評價成果數據存儲模型(圖2)。

圖1 智能檢索架構圖

圖2 礦產資源潛力評價成果數據存儲模型
圖2通過HDFS及其相關技術把底層的物理存儲接口統一化,并通過虛擬化方法將系統中的存儲設備映射為一個統一的資源進行管理,從而實現多個DataNode協調工作,將全國礦產資源潛力評價成果數據存儲于HDFS上,通過并行計算將索引文件保存在HBase列式存儲表中,完成數據的高效存儲。
2.2并行計算模塊
MapReduce作為并行編程模型[16]被主要用來進行大數據的并行計算,其工作過程主要分為:map階段和reduce階段。本文在MapReduce的基礎上,使用HBase提供的TableOutputFormat方法,實現礦產資源潛力評價成果索引數據快速導入HBase。在map階段,MapReduce將HDFS上的全國礦產資源潛力評價成果元數據分成固定大小的分片,然后將各個分片分解成鍵值對的形式,這里表示為
2.3智能檢索模塊
2.3.1 礦產資源潛力評價成果數據索引表設計
HBase將礦產資源潛力評價成果索引表數據以列式存儲表的形式存儲,從而形成一個稀疏多維度的排序映射表[17-18]。HBase中,表名(Table Name)用作唯一標識一張表;行關鍵字(RowKey)作為主鍵,用作唯一標識一行數據,在HBase中對行數據進行查詢時,可通過單個行關鍵字、給定行健范圍及全表掃描三種形式進行;列位于列族下,數量沒有嚴格的規定,可根據用戶的需求進行增加,從而確保了HBase存儲的靈活性。
HBase不同于關系數據庫,它沒有嚴格的形態規定,既包含了矢量圖形數據,又包含了文本類型數據,而存儲表的數據記錄也可能包含不同大小的列。因此,本文設計了全國礦產資源潛力評價成果數據索引表邏輯模型與物理模型。
2.3.1.1 邏輯模型(有序映射的映射集合)
HBase通過坐標系統來查詢單元里的數據:[行健,列族,列限定符,時間版本],設計礦產資源潛力評價成果數據索引表邏輯模型如圖4所示。
在理解圖4模型概念時,可以將這些坐標從里往外看,認為開始以時間版本為Key、數據為Value建立單元映射,接著以列限定符為Key、單元映射為Value建立列族映射,最后以行健為Key、列族為Value建立表映射。

圖3 MapReduce任務執行圖

圖4 礦產資源潛力評價成果數據索引表邏輯模型
2)物理模型(面向列族)
HBase中的列族下面包含了列,各列族在磁盤上都會有各自的HFile集合,這樣就形成了物理隔離,從而允許數據在HFile層面上分別進行管理,存儲在HFile里的地質礦產資源潛力評價索引數據物理模型如圖5所示。
該礦產資源潛力評價成果數據索引表物理模型中的各列下沒有空記錄,如果有空數據則HBase在該列將不會存儲數據,因此HBase列式存儲表是面向列的,一行數據中同列族的需要物理的存儲在一處。則以55290602072625為rowkey的數據在HFile中的存儲是完整的。如果數據有多個列族,同時各列族下有潛力評價成果數據,那么每個列族使用自己的HFile意味著,當從HBase中讀取數據時不需要讀取這一行中的所有數據,只需讀取用到的部分列族中的數據,這樣則實現了數據的高效存儲與快速讀取。
2.3.2 HBase多級索引方法
HBase是基于Hadoop之上的一種非關系型數據庫,為海量數據的存儲和管理提供了一套具有高可擴展性的技術和方法,同時它提供實時高效的大數據查詢分析能力。由于HBase只支持基于主鍵的快速檢索,而不支持基于非主鍵的數據查詢,這使得HBase的應用受到了極大地限制。本文根據礦產資源潛力評價成果數據,提出了一套基于依據元數據管理表的多級索引方案,其一、二級索引如圖6和圖7所示。

圖5 礦產資源潛力評價成果數據索引表物理模型

圖6 礦產資源潛力評價成果元數據多級索引(第一級)
在圖6和圖7中,索引表的RowKey設計比較簡短,避免了組合RowKey造成的元數據冗余問題,同時也避免了RowKey字段過長導致系統無法緩存更多的其他數據而導致內存的有效利用率降低的問題。檢索過程如下。
首先,當客戶端想檢索符合cf:map=“552906重力資料應用”的cf:address的值,根據HBase主鍵查詢,需要全表掃描Component才能得到需要的數據,然而,通過多級索引方法,只需檢索Map表,從Map表中找到一級表的RowKey,然后從對應的列簇中獲取符合條件的數據集合,接著檢索程序會在這個小集合中抽取出符合條件的value值,再將檢索到的value值賦給Component表,定位到相應的cf:address,從而進一步調用存儲在HDFS中的礦產資源潛力評價成果數據。
由于地質礦產資源潛力評價成果數據具有較復雜的層次關系,多級索引方法同時設計了Mineral表,用來表示各屬性之間的層次關系,同時避免了設計過于繁瑣的主鍵,方便快速檢索。假設檢索符合cf:mineral=”5529毒重石”下包含了哪些圖件,即Component表對應的主鍵是多少。這時,可以檢索Mineral表,通過Rowkey ”5529毒重石”來得到對應的Value值,同時以該Value值作為新的Rowkey去檢索Map表得到它包含的圖件信息,從而實現智能檢索。

圖7 礦產資源潛力評價成果元數據多級索引(第二級)
3.1HBase優化前后對比試驗
3.1.1 硬件環境
實驗環境為7臺虛擬機搭建的集群,其中3臺為DataNode,1臺為NameNode,3臺為Zookeeper和HBase,表1給出了硬件環境。

表1 集群配置情況
3.1.2 HBase優化前后檢索對比實驗
為了驗證基于礦產資源潛力評價成果元數據多級索引表格在檢索方面的優勢,分別選取了5萬條、10萬條、15萬條、20萬條、25萬條、30萬條的數據,從中檢索符合cf:map= “552901成礦地質背景”的cf:name及對應的礦產資源潛力評價成果數據,檢索結果如圖8所示。

圖8 HBase優化前后檢索時間對比柱狀圖
從圖8可以看出,本文設計的多級索引表格在地質礦產資源潛力評價成果數據檢索方面與傳統HBase相比有較大優勢,這是因為,傳統的HBase在RowKey上建立了類B+樹索引,可以支持高效的基于主鍵的數據查詢,由于缺少非主鍵索引的能力,因此在面對非主鍵查詢時只能通過全表掃描Component表的方式找出符合條件的數據。而多級索引表格,則可通過檢索前一張表的RowKey,得到的Value值賦給Component表作為二級RowKey,從而避免Component表的全表掃描,節省大量時間。
3.2HBase與Oracle對比實驗
3.2.1 硬件環境
表2給出了測試用到的硬件環境,其中Oracle采用單節點,HBase則是基于Hadoop集群在7臺電腦上部署的集群,其中,3臺PC作為DataNode,1臺PC作為NameNode,3臺PC配置Zookeeper、HBase。
3.2.2 數據檢索對比試驗
為了對比HBase多級索引表與傳統關系數據庫的數據查詢效率,將地質礦產資源潛力評價成果元數據分別導入Oracle數據庫和HBase數據庫,在試驗中用來實驗的數據量分別為50萬條、100萬條、150萬條、200萬條、250萬條,每次均抽取50萬條,測試基于Oracle、基于HBase多級索引表的實驗,每組數據實驗三次,取平均值作為實驗結果如圖9所示。

表2 測試數據庫硬件環境

圖9 數據檢索時間對比柱狀圖
從圖9可以看出,在數據量較少時,Oracle在礦產資源潛力評價成果元數據表的檢索方面比HBase略占優勢。然而,隨著數據量的增長,Oracle的檢索時間呈現快速上升的趨勢,尤其當數據量達到250萬條時,檢索耗時與200萬條的數據量耗時相比上升了約37%。HBase在數據量較少時,檢索速率較慢,而隨著數據量的增長,檢索優勢逐漸突顯了出來。造成上述現象的原因是Hadoop分布式集群的系統開銷時間長于Oracle,當數據量小時,Oracle自然占優勢。而當數據量增大時,HBase是基于列存儲的,進行字段查詢時,可直接定位到該列,避免了全表掃描,同時設計的多級索引表把檢索的負擔主要分配到了RowKey上,節省檢索時間。而Oracle是基于行存儲的,從一個表中無論檢索幾個字段,都需要將表中相關的數據全部掃描一遍,因此隨著數據量的增大,查詢速度漸不及HBase。
本文結合大數據智能檢索研究現狀,將HBase數據檢索技術應用于礦產資源潛力評價成果數據智能檢索領域,針對地質數據情況提出了相關的方法改進,并通過實驗驗證了方法的可行性。
1)本文設計的多級索引表格在地質礦產資源潛力評價成果數據檢索方面較傳統HBase有較大優勢。
2)當數據量很少時,傳統關系數據庫檢索效率高,而當數據量急劇上升時,本文的智能檢索方法則展示出了較大優勢。
[1] 嚴雯英.基于MapGIS與Oracle的地質空間數據庫設計與實現[D].湘潭:湖南科技大學,2016.
[2] Pan J,Biannic Y L,Magoulès F.Parallelizing multiple group-by query in share-nothing environment:a MapReduce study case[J].Acm International Symposium on High Performance Distributed Computing,2010:856-863.
[3] 劉家志.基于Hadoop架構和多級索引技術的醫學影像存儲檢索系統研究[D].成都:電子科技大學,2014.
[4] 萬軼,向廣利.基于hadoop和hbase的分布式索引集群研究[J].信息技術與信息化,2015(1):102-103.
[5] 陳新鵬.基于HBase的數據生成與索引方法的研究[D].北京:北京郵電大學,2013.
[6] 葛微,羅圣美,周文輝,等.HiBase:一種基于分層式索引的高效HBase查詢技術與系統[J].計算機學報,2016(1):140-153.
[7] 孫永超.基于Hadoop的信息檢索系統研究[J].情報探索,2016,1(8):125-130.
[8] 鄒敏昊.基于Lucene的HBase全文檢索功能的設計與實現[D].南京:南京大學,2013.
[9] 左群超,葉亞琴,文輝,等.中國礦產資源潛力評價集成數據庫模型[J].中國地質,2013,40(6):1968-1981.
[10] 吳湘寧.地質環境數據倉庫聯機分析處理與數據挖掘研究[D].武漢:中國地質大學(武漢),2014.
[11] 沈泉飛,顧和和,張海榮,等.礦產資源管理信息系統設計與開發[J].測繪與空間地理信息,2007,30(4):21-24.
[12] 葉江,張鈴,郭娜,等.基于MapGIS K9數據中心的礦產資源潛力評價信息管理系統開發與實現——以西藏地區為例[J].國土資源科技管理,2013,30(6):81-86.
[13] 左群超.礦產資源潛力評價數據模型研發、應用與數據集成方法技術體系[J].地質通報,2015,34(12):2334-2351.
[14] 朱靜蘋,尚培穎,狄群,等.江蘇礦產資源潛力評價成果數據集成及應用[J].地質學刊,2015,39(3):400-403.
[15] 孫永超.基于Hadoop的信息檢索系統研究[J].情報探索,2016,1(8):125-130.
[16] Nguyen Andrew V,Wynden Rob,Sun,Yao.HBase,MapReduce,and Integrated Data Visualization for Processing Clinical Signal Data[J].AAAI Spring Symposium-Technical Report 2011:40-44.
[17] Franke Graig,Morin Samuel,et al.Distriuted Semantic Web Data Management in HBase and MySQL Cluster[C].Proceedings of the 2011 IEEE 4th International Conference on Cloud Computing,CLOUD 2011:105-112.
[18] Yang Jin,Tang Deyu,Zhou Yi.A Distributed Storage Model for EHR Based on HBase[C].Proceedings of the 2011 4th International Conference on Information Management,Innovation Management and Industrial Engineering,ICIII 2011:369-372.
Researchontheintelligentretrievalmethodofthenationalmineral’spotentialevaluationachievementdata
ZHAO Yanan1,ZHU Yueqin2,3,LI Chaokui1,XIAO Keyan4,FAN Jianfu4,LI Qiuping5
(1.National-Local Joint Engineering Laboratory of Geospatial Information Technology,Hunan University of Science and Technology,Xiangtan411201,China;2.Key Laboratory of Geological Information Technology of Ministry of Land and Resources,Beijing100037,China;3.Development and Research Center,China Geological Survey,Beijing100037,China;4.Institute of Mineral Resources,Chinese Academy of Geological Sciences,Beijing100037,China;5.College of Urban and Environmental Science,Northwest University,Xi’an710127,China)
Based on the national mineral resource’s potential evaluation achievement data,this paper puts forward that the HDFS of Hadoop platform can be used to store and construct the data storage model of geological minerals.We Uses the HBase which supports fast query of individual records to manage its metadata and realize the rapid retrieval of mineral resources potential evaluation achievement data.At the same time,we designs multi-level index catalog in HBase to achieve the non-primary key query.We correct the defect of the HBase which only support primary key index and achieve the goal of the intelligent retrieval base on mineral resources potential evaluation result data.Then we verified the correctness and feasibility of this method by the contrast experiment.
mineral resource;potential evaluation;results data;Hadoop platform;HBase multilevel index method
2017-06-27責任編輯:趙奎濤
國土資源部公益性行業科研專項項目資助(編號:201511079)
趙亞楠(1992-),女,山東淄博人,碩士研究生,主要從事地質大數據技術研究工作,E-mail:1364176112@qq.com。
朱月琴(1975-),女,博士,高級工程師,主要從事地質大數據、地圖綜合與可視化研究工作,E-mail:yueqinzhu@163.com。
P208
:A
:1004-4051(2017)09-0072-07