本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法及裝置。
背景技術(shù):
::Hadoop是一種由Apache基金會(huì)主導(dǎo)開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),是目前世界上使用最為廣泛的開(kāi)源分布式系統(tǒng)平臺(tái),其生態(tài)環(huán)境內(nèi)包含多種基礎(chǔ)組件,如HDFS、HBase、MapReduce、ZooKeeper、Hive等。HBase是ApacheHadoop的數(shù)據(jù)庫(kù),能夠?qū)A繑?shù)據(jù)提供隨機(jī)、實(shí)時(shí)的讀寫訪問(wèn)。HBase的目標(biāo)是存儲(chǔ)并處理海量數(shù)據(jù),是一個(gè)高可靠、高性能、列存儲(chǔ)、可伸縮、實(shí)時(shí)讀寫的分布式數(shù)據(jù)庫(kù),通過(guò)橫向擴(kuò)展增加廉價(jià)的PC服務(wù)器,可以不斷增加計(jì)算和存儲(chǔ)能力。訪問(wèn)HBase數(shù)據(jù)的方法是由業(yè)務(wù)層中執(zhí)行業(yè)務(wù)邏輯的業(yè)務(wù)組件向業(yè)務(wù)層中的數(shù)據(jù)查詢模塊發(fā)送數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢模塊調(diào)用HBase的數(shù)據(jù)接口來(lái)訪問(wèn)HBase的持久化數(shù)據(jù),訪問(wèn)效率較高,但是這種方式中所述數(shù)據(jù)查詢模塊位于業(yè)務(wù)層,導(dǎo)致一個(gè)數(shù)據(jù)查詢模塊只適用于一種業(yè)務(wù)組件或少數(shù)幾種業(yè)務(wù)組件,若要增加業(yè)務(wù)組件,則需要增加相應(yīng)的數(shù)據(jù)查詢模塊,增加開(kāi)發(fā)成本,降低開(kāi)發(fā)效率。技術(shù)實(shí)現(xiàn)要素:為了解決現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法及裝置,以實(shí)現(xiàn)數(shù)據(jù)查詢與業(yè)務(wù)層的解耦,提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本。本發(fā)明提供一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法,所述方法包括:接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢請(qǐng)求中包括行鍵查詢字段、預(yù)設(shè)返回條數(shù)和領(lǐng)域?qū)ο竺Q;根據(jù)所述領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募邪ū砻托薪∩梢?guī)則;根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,所述行鍵查詢范圍包括起始行鍵和結(jié)束行鍵;調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲得預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù);將所述預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)映射為預(yù)設(shè)格式,并將映射后的數(shù)據(jù)發(fā)送至所述客戶端。優(yōu)選的,所述根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍包括:將所述行鍵查詢字段進(jìn)行處理,以使所述行鍵查詢字段符合所述行鍵生成規(guī)則;根據(jù)處理后的行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍。優(yōu)選的,所述數(shù)據(jù)查詢請(qǐng)求中還包括過(guò)濾查詢字段,所述領(lǐng)域?qū)ο笈渲梦募羞€包括過(guò)濾器生成規(guī)則,所述方法還包括:根據(jù)所述過(guò)濾查詢字段以及所述過(guò)濾器生成規(guī)則生成對(duì)應(yīng)的過(guò)濾器;所述從所述行鍵查詢范圍中獲得預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)包括:利用所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾,得到過(guò)濾數(shù)據(jù);從所述過(guò)濾數(shù)據(jù)中提取預(yù)設(shè)返回條數(shù)的數(shù)據(jù)。優(yōu)選的,所述過(guò)濾查詢字段包括行鍵過(guò)濾字段;所述利用所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾包括:利用所述過(guò)濾器從所述行鍵查詢范圍內(nèi)的行鍵中過(guò)濾出與所述行鍵過(guò)濾字段匹配的行鍵。優(yōu)選的,所述過(guò)濾查詢字段包括列相關(guān)過(guò)濾字段;所述利用所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾包括:利用所述過(guò)濾器從所述行鍵查詢范圍內(nèi)過(guò)濾出與所述列相關(guān)過(guò)濾字段匹配的數(shù)據(jù)。優(yōu)選的,在根據(jù)所述過(guò)濾查詢字段以及所述過(guò)濾器生成規(guī)則生成對(duì)應(yīng)的過(guò)濾器之前,所述方法還包括:對(duì)所述過(guò)濾查詢字段進(jìn)行處理,以使所述過(guò)濾查詢字段滿足所述過(guò)濾器的生成要求。本發(fā)明實(shí)施例還提供了一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置,所述裝置包括:請(qǐng)求接收單元、配置文件確定單元、范圍生成單元、數(shù)據(jù)獲取單元和映射單元;其中,所述請(qǐng)求接收單元,用于接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢請(qǐng)求中包括行鍵查詢字段、預(yù)設(shè)返回條數(shù)和領(lǐng)域?qū)ο竺Q;所述配置文件確定單元,用于根據(jù)所述領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募鲱I(lǐng)域?qū)ο笈渲梦募邪ū砻托薪∩梢?guī)則;所述范圍生成單元,用于根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,所述行鍵查詢范圍包括起始行鍵和結(jié)束行鍵;所述數(shù)據(jù)獲取單元,用于調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲得預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù);所述映射單元,用于將所述預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)映射為預(yù)設(shè)格式,并將映射后的數(shù)據(jù)發(fā)送至所述客戶端。優(yōu)選的,所述數(shù)據(jù)查詢請(qǐng)求中還包括過(guò)濾查詢字段;所述領(lǐng)域?qū)ο笈渲梦募羞€包括過(guò)濾器生成規(guī)則;所述裝置還包括:過(guò)濾器生成單元,用于根據(jù)所述過(guò)濾查詢字段以及所述過(guò)濾器生成規(guī)則生成對(duì)應(yīng)的過(guò)濾器;所述數(shù)據(jù)獲取單元,具體用于:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并利用所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾,得到過(guò)濾數(shù)據(jù),以及從所述過(guò)濾數(shù)據(jù)中提取預(yù)設(shè)返回條數(shù)的數(shù)據(jù)。優(yōu)選的,所述過(guò)濾查詢字段包括行鍵過(guò)濾字段;所述數(shù)據(jù)獲取單元,具體用于:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并利用所述過(guò)濾器從所述行鍵查詢范圍內(nèi)的行鍵中過(guò)濾出與所述行鍵過(guò)濾字段匹配的行鍵,以及從所述過(guò)濾出的行鍵中提取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)。優(yōu)選的,所述過(guò)濾查詢字段包括列相關(guān)過(guò)濾字段;所述數(shù)據(jù)獲取單元,具體用于:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,利用所述過(guò)濾器從所述行鍵查詢范圍內(nèi)過(guò)濾出與所述列相關(guān)過(guò)濾字段匹配的數(shù)據(jù),得到過(guò)濾數(shù)據(jù),以及從所述過(guò)濾數(shù)據(jù)中提取預(yù)設(shè)返回條數(shù)的數(shù)據(jù)。本發(fā)明通過(guò)HBase訪問(wèn)對(duì)象來(lái)實(shí)現(xiàn)應(yīng)用層與數(shù)據(jù)持久層的解耦,首先HBase訪問(wèn)對(duì)象接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,并根據(jù)所述數(shù)據(jù)查詢請(qǐng)求中的領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募邪ū砻托薪∩梢?guī)則,根據(jù)所述數(shù)據(jù)查詢請(qǐng)求中的所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,然后調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù),最后將所述數(shù)據(jù)映射為預(yù)設(shè)格式,并將預(yù)設(shè)格式的數(shù)據(jù)發(fā)送至所述客戶端。由于應(yīng)用層與HAO解耦,使得HAO能夠適用于任何應(yīng)用層的業(yè)務(wù)組件,當(dāng)業(yè)務(wù)組件增加或變更時(shí),所述HAO無(wú)需做改動(dòng),就可以實(shí)現(xiàn)查詢所述HBase數(shù)據(jù)庫(kù)的功能,降低開(kāi)發(fā)成本,提高開(kāi)發(fā)效率。附圖說(shuō)明為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明實(shí)施例一提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的流程圖;圖2為本發(fā)明實(shí)施例二提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的流程圖;圖3為本發(fā)明實(shí)施例二提供的領(lǐng)域?qū)ο竽P偷氖疽鈭D;圖4為本發(fā)明實(shí)施例四提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置的結(jié)構(gòu)框圖。具體實(shí)施方式傳統(tǒng)的訪問(wèn)HBase數(shù)據(jù)的方法是由業(yè)務(wù)層中執(zhí)行業(yè)務(wù)邏輯的業(yè)務(wù)組件向業(yè)務(wù)層中的數(shù)據(jù)查詢模塊發(fā)送數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢模塊調(diào)用HBase的數(shù)據(jù)接口來(lái)訪問(wèn)HBase的持久化數(shù)據(jù),由于所述數(shù)據(jù)查詢模塊位于業(yè)務(wù)層,導(dǎo)致一個(gè)數(shù)據(jù)查詢模塊只適用于一種業(yè)務(wù)組件或少數(shù)幾種業(yè)務(wù)組件,若要增加業(yè)務(wù)組件,則需要增加相應(yīng)的數(shù)據(jù)查詢模塊,增加開(kāi)發(fā)成本,降低開(kāi)發(fā)效率。為了克服該技術(shù)問(wèn)題,本發(fā)明提供了一種基于HBase數(shù)據(jù)庫(kù)的通用訪問(wèn)框架——HBase訪問(wèn)對(duì)象(HBaseAccessObject,簡(jiǎn)稱HAO),所述HAO與業(yè)務(wù)層分離,業(yè)務(wù)組件通過(guò)所述HAO來(lái)調(diào)用HBase的數(shù)據(jù)接口查詢數(shù)據(jù),也就是說(shuō),所述HAO可以適用于任何業(yè)務(wù)組件,實(shí)現(xiàn)了數(shù)據(jù)查詢與業(yè)務(wù)層解耦,降低了開(kāi)發(fā)成本,提高了開(kāi)發(fā)效率。為了使本
技術(shù)領(lǐng)域:
:的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在介紹本發(fā)明提供的實(shí)施例之前,首先介紹一下HBase數(shù)據(jù)庫(kù)的結(jié)構(gòu):HBase數(shù)據(jù)庫(kù)以表的形式存儲(chǔ)數(shù)據(jù),表包括行(row)、列(column)和時(shí)間戳(Timestamp)。一行記錄由若干列組成,其中的某些列又可以構(gòu)成一個(gè)列族(columnfamily)。行健(rowkey)是用來(lái)檢索一行記錄的主鍵,是行的唯一標(biāo)識(shí),行健可以是任意字符串(最大長(zhǎng)度是64KB,實(shí)際應(yīng)用中長(zhǎng)度一般為(10-100bytes),在HBase內(nèi)部,rowkey保存為字節(jié)數(shù)組,存儲(chǔ)時(shí),數(shù)據(jù)按照rowkey的字典順序(byteorder)排序存儲(chǔ)。時(shí)間戳,默認(rèn)由系統(tǒng)指定,用戶也可以顯示設(shè)置。不同的時(shí)間戳用來(lái)區(qū)分不同的版本,時(shí)間戳一般按照版本從新到舊的順序進(jìn)行排列,在數(shù)據(jù)讀取的時(shí)候優(yōu)先讀取最新版本。舉例而言,表1為一個(gè)可視化的HBase表。表1其中,R1和R2為兩個(gè)行鍵,每個(gè)行鍵包括兩列,列名分別為URI和Parser,這兩列屬于同一個(gè)列族。T3、T2和T1分別表示第三版本、第二版本和第一版本,第三版本是最新的,第一版本是最舊的。實(shí)施例一:參見(jiàn)圖1,該圖為本發(fā)明實(shí)施例一提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的流程圖。本實(shí)施例提供的基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法包括如下步驟:步驟S101:接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢請(qǐng)求中包括行鍵查詢字段、預(yù)設(shè)返回條數(shù)和領(lǐng)域?qū)ο竺Q。通常情況下,所述數(shù)據(jù)查詢請(qǐng)求來(lái)自業(yè)務(wù)組件,即應(yīng)用層,從硬件實(shí)現(xiàn)的角度來(lái)說(shuō),所述數(shù)據(jù)查詢請(qǐng)求的發(fā)起方是客戶端,接收方一般為服務(wù)器。例如,客戶通過(guò)農(nóng)行的客戶端發(fā)起查詢2016年1月至2016年6月的信用卡交易記錄的數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢請(qǐng)求被農(nóng)行的服務(wù)器接收到。步驟S102:根據(jù)所述領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募邪ū砻托墟I生成規(guī)則。本實(shí)施例的HAO抽象出“領(lǐng)域?qū)ο蟆蹦P?,用?lái)描述每個(gè)數(shù)據(jù)類型具體的存儲(chǔ)特點(diǎn)和訪問(wèn)特點(diǎn)。HBase訪問(wèn)對(duì)象基于領(lǐng)域類型實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)邏輯,做到與具體數(shù)據(jù)類型的解耦,將數(shù)據(jù)類型的個(gè)性特點(diǎn)及變化都封裝在領(lǐng)域類型中,從而實(shí)現(xiàn)并保證通用HBase訪問(wèn)對(duì)象接口的相對(duì)穩(wěn)定。在本實(shí)施例中,所述數(shù)據(jù)查詢請(qǐng)求中包括領(lǐng)域?qū)ο竺Q,所述領(lǐng)域?qū)ο竺Q用于查找對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募写鎯?chǔ)有HBase數(shù)據(jù)庫(kù)的表名和行鍵生成規(guī)則,所述表名用于查找所述HBase數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表,所述行鍵生成規(guī)則用于生成行鍵查詢范圍。在實(shí)際應(yīng)用中可以按照一定的規(guī)則設(shè)置有多個(gè)領(lǐng)域?qū)ο笈渲梦募?,例如按照每個(gè)表對(duì)應(yīng)一個(gè)領(lǐng)域?qū)ο笈渲梦募?,或者具有共性的多個(gè)表對(duì)應(yīng)一個(gè)領(lǐng)域?qū)ο笈渲梦募取K鲱I(lǐng)域?qū)ο笈渲梦募梢允荴ML文件等。步驟S103:根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,所述行鍵查詢范圍包括起始行鍵和結(jié)束行鍵。在本實(shí)施例中,所述數(shù)據(jù)查詢請(qǐng)求中還包括行鍵查詢字段,即本實(shí)施例以行健為單位查詢所述HBase數(shù)據(jù)庫(kù),由于行鍵一般是按照字典順序進(jìn)行排列的,因此只要確定起始行鍵(startkey)和結(jié)束行鍵(endkey),就可以調(diào)用HBase的數(shù)據(jù)接口,獲取到從所述起始行鍵到所述結(jié)束行鍵之間的所有行鍵(可以包括所述起始行鍵和所述結(jié)束行鍵)對(duì)應(yīng)的數(shù)據(jù)。在本實(shí)施例中,所述起始行鍵和所述結(jié)束行鍵構(gòu)成行鍵查詢范圍。若查詢多行記錄,則起始行鍵和結(jié)束行鍵為兩個(gè)不同的行鍵;若只查詢一行記錄,則起始行鍵和結(jié)束行鍵為兩個(gè)相同的行鍵,或合并為一個(gè)行健。為了確定所述行鍵查詢范圍,在本實(shí)施例中,所述數(shù)據(jù)查詢請(qǐng)求中包括行健查詢字段,所述行鍵查詢字段用于生成所述行鍵查詢范圍,具體的,根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍。行鍵生成規(guī)則不同,根據(jù)行鍵查詢字段生成的起始行鍵和結(jié)束行鍵也不同。如果行鍵查詢字段不符合行鍵生成規(guī)則,則需要預(yù)先對(duì)所述行鍵查詢字段進(jìn)行處理。常用的行鍵字符串包括以下幾種類型:純數(shù)字字符串、數(shù)字+特殊分隔符、數(shù)字+英文字母,和數(shù)字+英文字母+特殊分隔符。假設(shè)行鍵查詢字段包括北京、起始日期20140512、結(jié)束日期20140720,表2為根據(jù)不同的行鍵生成規(guī)則生成的不同的行鍵查詢范圍。表2在該例子中,對(duì)所述行鍵查詢字段進(jìn)行的處理為將“北京”按照不同的行鍵生成規(guī)則進(jìn)行變換,若所述行鍵字符串類型為純數(shù)字字符串或數(shù)字+特殊分隔符,則將“北京”處理為數(shù)字“010”;若所述行鍵字符串類型為數(shù)字+英文字母或數(shù)字+英文字母+特殊分隔符,則將“北京”處理為字母“Beijing”。對(duì)所述行鍵查詢字段的處理手段除了進(jìn)行變換,在實(shí)際應(yīng)用中,還可以包括校驗(yàn)、翻轉(zhuǎn)、補(bǔ)齊等,本發(fā)明不做具體限定。其中,校驗(yàn)是指對(duì)所述行鍵查詢字段做長(zhǎng)度、類型之類的校驗(yàn),比如校驗(yàn)?zāi)硞€(gè)字段的值是不是整數(shù),是不是滿足長(zhǎng)度為10位等等。翻轉(zhuǎn)是為了對(duì)所述行鍵查詢字段做降序排列,例如日期,使用“99999999-某個(gè)日期值”來(lái)對(duì)字段進(jìn)行處理,這樣可以翻轉(zhuǎn)日期的排序,保證日期靠后的排序在前面,即按降序來(lái)排列(例如兩個(gè)日期20160726和20160701按正常順序是前者排在后面,后者排在前面,對(duì)該值進(jìn)行翻轉(zhuǎn)處理,即99999999-20160726和99999999-20160701后,99999999-20160726小于99999999-20160701,使得99999999-20160726排在了99999999-20160701的前面,產(chǎn)生了降序排序的效果)。補(bǔ)齊是指對(duì)字段的位數(shù)進(jìn)行補(bǔ)齊,例如如果字段位數(shù)不足20位,則在字段的左邊用0補(bǔ)齊。需要注意的是,由于HBase數(shù)據(jù)庫(kù)中行健是按照由小到大的順序排列的,所以要保證生成的起始行鍵小于結(jié)束行鍵。上述對(duì)所述行鍵查詢字段的處理可以通過(guò)所述領(lǐng)域?qū)ο笈渲梦募M(jìn)行實(shí)現(xiàn),這樣就可以靈活的實(shí)現(xiàn)對(duì)處理參數(shù)以及處理方式的設(shè)定。而且為了增強(qiáng)適應(yīng)性和擴(kuò)展性,校驗(yàn)和變換還支持自定義函數(shù),通過(guò)這種方式可以靈活地為指定數(shù)據(jù)配置特殊的校驗(yàn)函數(shù)和變換函數(shù)。步驟S104:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)。通常情況下,客戶端需要按頁(yè)整合數(shù)據(jù),每頁(yè)最多可以容納N條數(shù)據(jù),那么可以將預(yù)設(shè)返回條數(shù)設(shè)置為N條,若所述行鍵查詢范圍對(duì)應(yīng)的行鍵的條數(shù)多于N條,則以預(yù)設(shè)返回條數(shù)為單位分多次提取數(shù)據(jù),并將每次提取出來(lái)的數(shù)據(jù)發(fā)送給客戶端;若所述行鍵查詢范圍對(duì)應(yīng)的行鍵的條數(shù)少于N條,則一次性都提取出來(lái),發(fā)送給客戶端。步驟S105:將所述預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)映射為預(yù)設(shè)格式,并將映射后的數(shù)據(jù)發(fā)送至所述客戶端。在實(shí)際應(yīng)用中,在將所述獲取到的數(shù)據(jù)發(fā)送至所述客戶端之前,可以先對(duì)所述數(shù)據(jù)進(jìn)行映射,映射為客戶端需要的預(yù)設(shè)格式,然后再將映射后的預(yù)設(shè)格式的數(shù)據(jù)發(fā)送至所述客戶端,以滿足適應(yīng)不同客戶端的需求。本實(shí)施通過(guò)HBase訪問(wèn)對(duì)象來(lái)實(shí)現(xiàn)應(yīng)用層與數(shù)據(jù)持久層的解耦,首先HBase訪問(wèn)對(duì)象接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,并根據(jù)所述數(shù)據(jù)查詢請(qǐng)求中的領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募鲱I(lǐng)域?qū)ο笈渲梦募邪ū砻托薪∩梢?guī)則,根據(jù)所述數(shù)據(jù)查詢請(qǐng)求中的所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,然后調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù),最后將所述數(shù)據(jù)映射為預(yù)設(shè)格式,并將預(yù)設(shè)格式的數(shù)據(jù)發(fā)送至所述客戶端。由于應(yīng)用層與HAO解耦,使得HAO能夠適用于任何應(yīng)用層的業(yè)務(wù)組件,當(dāng)業(yè)務(wù)組件增加或變更時(shí),所述HAO無(wú)需做改動(dòng),就可以實(shí)現(xiàn)查詢所述HBase數(shù)據(jù)庫(kù)的功能,降低開(kāi)發(fā)成本,提高開(kāi)發(fā)效率。實(shí)施例二所述實(shí)施例一根據(jù)起始行鍵和結(jié)束行鍵來(lái)從所述HBase數(shù)據(jù)庫(kù)中提取數(shù)據(jù),由于一個(gè)行鍵對(duì)應(yīng)一整條記錄,在實(shí)際應(yīng)用中,這樣的數(shù)據(jù)提取可能比較粗糙,通過(guò)本實(shí)施例能夠?qū)崿F(xiàn)更加準(zhǔn)確的在從行鍵查詢范圍中提取出用戶需要的數(shù)據(jù)的目的。參見(jiàn)圖2,該圖為本發(fā)明實(shí)施例二提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法的流程圖。本實(shí)施例提供的基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法包括如下步驟:步驟S201:接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢請(qǐng)求中包括行鍵查詢字段、預(yù)設(shè)返回條數(shù)、領(lǐng)域?qū)ο竺Q和過(guò)濾查詢字段。在實(shí)際應(yīng)用中,所述過(guò)濾查詢字段可以包括行鍵過(guò)濾字段、列相關(guān)過(guò)濾字段等。所述行鍵過(guò)濾字段是指從行鍵查詢范圍內(nèi)的行鍵中過(guò)濾出需要的行鍵。例如所述行鍵過(guò)濾字段為“01”,用于將最后兩個(gè)字符為“01”的行鍵過(guò)濾出來(lái)。所述列相關(guān)過(guò)濾字段用于從HBase數(shù)據(jù)庫(kù)中列對(duì)應(yīng)的數(shù)據(jù),在行鍵查詢字段存在的情況下,所述列相關(guān)過(guò)濾字段具體用于從所述行鍵查詢范圍中過(guò)濾出與列相關(guān)的的數(shù)據(jù)。以所述表1為例,所述列相關(guān)過(guò)濾字段包括列族,即列名URI和Paser對(duì)應(yīng)的列族。進(jìn)一步的,所述過(guò)濾查詢字段還可以包括列名過(guò)濾字段,用于從所述列族對(duì)應(yīng)的數(shù)據(jù)中過(guò)濾出某個(gè)或某些列名對(duì)應(yīng)的數(shù)據(jù),例如所述URI或所述Paser對(duì)應(yīng)的數(shù)據(jù)。再進(jìn)一步,所述過(guò)濾查詢字段中還可以包括列值過(guò)濾字段,即從列(例如所述URI或所述Paser)中過(guò)濾出來(lái)與所述列值匹配的數(shù)據(jù)。所述列相關(guān)過(guò)濾字段還可以包括列值,用于過(guò)濾出與所述列值的數(shù)據(jù)。步驟S202:根據(jù)所述領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募邪ū砻?、行健生成?guī)則以及過(guò)濾器的生成規(guī)則。步驟S203:根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,所述行鍵查詢范圍包括起始行鍵和結(jié)束行鍵。步驟S204:根據(jù)所述過(guò)濾查詢字段以及所述過(guò)濾器生成規(guī)則生成對(duì)應(yīng)的過(guò)濾器。在接收到包含所述過(guò)濾查詢字段的數(shù)據(jù)查詢請(qǐng)求后,根據(jù)所述過(guò)濾查詢字段以及所述過(guò)濾器生成規(guī)則生成對(duì)應(yīng)的過(guò)濾器。具體的,首先根據(jù)所述過(guò)濾查詢字段對(duì)過(guò)濾器的配置文件中過(guò)濾器的屬性進(jìn)行參數(shù)設(shè)置,然后通過(guò)JAVA反射機(jī)制動(dòng)態(tài)創(chuàng)建過(guò)濾器。為了實(shí)現(xiàn)自動(dòng)對(duì)配置文件進(jìn)行設(shè)置,可以對(duì)所述過(guò)濾查詢字段預(yù)先進(jìn)行處理,以使其符合配置文件對(duì)參數(shù)的要求,所述處理過(guò)程可以包括變換、補(bǔ)齊、翻轉(zhuǎn)等,與實(shí)施例一中的處理規(guī)則相類似,此處不再贅述。在過(guò)濾器創(chuàng)建的過(guò)程中,還可以利用HBase自帶的比較器來(lái)實(shí)現(xiàn)查詢某個(gè)范圍的功能,例如從第m列到第n列。步驟S205:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,利用所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾,得到過(guò)濾數(shù)據(jù),并從所述過(guò)濾數(shù)據(jù)中提取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)。步驟S206:將所述預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)映射為預(yù)設(shè)格式,并將映射后的數(shù)據(jù)發(fā)送至所述客戶端。本實(shí)施例通過(guò)行鍵查詢范圍獲取起始行鍵和結(jié)束行鍵之間的數(shù)據(jù),并通過(guò)所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾,以使用戶準(zhǔn)確的得到想要的數(shù)據(jù),滿足用戶的需求。在實(shí)際應(yīng)用中,可以建立領(lǐng)域?qū)ο竽P停瑏?lái)查找不同類型的數(shù)據(jù),具體可以采用XML配置文件來(lái)定義和描述領(lǐng)域?qū)ο?,領(lǐng)域?qū)ο蟀I(lǐng)域類型信息domainType、輸出類名稱outputClass、HBase表中rowkey、過(guò)濾器相關(guān)信息filters和HBase表相關(guān)信息tableInfo等元素,每個(gè)元素下又包含了若干子元素。HBase訪問(wèn)對(duì)象使用領(lǐng)域?qū)ο蠛洼斎雽?duì)象,通過(guò)調(diào)用HBaseAPI(接口),對(duì)HBase訪問(wèn)操作進(jìn)行封裝,將領(lǐng)域?qū)ο笥成涞较鄳?yīng)的HBase查詢對(duì)象中進(jìn)行查詢并得到返回結(jié)果。領(lǐng)域?qū)ο竽P偷氖疽鈭D如圖3所示。其中,domainType領(lǐng)域類型描述子節(jié)點(diǎn),按順序定義了以下子元素:code領(lǐng)域類型碼,string類型desp領(lǐng)域類型描述,string類型filePath領(lǐng)域類型配置文件路徑,string類型outputClass輸出類描述子節(jié)點(diǎn),按順序定義了以下子元素:calssName輸出類完全限定名,string類型outputView輸出報(bào)文描述子節(jié)點(diǎn),按順序定義了以下子元素:stringPad補(bǔ)齊操作定義子節(jié)點(diǎn),按順序定義了以下子元素:userDefineFun用戶自定義函數(shù)子節(jié)點(diǎn),支持對(duì)第三方j(luò)ar包中或者系統(tǒng)中通用處理函數(shù)的調(diào)用,該節(jié)點(diǎn)定義了以下子元素:className自定義處理函數(shù)所在類的名稱,string類型methodName自定義處理函數(shù)名,string類型range子節(jié)點(diǎn)按順序定義了以下子元素:isRange范圍字段標(biāo)志,boolean類型userDefineFun自定義處理函數(shù),復(fù)雜類型field字段描述子節(jié)點(diǎn),定義了以下子元素:name字段名稱,string類型index字段索引,int類型size字段長(zhǎng)度,int類型isCon續(xù)查標(biāo)志,boolean類型isRevert字段翻轉(zhuǎn)標(biāo)志,boolean類型stringPad字符補(bǔ)齊方式,復(fù)雜類型,參見(jiàn)stringPadrange字段范圍定義,復(fù)雜類型,參見(jiàn)rangecolumnHBase列定義子節(jié)點(diǎn),按順序定義了以下子元素:loopColumn循環(huán)列定義子節(jié)點(diǎn),對(duì)應(yīng)HBase中列名滿足一定規(guī)則的一批列,其中按順序定義了以下子元素:columnFamily列族定義子節(jié)點(diǎn),對(duì)應(yīng)HBase中的列族,定義了以下子元素:name列族名稱,string類型column列族中包含的列,復(fù)雜類型,參見(jiàn)columnloopColumn列族中包含的循環(huán)列,復(fù)雜類型,參見(jiàn)loopColumntableInfo表定義子節(jié)點(diǎn),對(duì)應(yīng)HBase中的表,定義以下子元素:rowKey行主鍵定義子節(jié)點(diǎn),對(duì)應(yīng)HBase的RowKey,該節(jié)點(diǎn)按順序定義了以下子元素:filterField過(guò)濾器字段定義子節(jié)點(diǎn),包含以下子元素:filters過(guò)濾器定義子節(jié)點(diǎn),按順序定義了以下子元素:本實(shí)施例提供的基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法可以通過(guò)配置文件來(lái)實(shí)現(xiàn),下面通過(guò)一段代碼作為本實(shí)施例的示例:<?xmlversion="1.0"encoding="UTF-8"?>-<Domain><domainType>if40</domainType>-<outputClass><calssName>com.abchina.bhdqs.vo.if40.If40TrcForm</calssName></outputClass>-<tableInfo><tableName>hdqs_if40_trc</tableName>-<columnFamily><name>f</name>-<column><name>dt</name></column></columnFamily></tableInfo>-<rowKey>-<field><name>regIfArSeqNum</name><index>0</index></field>-<field><name>entFnCod</name><index>1</index></field>-<field><name>linePdCod</name><index>2</index></field>-<field><name>pdGrpId</name><index>3</index></field>-<field><name>crtFormTrcDate</name><index>4</index><size>8</size>-<range><isRange>true</isRange></range></field>-<field><name>formTrcSeqNum</name><index>5</index><size>20</size>-<stringPad><type>LEFTPAD</type><value>0</value></stringPad></field></rowKey>-<filters>-<filterField>-<field><name>typFormTrcCod</name><index>0</index></field><isFilterList>Y</isFilterList><filterName>org.apache.hadoop.hbase.filter.SingleColumnValueFilter</filterName><columnFamily>f</columnFamily><column>dt</column><compareOp>EQUAL</compareOp><comparator>org.apache.hadoop.hbase.filter.BinaryPrefixComparator</comparator></filterField>-<filterField>-<field><name>extidTarfIfId</name><index>1</index></field><filterName>org.apache.hadoop.hbase.filter.SingleColumnValueFilter</filterName><columnFamily>f</columnFamily><column>dt</column><compareOp>EQUAL</compareOp><comparator>org.apache.hadoop.hbase.filter.SubstringComparator</comparator></filterField></filters></Domain>基于以上實(shí)施例提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢方法,本發(fā)明實(shí)施例還提供了一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置,下面結(jié)合附圖來(lái)詳細(xì)說(shuō)明其工作原理。實(shí)施例三參見(jiàn)圖4,該圖為本發(fā)明實(shí)施例三提供的一種基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置的結(jié)構(gòu)框圖。本實(shí)施例提供的基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置包括:請(qǐng)求接收單元101、配置文件確定單元102、范圍生成單元103、數(shù)據(jù)獲取單元104和映射單元105;其中,所述請(qǐng)求接收單元101,用于接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,所述數(shù)據(jù)查詢請(qǐng)求中包括行鍵查詢字段、預(yù)設(shè)返回條數(shù)和領(lǐng)域?qū)ο竺Q;所述配置文件確定單元102,用于根據(jù)所述領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募邪ū砻托薪∩梢?guī)則;所述范圍生成單元103,用于根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,所述行鍵查詢范圍包括起始行鍵和結(jié)束行鍵;所述數(shù)據(jù)獲取單元104,用于調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲得預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù);所述映射單元105,用于將所述預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)映射為預(yù)設(shè)格式,并將映射后的數(shù)據(jù)發(fā)送至所述客戶端。本實(shí)施通過(guò)HBase訪問(wèn)對(duì)象來(lái)實(shí)現(xiàn)應(yīng)用層與數(shù)據(jù)持久層的解耦,首先HBase訪問(wèn)對(duì)象接收來(lái)自客戶端的數(shù)據(jù)查詢請(qǐng)求,并根據(jù)所述數(shù)據(jù)查詢請(qǐng)求中的領(lǐng)域?qū)ο竺Q確定對(duì)應(yīng)的領(lǐng)域?qū)ο笈渲梦募?,所述領(lǐng)域?qū)ο笈渲梦募邪ū砻托薪∩梢?guī)則,根據(jù)所述數(shù)據(jù)查詢請(qǐng)求中的所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,根據(jù)所述行鍵查詢字段以及HBase數(shù)據(jù)庫(kù)的行鍵生成規(guī)則生成行鍵查詢范圍,然后調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并從所述行鍵查詢范圍中獲取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù),最后將所述數(shù)據(jù)映射為預(yù)設(shè)格式,并將預(yù)設(shè)格式的數(shù)據(jù)發(fā)送至所述客戶端。由于應(yīng)用層與HAO解耦,使得HAO能夠適用于任何應(yīng)用層的業(yè)務(wù)組件,當(dāng)業(yè)務(wù)組件增加或變更時(shí),所述HAO無(wú)需做改動(dòng),就可以實(shí)現(xiàn)查詢所述HBase數(shù)據(jù)庫(kù)的功能,降低開(kāi)發(fā)成本,提高開(kāi)發(fā)效率。實(shí)施例四基于所述實(shí)施例三,在本實(shí)施例提供的基于HBase數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢裝置中,所述數(shù)據(jù)查詢請(qǐng)求中還包括過(guò)濾查詢字段;所述領(lǐng)域?qū)ο笈渲梦募羞€包括過(guò)濾器生成規(guī)則;所述裝置還包括:過(guò)濾器生成單元,用于根據(jù)所述過(guò)濾查詢字段以及所述過(guò)濾器生成規(guī)則生成對(duì)應(yīng)的過(guò)濾器;所述數(shù)據(jù)獲取單元104,具體用于:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并利用所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾,得到過(guò)濾數(shù)據(jù),以及從所述過(guò)濾數(shù)據(jù)中提取預(yù)設(shè)返回條數(shù)的數(shù)據(jù)。其中,若所述過(guò)濾查詢字段包括行鍵過(guò)濾字段;則所述數(shù)據(jù)獲取單元104,具體用于:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,并利用所述過(guò)濾器從所述行鍵查詢范圍內(nèi)的行鍵中過(guò)濾出與所述行鍵過(guò)濾字段匹配的行鍵,以及從所述過(guò)濾出的行鍵中提取預(yù)設(shè)返回條數(shù)的行鍵對(duì)應(yīng)的數(shù)據(jù)。若所述過(guò)濾查詢字段包括列相關(guān)過(guò)濾字段;所述數(shù)據(jù)獲取單元104,具體用于:調(diào)用HBase的數(shù)據(jù)接口,以從與所述表名對(duì)應(yīng)的表內(nèi)查找所述行鍵查詢范圍,利用所述過(guò)濾器從所述行鍵查詢范圍內(nèi)過(guò)濾出與所述列相關(guān)過(guò)濾字段匹配的數(shù)據(jù),得到過(guò)濾數(shù)據(jù),以及從所述過(guò)濾數(shù)據(jù)中提取預(yù)設(shè)返回條數(shù)的數(shù)據(jù)。本實(shí)施例通過(guò)行鍵查詢范圍獲取起始行鍵和結(jié)束行鍵之間的數(shù)據(jù),并通過(guò)所述過(guò)濾器對(duì)所述行鍵查詢范圍內(nèi)的數(shù)據(jù)進(jìn)行過(guò)濾,以使用戶準(zhǔn)確的得到想要的數(shù)據(jù),滿足用戶的需求。當(dāng)介紹本發(fā)明的各種實(shí)施例的元件時(shí),冠詞“一”、“一個(gè)”、“這個(gè)”和“所述”都意圖表示有一個(gè)或多個(gè)元件。詞語(yǔ)“包括”、“包含”和“具有”都是包括性的并意味著除了列出的元件之外,還可以有其它元件。需要說(shuō)明的是,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法實(shí)施例的流程。其中,所述存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-OnlyMemory,ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccessMemory,RAM)等。本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元及模塊可以是或者也可以不是物理上分開(kāi)的。另外,還可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元和模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上所述僅是本發(fā)明的具體實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
:的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3