亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

查找HBase表列值中所有行的方法和裝置制造方法

文檔序號:6629644閱讀:164來源:國知局
查找HBase表列值中所有行的方法和裝置制造方法【專利摘要】本發(fā)明提供了一種查找HBase表列值中所有行的方法和裝置,包括:編寫協(xié)處理器實現(xiàn)的索引列表;獲取協(xié)處理器實現(xiàn)的地址;定義表描述符,將協(xié)處理器定義添加到表描述符中;創(chuàng)建集群的管理應(yīng)用程序編程接口API,并將API添加到HBase表中;將HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索引列表查找相應(yīng)的列值中的所有行。本發(fā)明利用HBase中協(xié)處理器的Observer類型接口,通過將表中的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,在查找相應(yīng)的特定列值中所有行的時候可以通過索引列表快速定位,并返回滿足用戶需求的查詢結(jié)果,保證了時間效率,同時提升了性能。【專利說明】查找HBase表列值中所有行的方法和裝置【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及數(shù)據(jù)處理【
技術(shù)領(lǐng)域
】,尤其涉及一種查找HBase表列值中所有行的方法和裝置?!?br>背景技術(shù)
】[0002]在海量數(shù)據(jù)的時代中,大數(shù)據(jù)處理Hadoop已經(jīng)成為了處理大數(shù)據(jù)的平臺,它提供了Hadoop分布式文件系統(tǒng)(HDFS,HadoopDistributedFileSystem)及MapReduce框架,擅長存儲任意的、半結(jié)構(gòu)化的數(shù)據(jù)、甚至是非結(jié)構(gòu)化的數(shù)據(jù),可以幫助用戶在分析數(shù)據(jù)的時候決定如何解釋這些數(shù)據(jù)。Hadoop幾乎是所有現(xiàn)有數(shù)據(jù)庫的一種補充,它給用戶提供了數(shù)據(jù)存儲的無限空間,支持用戶在恰當?shù)臅r候存儲和獲取數(shù)據(jù),并針對大文件的存儲、批量訪問做了優(yōu)化,使得用戶對數(shù)據(jù)的分析變得簡單快捷。但是,用戶同樣需要訪問分析后的最終數(shù)據(jù),需要一種隨機訪問模式,這種模式相對于在數(shù)據(jù)庫系統(tǒng)來說,相當于一種全表掃描和使用索引。[0003]因此,HBase出現(xiàn)了。HBase是一種基于HDFS上的一種分布式數(shù)據(jù)庫,提供了很好的易用性及鍵值對的靈活處理,同時能夠快速讀取表中數(shù)據(jù)等優(yōu)勢。但是,現(xiàn)有的HBase中只能提供基于行鍵快速查詢結(jié)果,若基于特定列值查詢行的情況是需要全表掃描的,假定HBase表的行數(shù)非常多的情況下,會浪費大量的時間才能得到查詢結(jié)果。[0004]有鑒于此,一種快速查詢HBase表中列值中所有行的方法是本領(lǐng)域技術(shù)人員所需的?!?br/>發(fā)明內(nèi)容】[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種查找HBase表列值中所有行的方法和裝置,能夠?qū)崿F(xiàn)快速查找HBase表列值中所有行的查詢。[0006]為了達到本發(fā)明目的,本發(fā)明提供了一種查找HBase表列值中所有行的方法,包括:編寫協(xié)處理器實現(xiàn)的索引列表;獲取協(xié)處理器實現(xiàn)的地址;定義表描述符,將協(xié)處理器定義添加到表描述符中;創(chuàng)建集群的管理應(yīng)用程序編程接口API,并將API添加到HBase表中;將HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索引列表查找相應(yīng)的列值中的所有行。[0007]進一步地,編寫協(xié)處理器實現(xiàn)的索引列表,包括:設(shè)置一個類,該類繼承BaseReg1nObserver接口;設(shè)置Preput函數(shù)進行索引列;設(shè)置索引列的Htable;將列族信息及列信息及相對應(yīng)的行put到所述索引列表中。[0008]進一步地,將列族信息及列信息及相對應(yīng)的行put到索引列表,包括:接收列族名稱、列名稱及值,通過列族信息及列信息獲取鍵值對,并通過鍵值對將索引列信息put到索弓I列表中。[0009]進一步地,編寫協(xié)處理器實現(xiàn)的索引列表之后,還包括:將協(xié)處理器實現(xiàn)的代碼打包。[0010]進一步地,獲取協(xié)處理器實現(xiàn)的地址,包括:獲取所述協(xié)處理器實現(xiàn)的包的地址。[0011]進一步地,創(chuàng)建集群的管理API,并將所述API添加到HBase表中之后,還包括:確定定義的所述協(xié)處理器被正確添加。[0012]一種查找HBase表列值中所有行的裝置,包括:編寫模塊,用于編寫協(xié)處理器實現(xiàn)的索引列表;獲取模塊,用于獲取協(xié)處理器實現(xiàn)的地址;定義模塊,用于定義表描述符,將協(xié)處理器定義添加到表描述符中;創(chuàng)建模塊,用于創(chuàng)建集群的管理API,并將API添加到HBase表中;查找模塊,用于將HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索弓I列表查找相應(yīng)的列值中的所有行。[0013]進一步地,編寫模塊,具體用于:設(shè)置一個類,所述類繼承BaseReg1nObserver接口;設(shè)置Preput函數(shù)進行索引列;設(shè)置索引列的Htable;將列族信息及列信息及相對應(yīng)的行put到索引列表中。[0014]進一步地,編寫模塊,還用于:將所述協(xié)處理器實現(xiàn)的代碼打包。[0015]進一步地,獲取模塊,具體用于獲取所述協(xié)處理器實現(xiàn)的包的地址。[0016]進一步地,該裝置還包括:確定模塊,用于確定定義的所述協(xié)處理器被正確添加。[0017]與現(xiàn)有技術(shù)相比,本發(fā)明包括:編寫協(xié)處理器實現(xiàn)的索引列表;獲取協(xié)處理器實現(xiàn)的地址;定義表描述符,將協(xié)處理器定義添加到表描述符中;創(chuàng)建集群的管理應(yīng)用程序編程接口API,并將API添加到HBase表中;將HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索引列表查找相應(yīng)的列值中的所有行。本發(fā)明利用HBase中協(xié)處理器的Observer類型接口,通過將表中的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,在查找相應(yīng)的特定列值中所有行的時候可以通過索引列表快速定位,并返回滿足用戶需求的查詢結(jié)果,保證了時間效率,同時減少了大量的網(wǎng)絡(luò)開銷,提升了性能?!緦@綀D】【附圖說明】[0018]圖1是本發(fā)明查找HBase表列值中所有行的方法的流程示意圖。[0019]圖2是本發(fā)明編寫HBase協(xié)處理器實現(xiàn)的索引列表的方法的流程示意圖。[0020]圖3是本發(fā)明查找HBase表列值中所有行的裝置的結(jié)構(gòu)示意圖?!揪唧w實施方式】[0021]下面結(jié)合附圖對本發(fā)明進行進一步的詳細說明。通過足夠詳細的描述這些實施示例,使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明。在不脫離本發(fā)明的主旨和范圍的情況下,可以對實施做出邏輯的、實現(xiàn)的和其他的改變。[0022]在本發(fā)明中,需要部署分布式集群環(huán)境,在該集群中包含HDFS、MapReduce、HBase、Zookeeper組件,例如,該分布式集群環(huán)境是有3個節(jié)點,每個節(jié)點的配置是96G內(nèi)存,12個core,硬盤是12*1T。[0023]圖1是本發(fā)明查找HBase表列值中所有行的方法的流程示意圖。如圖1所示,具體可以包括:[0024]步驟11,編寫協(xié)處理器(Coprocessor)實現(xiàn)的索引列表。[0025]協(xié)處理器是HBase中的一個框架,用戶可以通過繼承類來擴展自己的功能,其種該類主要有兩種:觀察者(observer)類和端點(endpoint)類。[0026]在observer類中,協(xié)處理器與觸發(fā)器類似,通過回調(diào)函數(shù)hook在一些特定時間發(fā)生時被執(zhí)行。在observer類協(xié)處理器中提供的observer相關(guān)的接口是Reg1nObserver、MasterObserver和WALObserver,其中,Reg1nObserver是用戶可以用這種處理器處理數(shù)據(jù)修改事件,它們與表的reg1n聯(lián)系緊密;MasterObserver是可以被用作管理或數(shù)據(jù)庫模式定義語言(DDL,DataDefinit1nLanguage)類型的操作,這些是集群級事件;WALObserver是提供控制先寫日志(WAL,WriteaheadLog)的hook函數(shù)。Observer提供了一些設(shè)計好的回調(diào)函數(shù),每個操作在集群服務(wù)器端都可以被調(diào)用。在本發(fā)明中,使用的是Observer類來實現(xiàn)快速查找HBase表列值中所有行的查詢。[0027]在本步驟中,還可以進一步將該協(xié)處理器實現(xiàn)的代碼打包。[0028]在本步驟中,編寫HBase協(xié)處理器實現(xiàn)的索引列表的方法可以參考圖2所示,包括:[0029]步驟111,設(shè)置一個類,該類繼承BaseReg1nObserver接口;[0030]具體地,該類需要繼承BaseReg1nObserver編寫索引列的coprocessor類。[0031]步驟112,設(shè)置Preput函數(shù)進行索引列;[0032]步驟113,設(shè)置索引列的Htable;[0033]步驟114,將列族信息及列信息及相對應(yīng)的行put到索引列表;[0034]具體地,在該類中需要接收列族名稱、列名稱及值,通過列族信息及列信息獲取鍵值對,并通過對鍵值對操作將索引列信息put到索引列表中。[0035]步驟12,獲取協(xié)處理器實現(xiàn)的地址。[0036]在本步驟中,要將協(xié)處理器與特定的表關(guān)聯(lián),以保證該特定的表被啟用的時候,會加載編寫的協(xié)處理器。因此,需要獲取協(xié)處理器實現(xiàn)的地址。[0037]如果之前將該協(xié)處理器實現(xiàn)的代碼打包,則獲取協(xié)處理器實現(xiàn)的包的地址。[0038]步驟13,定義表描述符,將協(xié)處理器定義添加到表描述符中。[0039]步驟14,倉ij建集群的管理應(yīng)用程序編程接口(API,Applicat1nProgrammingInterface)并添加到表中。[0040]步驟15,確定定義的協(xié)處理器被正確添加。[0041]步驟16,將HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索引列表查找相應(yīng)的列值中的所有行。[0042]本發(fā)明使用HBase中協(xié)處理器的特性進行設(shè)計,通過HBase中協(xié)處理器的Observer的模式進行編碼,然后通過在想要查詢的表中加載coprocessor為編寫好的該類即可。在本發(fā)明中通過表描述符來加載,針對特定表決定哪些協(xié)處理器被加載,加載協(xié)處理器時是針對這個表的reg1n進行的,同時只被這些reigon的reg1n服務(wù)器使用。[0043]在進行表描述符加載時需要得到包含協(xié)處理器實現(xiàn)的jar文件地址,然后定義表描述符,再將協(xié)處理器定義添加到表描述符中,創(chuàng)建集群的管理API并添加這個表,最后檢查定義的協(xié)處理器其是否被正確的添加。這樣處理過后,一旦表被啟用,且reg1n被打開,框架會首先加載配置文件中定義的協(xié)處理器,然后再加載表描述符的協(xié)處理器。[0044]在快速查詢HBase表中列值中所有行的方法中首先編寫索引列的類,通過客戶端API調(diào)用顯示地從客戶端應(yīng)用傳輸?shù)絩eg1n服務(wù)器上,在用戶進行源表插入數(shù)據(jù)操作時會攔截它們,使用協(xié)處理器的相關(guān)操作將數(shù)據(jù)put到索引列表中,這是在客戶端請求前執(zhí)行的。索引列表中記錄了特定列族、特定列的值相對應(yīng)的行的信息,保證了查詢速率。[0045]綜上,本發(fā)明利用HBase中協(xié)處理器Coprocessor的Observer類型接口,通過將表中的特定列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,在查找相應(yīng)的特定列值中所有行的時候可以通過索引列表快速定位,并返回滿足用戶需求的查詢結(jié)果,該方法保證了時間效率,同時減少了大量的網(wǎng)絡(luò)開銷,提升了性能。[0046]圖3是本發(fā)明查找HBase表列值中所有行的裝置的結(jié)構(gòu)示意圖,如圖3所示,具體可以包括:[0047]編寫模塊,用于編寫協(xié)處理器實現(xiàn)的索引列表;[0048]具體地,編寫模塊用于設(shè)置一個類,該類繼承BaseReg1nObserver接口;設(shè)置Preput函數(shù)進行索引列;設(shè)置索引列的Htable;將特定列族特定列的值及相對應(yīng)的行put到索引列表;[0049]此外,該編寫模塊還用于將該協(xié)處理器實現(xiàn)的代碼打包。[0050]獲取模塊,用于獲取協(xié)處理器實現(xiàn)的地址;[0051]具體地,如果編寫模塊將協(xié)處理器實現(xiàn)的代碼打包,則獲取模塊獲取協(xié)處理器實現(xiàn)的包的地址。[0052]定義模塊,用于定義表描述符,然后將協(xié)處理器定義添加到表描述符中。[0053]創(chuàng)建模塊,用于創(chuàng)建集群的管理API并添加到表中。[0054]確定模塊,用于確定定義的協(xié)處理器被正確添加。[0055]查找模塊,用于將HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索引列表查找相應(yīng)的列值中的所有行。[0056]查找HBase表列值中所有行的裝置是和查找HBase表列值中所有行的方法對應(yīng)的,因此,查找HBase表列值中所有行的裝置具體的實現(xiàn)細節(jié)可參看查找HBase表列值中所有行的方法,在此不贅述。[0057]本發(fā)明利用HBase中協(xié)處理器Coprocessor的Observer類型接口,通過將表中的特定列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,在查找相應(yīng)的特定列值中所有行的時候可以通過索引列表快速定位,并返回滿足用戶需求的查詢結(jié)果,該方法保證了時間效率,同時減少了大量的網(wǎng)絡(luò)開銷,提升了性能。。[0058]應(yīng)當理解,雖然本說明書根據(jù)實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當將說明書作為一個整體,各實施方式中的技術(shù)方案也可以經(jīng)適當組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。[0059]上文所列出的一系列的詳細說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用于限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)?!緳?quán)利要求】1.一種查找HBase表列值中所有行的方法,其特征在于,包括:編寫協(xié)處理器實現(xiàn)的索引列表;獲取所述協(xié)處理器實現(xiàn)的地址;定義表描述符,將協(xié)處理器定義添加到所述表描述符中;創(chuàng)建集群的管理應(yīng)用程序編程接口API,并將所述API添加到HBase表中;將所述HBase表的列值在所述索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過所述索引列表查找相應(yīng)的列值中的所有行。2.根據(jù)權(quán)利要求1所述的查找HBase表列值中所有行的方法,其特征在于,所述編寫協(xié)處理器實現(xiàn)的索引列表,包括:設(shè)置一個類,所述類繼承BaseReg1nObserver接口;設(shè)置Preput函數(shù)進行索引列;設(shè)置所述索引列的Htable;將列族信息及列信息及相對應(yīng)的行put到所述索引列表中。3.根據(jù)權(quán)利要求2所述的查找HBase表列值中所有行的方法,其特征在于,所述將列族信息及列信息及相對應(yīng)的行put到索引列表,包括:接收列族名稱、列名稱及值,通過列族信息及列信息獲取鍵值對,并通過所述鍵值對將索引列信息put到所述索引列表中。4.根據(jù)權(quán)利要求1-3中任一項所述的查找HBase表列值中所有行的方法,其特征在于,所述編寫協(xié)處理器實現(xiàn)的索引列表之后,還包括:將所述協(xié)處理器實現(xiàn)的代碼打包。5.根據(jù)權(quán)利要求4所述的查找HBase表列值中所有行的方法,其特征在于,所述獲取協(xié)處理器實現(xiàn)的地址,包括:獲取所述協(xié)處理器實現(xiàn)的包的地址。6.根據(jù)權(quán)利要求4所述的查找HBase表列值中所有行的方法,其特征在于,所述創(chuàng)建集群的管理API,并將所述API添加到HBase表中之后,還包括:確定定義的所述協(xié)處理器被正確添加。7.一種查找HBase表列值中所有行的裝置,其特征在于,包括:編寫模塊,用于編寫協(xié)處理器實現(xiàn)的索引列表;獲取模塊,用于獲取所述協(xié)處理器實現(xiàn)的地址;定義模塊,用于定義表描述符,將協(xié)處理器定義添加到所述表描述符中;創(chuàng)建模塊,用于創(chuàng)建集群的管理API,并將所述API添加到HBase表中;查找模塊,用于將所述HBase表的列值在索引列表中設(shè)置相應(yīng)的對應(yīng)關(guān)系,通過索所述引列表查找相應(yīng)的列值中的所有行。8.根據(jù)權(quán)利要求7所述的查找HBase表列值中所有行的裝置,其特征在于,所述編寫模塊,具體用于:設(shè)置一個類,所述類繼承BaseReg1nObserver接口;設(shè)置Preput函數(shù)進行索引列;設(shè)置所述索引列的Htable;將列族信息及列信息及相對應(yīng)的行put到所述索引列表中。9.根據(jù)權(quán)利要求7所述的查找HBase表列值中所有行的裝置,其特征在于,所述編寫模塊,還用于:將所述協(xié)處理器實現(xiàn)的代碼打包。10.根據(jù)權(quán)利要求9所述的查找HBase表列值中所有行的裝置,其特征在于,所述獲取模塊,具體用于獲取所述協(xié)處理器實現(xiàn)的包的地址。11.根據(jù)權(quán)利要求7所述的查找HBase表列值中所有行的裝置,其特征在于,還包括:確定模塊,用于確定定義的所述協(xié)處理器被正確添加?!疚臋n編號】G06F17/30GK104239576SQ201410528432【公開日】2014年12月24日申請日期:2014年10月9日優(yōu)先權(quán)日:2014年10月9日【發(fā)明者】孫志云,郭美思,吳楠申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1