曲進
摘要 如今電子商務信息化得到很大程度提升,尤其在這個網絡高度發達的時代,信息的收集和整理顯得十分重要,對于電子商務來說,其未來最有可能的業務模式是與搜索服務結合起來。這種業務模式帶來的海量信息數據,利用傳統的數據庫管理模式已經不能滿足我們的需求,如今存在的主要不足為信息單點、搜索效率低下,同時搜索準確率得不到有效的保證,進而不能滿足互聯網搜索的基本需求,這也是現在很多研究人員十分關注的一個話題。為此,本文對云平臺數據搜索相關問題展開研究,設計面向云平臺數據搜索的基本結構,進而使得數據庫的搜索方式應用于HBase系統內,提升整體查詢搜索的性能,使得我們對信息搜索的效率大幅度提升。同時,本文還設計了數據的預處理方案,能夠簡化關系類型數據與HBase分布式數據之間的交互技術和算法。分析基于編輯距離和矢量數據的算法搜索評價機制,利用關鍵字之間具有相似部分判斷用戶的類似數據,大大提升用戶搜索效率。
關鍵詞 云平臺數據庫 搜索引擎 分布式數據庫
中圖分類號:TP391.3 文獻標識碼:A DOI:10.16400/j.cnki.kjdkx.2016.07.075
0引言
如今網絡發展迅速,電子商務信息呈現幾何倍數增加,同時隨著互聯網應用環境的變換,如何從大量信息之中找到自己所需信息已經成為亟需解決的關鍵問題。搜索引擎在大量網絡信息里建立起相關的鏈接,進而可以自動獲得相關信息,之后把這些信息存入到數據庫,并建立相關搜索詞,供用戶使用。
但是伴隨著商務信息的不斷增加,數據量呈現爆炸式增長趨勢,隨之也出現很多搜索引擎效率低下、準確度下降等問題。同時,搜索獲得的信息非常巨大,獲得展示的信息之間的相關程度變得十分低下,這導致用戶很難在較短時間內獲得自己所需的相關內容。鑒于此,本文利用云平臺數據庫建立相關搜索引擎,使用云平臺數據庫的體系結構,充分分析了關系型數據庫以及HBase分布式數據庫之間的交換模式,來提升搜索質量與速度。
1系統的需求分析與總體設計
1.1系統的需求分析
現在電子商務網站每天都有很多新的用戶注冊到其內部數據庫里,隨著注冊人數的增多,這些數據也呈現了幾何倍數的增加,因此在用戶將自己的注冊信息輸入到數據庫之后,需要對這些信息進行審核,判斷輸入數據是否重復或者是否合法,如果存在重復內容,則需要返回到修改界面,重新輸入數據,如果沒有,直接將這些數據存入到數據庫中。
對于這部分工作來說,需要準確以及快速的搜索引擎作為指導。系統基本要求就是,每天出現新的注冊信息可以及時保存到數據庫里,完成快速儲存任務。其次,根據系統要求,對這些注冊信息與以往信息進行對比,發現是否具有重復或者非法的情況。再次,每天更新已經通過注冊的用戶信息情況,對這些信息進行排序以及儲存。最后,對那些更新的用戶信息,需要及時的存入到已有的注冊信息記錄中。
1.2系統的總體結構設計
本文設計的基于云平臺數據庫搜索模式,主要方案基于Hadoop分布式文件系統和MapReduce編程模型,通過HBase分布式數據庫結構以及Lucene全文檢索系統,應用到數據庫搜索系統之中。本文設計的數據搜索引擎的模型分為三個基本功能,即數據的預處理部分、索引模塊以及搜索部分等,基于HBase分布式框架來,將設計內容部分含有的具體實現方法封裝在程序內部,通過API應用接口使得子系統之間建立良好通訊機制。數據預處理模式通過關系型數據庫與H]3ase分布式數據之間建立的良好信息交互能力,將關系型數據庫內部歷史用戶注冊的數據傳遞到HBase數據庫的數據處理中心,同時將關系類型模塊具有的已經獲得批準的新數據提交到搜索器,再將不能使用的部分返回到關系型數據庫內部。本文設計的索引器主要提供的功能為對預處理數據庫里存在的信息進行倒排索引,同時對每天新增的數據信息建立其自身具有的增量索引模式,最后建立自己的倒排索引都儲存到HBase分布式數據庫索引庫內部。
索引器模塊含有的功能可以為每天新用戶注冊信息進行更新,同時獲得新用戶注冊的信息,分析以往歷史用戶信息,使其可以存入到HBase數據庫的內部進行倒排搜索,同時可以將獲得的結果傳輸到關系類型的數據庫制定列表里,同時將每天更新的用戶注冊信息中不重復的數據更新到數據庫里,并更新索引模塊。HBase分布式數據庫,使用HDFS分布式結構完成系統內部模塊設計,利用歷史數據訪問結構來獲得大量文件信息。如果含有信息預處理的數據庫,索引庫可以提供相關訪問接口,從而使得系統內部含有的功能得到全部使用,可以非常方便的增加系統新功能。本文設計的系統,在數據預處理部分、索引器部分與搜索器部分,執行程序的基本流程介紹如下:
首先是數據預處理部分,一是使用分布式數據交互工具Sqoop,對于存在關系型數據庫內的歷史用戶注冊數據向預處理數據庫中導入,使得該數據庫中含有HBase分布式數據庫。二是對于倒排索引要通過索引器向HBase分布式數據庫索引庫內進行引入,同時將搜索信息提供給搜索器。三是在預處理完成之后,索引模塊含有的數據庫處理部分使用倒排索引模塊,使用分詞結構,利用數據文本數據進行分詞,主要有中文分詞與英文分詞。四是借助于復合框架,數據預處理器能夠對關系型數據庫存在的每天用戶注冊數據更新進行實時讀取,同時向搜索器進行提交來給予處理。五是對復合框架提供的相關數據通過搜索器進行解析,并提取關鍵字,以此為依據對索引器的倒排索引進行查詢。六是以關鍵字中存在的相似度為依據,搜索器對用戶更新數據進行有效排序。七是對用戶注冊數據的更新結果查重,會由搜索器向數據預處理器進行返回。八是對所有用戶注冊數據的更新中存在的不重復數據更新要通過搜索器向處理數據庫中進行返回,接著便進行增量索引的建立。九是對搜索器返回的查重結果要通過預處理器來向關系型數據庫進行寫入,上述步驟便是系統整體結構具體的執行過程,其對子系統問的關系給予了充分體現。
2詳細設計
2.1數據預處理子系統的設計
如圖1所示,對數據的預處理分為兩個基本結構,首先,使用關系類型數據模塊存在的歷史數據信息,通過Sqoop工具,向HBase數據庫里面的預處理模塊進行批量導入。第二,借助于特定程序模塊框架,向搜索器提交每天用戶注冊的更新數據,通過搜索模塊含有的查重結果將關系類型數據庫內部信息返回到檢查列表里面。
2.2索引子系統的設計
索引部分含有的主要功能如圖2所示,首先在數據預處理模塊對歷史用戶含有的信息建立倒排索引模塊。其次對新注冊的信息使其更新在已有的索引庫里面,進而建立相關的索引模式。子系統中主要有索引合并、分詞、索引存入索引庫中、進行增量索引的建立、倒排索引的建立五個方面。
2.3搜索子系統的設計
本文是以搜索子系統為核心來對數據庫搜索引擎系統進行優化。對于搜索子系統來說,其工作主要就是對每天用戶更新的注冊數據進行查重處理,具體如圖3所示。首先就是接收每天用戶注冊的更新數據,解析這些數據,然后查詢搜索評分機制處理之后的查詢結果。查詢結果的前50名數據會被視為重復數據,在數據庫指定表中進行關系型數據的寫入;在查詢結果50名之后的數據被認為是不重復數據,將這些數據保存到數據庫之中。
3數據預處理方法及搜索評分機制的研究
3.1數據預處理方法
3.1.1靜態數據處理
處理靜態數據信息的時候,首先利用分布式數據交換工具Sqoop,檢查關系型數據模塊中所包含的歷史用戶信息表格Historvcal data的字段類型以及其約束關系是否正確。然后,把表字段類型映射給相關的MapReduce任務,檢查并分類獲取表信息,并在HBase分布式數據庫中創建預處理表HBaseHistorical data。最后,啟動MapReduce任務,在歷史注冊的數據表格Historical data內記錄相應數據,同時插入到預處理表中,下面便是其具體操作步驟:
sqoop list-tables-connect jdbc:數據庫:IP:端口號/數據庫名字usemame用戶名-password密碼。
第二部分對海量信息進行交互,同時對HBase內部的分布式數據進行相關處理,也就是在HBase Historical data導入存在于關系型數據庫中歷史用戶注冊數據表的相關記錄。下面所表示的是其執行操作的具體步驟:
sqoop import-connect jdbc:數據庫:IP/端口號/數據庫名字-table關系型數據庫中表名字-hbase-tabe。
Sqoop內部的分布式交互模式可以降低導入到記錄儲存的磁盤內部,之后在利用數據庫記錄具有非常類似的結構,這樣使得其相對比傳統的搜索模式更加優秀,同時本文設計的靜態數據處理的方法變得更加簡單。
3.1.2動態數據處理
動態數據分析功能,可以對HBase分布式數據庫模塊中含有的相關信息進行批量讀寫,通過特定程序模塊以及復合框架來進行實現。因此,實現本文所述動態數據處理方法的時候,所帶來的性能損失很小。
動態數據獲得的處理方法為,通過包含復合框架的關系型數據庫來獲得更新的數據信息,然后將其保存到注冊的數據表格Update-data中對應的字段,之后再利用Dim.xml文件將表的字段類型經過映射java程序相關的數據類型,同時對表Up-date-data操作的SQL語句映射成為java程序里面Dim類的方法。
3.2搜索評分機制
對于搜索評分制度來說,因為其對搜索的速度具有重要的影響,所以需要設計出可以快速提升搜索評分制度準確率的模式。目前的評分制度為TFIDF評分模式,以及PageRank相結合的方式。通過TF-IDF含有的基本評估的模式獲得數據信息含有的關鍵字信息評分,這非常重要。本文設計的處理數據結構含有的主要信息為電商用戶含有的相關注冊信息,其中主要包括ID名字、郵箱以及相關主頁信息等。根據相關的應用要求以及數據的特點,本文選擇使用了基于編輯距離結構的數據距離算法基本模式,以及關鍵字段之間類似度建模分析。
4結束語
伴隨著電子商務規模發展越來越大,用戶注冊數目得到快速的提升,對于存在很多的數據查重分析問題,以前使用的數據庫搜索的模式已經不再適合現在的需求。針對現實應用內部出現的這些不足,本文利用云平臺數據庫搜索引擎的相關處理模式,使用了最新的云平臺、全文搜索的技術模式,利用了數據庫交互技術等很多緩存技術,進而使得數據庫具有的數據搜索性能得到了大幅度的提升,提升了檢索的可靠性,縮短了檢索用時。