一種實現Windows下連接控制Hbase的方法及裝置制造方法【專利摘要】本發明公開了一種實現Windows下連接控制Hbase的方法及裝置,包括:封裝所有Thrift的應用程序編程接口(API)的訪問接口的功能函數及獲取Hadoop數據庫(Hbase)元數據的函數;還包括:當用戶訪問Hbase時,建立HBase服務器(Server)與Hbase的連接;HBase?Server將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。本發明通過將連接和控制HBase的功能函數進行有效封裝,使Windows下連接和控制HBase得到穩定,采用C#封裝的功能函數可以進行移植,適用范圍廣。【專利說明】—種實現Windows下連接控制Hbase的方法及裝置【
技術領域:
】[0001]本發明涉及數據庫領域,尤指一種實現Windows下連接控制Hadoop數據庫(Hbase)的方法及裝置。【
背景技術:
】[0002]隨著互聯網、互聯網、云計算等信息技術在內的通信行業的迅速發展,對數據信息進行有效應用和管理成為企業發展的挑戰和機遇,現代社會進入了大數據發展時代。大數據或稱巨量資料,是指涉及規模巨大的資料量,目前主流軟件工具無法對其進行有效的擷取、管理、處理,使其成為幫助企業進行積極經營決策的資訊。大數據自身的特點,造成了主流的關系型數據庫無法滿足其信息的存儲。Hadoop數據庫(Hbase)是一個具有高可靠性、高性能、面向列、可伸縮的分布式開源數據庫。基于Hadoop分布式文件系統的HBase,模仿并提供了基于Google文件系統的Bigtable數據庫的所有功能。通過Hbase可以實現在普通的PCServer上搭建起大規模結構化存儲集群,進而實現對龐大的數據表格的信息處理,達到采用普通的PC處理超過十億行的、有數百萬列元素組成的數據表。[0003]用戶數據的激增和數據類型的多樣化發展,亟需進行大數據的整合,原有的數據庫內容也需要往大數據平臺進行數據遷移。HBase分布式數據庫是采用采用Java語言開發的數據庫,在數據整合和遷移過程中,HBase提供了豐富的JavaAPI;因此,目前的開發大都是采用Java語言調用HBase提供的API實現對HBase的數據庫存取。對于計劃采用Java語言或者是基于Java語言開發的項目,對于HBase的數據庫存取當然不存在問題。但是,在Windows平臺下采用C#、C++開發的HBase的數據庫項目或者數據庫遷移項目,要實現數據可存儲其操作難度較大。為了支持Windows下HBase的數據庫的開發,HBase還集成了支持C++和C#等語言的Thrift的API訪問接口,雖然為Window下的開發提供了一定的便利,但是提供的Thrift的API訪問接口,需要采用單一的功能函數對HBase的數據庫進行連接或控制,由于采用單一的功能函數執行連接或控制,在進行一些功能函數時,無法確定執行該功能函數的連接條件是否滿足,造成HBase連接和控制的不穩定。雖然為了方便實現HBase的開發,減少開發時進行連接和控制的代碼量,一些技術公司推出開放數據庫互聯(ODBC,OpenDatabaseConnectivity)以連接HBase的插件,可以實現在Windows下用標準SQL語言來操作HBase,但是采用ODBC連接HBase的插件方法僅支持部分數據庫操作,且存在開發的靈活性不足的問題。[0004]綜上,在Windows下用于連接和控制HBase的方法采用的單一的功能函數,無法實現HBase連接和控制過程的穩定;部分技術公司推出的采用ODBC連接HBase的插件,使用范圍較小,無法實現應用推廣。【
發明內容】[0005]為了解決上述技術問題,本發明提供一種實現Windows下連接控制Hbase的方法及裝置,能夠對Windows下穩定的連接和控制HBase,且可以進行移植,應用范圍廣。[0006]為了達到上述發明目的,本發明公開了一種實現Windows下連接控制Hbase的方法,包括:[0007]封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hadoop數據庫Hbase元數據的函數;還包括:[0008]當用戶訪問Hbase時,建立HBase服務器Server與Hbase的連接;[0009]HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。[0010]進一步地,封裝的功能函數及獲取Hadoop數據庫Hbase元數據的函數中還添加有接口檢查函數;[0011]將執行請求和執行封裝的功能函數發往Hbase之前,該方法還包括:利用接口檢查函數對所述Thrift的API訪問接口與Hbase的連接進行檢查;[0012]當檢查出所述Thrift的API訪問接口與Hbase未連接時,進行一次連接后,再執行所述將所述執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟;[0013]否則,直接執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟。[0014]進一步地,封裝的功能函數及獲取Hbase元數據的函數中還添加有格式轉換的函數;[0015]Hbase在執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,格式轉換的函數對返回結果進行格式轉換后進行反饋。[0016]進一步地,功能函數及獲取Hbase元數據的函數通過C#語言編寫。[0017]進一步地,封裝的方法包括:數據定義語言DDL和數據操作語言DML的封裝方法。[0018]另一方面,本申請還提供一種實現Windows下連接控制Hbase的裝置,包括:封裝單元、連接單元和執行反饋單元;其中,[0019]封裝單元,用于封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hadoop數據庫Hbase元數據的函數;[0020]連接單元,用于當用戶訪問Hbase時,建立HBase服務器Server與Hbase的連接;[0021]執行單元,用于通過HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。[0022]進一步地,該裝置還包括接口檢查單元,用于封裝的功能函數及獲取Hadoop數據庫Hbase元數據的函數中還添加有接口檢查函數,在所述將執行請求和執行封裝的功能函數發往Hbase之前,利用接口檢查函數對所述Thrift的API訪問接口與Hbase的連接進行檢查;[0023]當檢查出所述Thrift的API訪問接口與Hbase未連接時,進行一次連接后,再執行所述將所述執行請求和執行封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟;[0024]否則,直接執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟。[0025]進一步地,該裝置還包括格式轉換單元,用于在封裝的功能函數及獲取Hbase元數據的函數中添加格式轉換的函數;[0026]當Hbase在執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,格式轉換的函數對返回結果進行格式轉換后進行反饋。[0027]進一步地,功能函數通過C#語言編寫。[0028]進一步地,封裝單元,具體用于通過數據定義語言DDL和數據操作語言DML的封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hbase元數據的函數。[0029]本發明技術方案包括:封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hbase元數據的函數;還包括:當用戶訪問Hadoop數據庫(Hbase)時,建立HBase服務器(Server)與Hbase的連接;HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。本發明通過將連接和控制HBase的功能函數進行有效封裝,使Windows下連接和控制HBase得到穩定,采用C#封裝的功能函數可以進行移植,適用范圍廣。【專利附圖】【附圖說明】[0030]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:[0031]圖1為本發明實現Windows下連接控制Hbase的方法的流程圖;[0032]圖2為本發明實現Windows下連接控制Hbase的裝置的結構框圖。【具體實施方式】[0033]圖1為本發明實現Windows下連接控制Hbase的方法的流程圖,如圖1所示,包括:[0034]步驟100、封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hadoop數據庫(Hbase)元數據的函數。[0035]需要說明的是,Thrift最初由Facebook開發,07年四月開放源碼,08年5月進入Apache孵化器。Thrift允許定義一個簡單的定義文件中的數據類型和服務接口,以作為輸入文件,編譯器生成代碼用來方便地生成RPC客戶端和服務器通信的無縫跨編程語言。[0036]步驟101、當用戶訪問Hbase時,建立HBase服務器(Server)與Hbase的連接。[0037]步驟102、HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。這里,將執行請求和執行的功能函數發往Hbase后,可以根據功能函數,從Hbase中獲得信息反饋。[0038]封裝的功能函數中還添加有接口檢查函數;[0039]將執行請求和執行的封裝的功能函數發往Hbase之前,本發明方法還包括:利用接口檢查函數對所述Thrift的API訪問接口與Hbase的連接進行檢查;[0040]當檢查出所述Thrift的API訪問接口與Hbase未連接時,進行一次連接后,再執行所述將所述執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟;[0041]否則,直接執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟。[0042]進一步地,封裝的功能函數及獲取Hbase元數據的函數中還添加有格式轉換的函數;[0043]Hbase在執行將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,格式轉換的函數對返回結果進行格式轉換后進行反饋。[0044]需要說明的是,在Hbase在執行將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,其返回的結構在格式及字段類型與在客戶端上顯示給用戶的顯示類型往往不同,因此需要進行執行結果格式和顯示字段的調整,使用戶能夠對返回結構進行清楚的識別,關于格式轉換函數,是本領域技術人員根據格式要求不需要創造性勞動就可實現的技術內容,在此不再贅述。[0045]進一步地,功能函數通過C#語言編寫。[0046]封裝的方法包括:數據定義語言(DataDefinit1nLanguage,簡稱DDL)和數據操作語言(DataManipulat1nLanguage,簡稱DML)。[0047]這里,C#是微軟公司發布的一種面向對象的、運行于.NETFramework之上的高級程序設計語言。[0048]圖2為本發明實現Windows下連接控制Hbase的裝置的結構框圖,如圖2所示,包括:封裝單元、連接單元和執行反饋單元;其中,[0049]封裝單元,用于封裝所有Thrift的應用程序編程接口(API)的訪問接口的功能函數及獲取Hadoop數據庫(Hbase)元數據的函數。[0050]封裝單元,具體用于通過數據定義語言(DDL)和數據操作語言(DML)的封裝所有Thrift的應用程序編程接口(API)的訪問接口的功能函數及獲取Hbase元數據的函數。[0051]進一步地,功能函數通過C#語言編寫,以實現封裝。[0052]連接單元,用于當用戶訪問Hbase時,建立HBase服務器(Server)與Hbase的連接;[0053]執行單元,用于通過HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。[0054]本發明裝置還包括接口檢查單元,用于封裝的功能函數及獲取Hadoop數據庫Hbase元數據的函數中還添加有接口檢查函數,在將執行請求和執行封裝的功能函數發往Hbase之前,利用接口檢查函數對所述Thrift的API訪問接口與Hbase的連接進行檢查;[0055]當檢查出Thrift的API訪問接口與Hbase未連接時,進行一次連接后,再執行將執行請求和執行封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟;[0056]否則,直接執行將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟。[0057]進一步地,本發明裝置還包括數據格式轉換單元,用于在封裝的功能函數及獲取Hbase元數據的函數中添加格式轉換的函數;[0058]當Hbase在執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,格式轉換的函數對返回結果進行格式轉換后進行反饋。[0059]以下結合具體實施例對本發明方法進行清楚的陳述本發明,實施例并不用于顯示本發明保護范圍。[0060]實施例1[0061]本發明實施例實現Windows下連接控制Hbase包括:[0062]首先用戶在用C#編寫的客戶端輸入Hbase服務器IP和端口;[0063]然后、當用戶通過客戶端訪問Hbase時,建立HBaseServer與Hbase的連接;[0064]最后、將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase,以獲得Hbase的信息反饋。[0065]更為詳細的,Windows下連接控制Hbase包含以下步驟:[0066]a、在客戶端輸入Hbase的數據庫操作的參數;[0067]b、進行Thrift的API訪問接口與Hbase的連接檢查,當連接的參數isConnect1n為true時,調用Thrift進行遠程的Hbase操作,將返回結果進行預處理然后將結果顯示到客戶端,直接執行請求和執行的功能函數發往Hbase,以獲得Hbase的信息反饋;當isConnect1n為false則進行一次連接后,將執行請求和執行的功能函數發往Hbase,以獲得Hbase的彳目息反饋;[0068]cJfHbase的信息反饋,根據技術人員的設計要求,進行格式轉換,以顯示給用戶所需格式和類型的結果。[0069]這里,當用戶選擇斷開Hbase時,客戶端調用Thrift接口斷開與Hbase數據庫的連接,將isConnect1n設置為false,系統退出。[0070]雖然本申請所揭露的實施方式如上,但所述的內容僅為便于理解本申請而采用的實施方式,并非用以限定本申請。任何本申請所屬領域內的技術人員,在不脫離本申請所揭露的精神和范圍的前提下,可以在實施的形式及細節上進行任何的修改與變化,但本申請的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。【權利要求】1.一種實現Windows下連接控制Hbase的方法,其特征在于,封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hadoop數據庫Hbase元數據的函數;還包括:當用戶訪問Hbase時,建立HBase服務器Server與Hbase的連接;HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase02.根據權利要求1所述的方法,其特征在于,所述封裝的功能函數及獲取Hadoop數據庫Hbase元數據的函數中還添加有接口檢查函數;所述將執行請求和執行封裝的功能函數發往Hbase之前,該方法還包括:利用接口檢查函數對所述Thrift的API訪問接口與Hbase的連接進行檢查;當檢查出所述Thrift的API訪問接口與Hbase未連接時,進行一次連接后,再執行所述將所述執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟;否則,直接執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟。3.根據權利要求1所述的方法,其特征在于,所述封裝的功能函數及獲取Hbase元數據的函數中還添加有格式轉換的函數;Hbase在執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,格式轉換的函數對返回結果進行格式轉換后進行反饋。4.根據權利要求1所述的方法,其特征在于,所述功能函數及獲取Hbase元數據的函數通過C#語言編寫。5.根據權利要求1所述的方法,其特征在于,所述封裝的方法包括:數據定義語言DDL和數據操作語言DML的封裝方法。6.一種實現Windows下連接控制Hbase的裝置,其特征在于,包括:封裝單元、連接單元和執行反饋單元;其中,封裝單元,用于封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hadoop數據庫Hbase元數據的函數;連接單元,用于當用戶訪問Hbase時,建立HBase服務器Server與Hbase的連接;執行單元,用于通過HBaseServer將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase。7.根據權利要求6所述的裝置,其特征在于,該裝置還包括接口檢查單元,用于封裝的功能函數及獲取Hadoop數據庫Hbase元數據的函數中還添加有接口檢查函數,在所述將執行請求和執行封裝的功能函數發往Hbase之前,利用接口檢查函數對所述Thrift的API訪問接口與Hbase的連接進行檢查;當檢查出所述Thrift的API訪問接口與Hbase未連接時,進行一次連接后,再執行所述將所述執行請求和執行封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟;否則,直接執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數發往Hbase的步驟。8.根據權利要求6所述的裝置,其特征在于,該裝置還包括格式轉換單元,用于在封裝的功能函數及獲取Hbase元數據的函數中添加格式轉換的函數;當Hbase在執行所述將執行請求和執行的封裝的功能函數及獲取Hbase元數據的函數返回執行的結果時,格式轉換的函數對返回結果進行格式轉換后進行反饋。9.根據權利要求6所述的裝置,其特征在于,所述功能函數通過C#語言編寫。10.根據權利要求6所述的方法,其特征在于,封裝單元,具體用于通過數據定義語言DDL和數據操作語言DML的封裝所有Thrift的應用程序編程接口API的訪問接口的功能函數及獲取Hbase元數據的函數。【文檔編號】G06F17/30GK104036006SQ201410279863【公開日】2014年9月10日申請日期:2014年6月20日優先權日:2014年6月20日【發明者】曹連超,盧軍佐,辛國茂,亓開元,趙仁明,房體盈申請人:浪潮(北京)電子信息產業有限公司