一種基于python的hbasejdbc連接方法【專(zhuān)利摘要】本發(fā)明提供一種基于python的hbasejdbc連接方法,屬于IT通信業(yè)【
技術(shù)領(lǐng)域:
】,本發(fā)明本發(fā)明采用python語(yǔ)言實(shí)現(xiàn),通過(guò)對(duì)HBase的jdbc接口進(jìn)行封裝在客戶(hù)端遠(yuǎn)程控制HBase數(shù)據(jù)庫(kù),實(shí)現(xiàn)DDL、DML和查詢(xún)HBase元數(shù)據(jù)等數(shù)據(jù)庫(kù)操作,將方法的代碼封裝成python模塊可以供其它語(yǔ)言連接HBase的需求,方便了跨平臺(tái)的HBase數(shù)據(jù)庫(kù)遠(yuǎn)程調(diào)用和開(kāi)發(fā)。【專(zhuān)利說(shuō)明】—種基于python的hbasejdbc連接方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及IT通信業(yè)技術(shù),尤其涉及一種基于python的hbasejdbc連接方法,HBase是一款應(yīng)用廣泛的Nosql數(shù)據(jù)庫(kù),本發(fā)明是解決使用python語(yǔ)言連接HBase問(wèn)題。【
背景技術(shù):
】[0002]近年來(lái),包括互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計(jì)算等信息技術(shù)在內(nèi)的IT通信業(yè)迅速發(fā)展,數(shù)據(jù)的快速增長(zhǎng)成了許多行業(yè)共同面對(duì)的嚴(yán)峻挑戰(zhàn)和寶貴機(jī)遇,因此現(xiàn)代信息社會(huì)已經(jīng)進(jìn)入了大數(shù)據(jù)時(shí)代。大數(shù)據(jù)改變的不只是人們的日常生活和工作模式、企業(yè)運(yùn)作和經(jīng)營(yíng)模式,甚至還引起科學(xué)研究模式的根本性改變。一般意義上,大數(shù)據(jù)是指無(wú)法在一定時(shí)間內(nèi)用常規(guī)機(jī)器和軟硬件工具對(duì)其進(jìn)行感知、獲取、管理、處理和服務(wù)的數(shù)據(jù)集合。[0003]HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于FayChang所撰寫(xiě)的Google論文“Bigtable:—個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(FileSystem)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在hdfs之上提供了類(lèi)似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。[0004]HBase是一款基于java語(yǔ)言開(kāi)發(fā)的開(kāi)源Nosql數(shù)據(jù)庫(kù)。HBase分布式數(shù)據(jù)庫(kù)采用Java語(yǔ)言開(kāi)發(fā),提供了豐富的JavaAPI,所以目前開(kāi)發(fā)基于HBase的數(shù)據(jù)庫(kù)存取系統(tǒng)大都采用Java語(yǔ)言調(diào)用HBase提供的API實(shí)現(xiàn),該方法比較適合用Java語(yǔ)言開(kāi)發(fā)的項(xiàng)目,但是對(duì)于非java語(yǔ)言開(kāi)發(fā)的項(xiàng)目的連接要求就需要提供各種接口技術(shù)予以實(shí)現(xiàn)。Python語(yǔ)法簡(jiǎn)潔而清晰,具有豐富和強(qiáng)大的類(lèi)庫(kù)。它常被昵稱(chēng)為膠水語(yǔ)言,它能夠把用其他語(yǔ)言制作的各種模塊很輕松地聯(lián)結(jié)在一起,眾多開(kāi)源的計(jì)算軟件包都提供了Python的調(diào)用接口。現(xiàn)今HBase對(duì)于非java語(yǔ)言的連接支持大部分是以Thrift實(shí)現(xiàn)的,但該方法主要是以HBaseApi接口的形式實(shí)現(xiàn)的無(wú)法支持sql語(yǔ)言的訪(fǎng)問(wèn),元數(shù)據(jù)的讀取也不是很方便?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明采用python語(yǔ)言實(shí)現(xiàn),通過(guò)對(duì)HBase的jdbc接口進(jìn)行封裝在客戶(hù)端遠(yuǎn)程控制HBase數(shù)據(jù)庫(kù),實(shí)現(xiàn)DDL、DML和查詢(xún)HBase元數(shù)據(jù)等數(shù)據(jù)庫(kù)操作,將方法的代碼封裝成python模塊可以供其它語(yǔ)言連接HBase的需求,方便了跨平臺(tái)的HBase數(shù)據(jù)庫(kù)遠(yuǎn)程調(diào)用和開(kāi)發(fā)。為了保證數(shù)據(jù)庫(kù)操作的安全可靠,本發(fā)明實(shí)現(xiàn)了一種穩(wěn)定的客戶(hù)端到數(shù)據(jù)庫(kù)服務(wù)器的連接機(jī)制。本發(fā)明在實(shí)際項(xiàng)目中得到不錯(cuò)的應(yīng)用效果,因此本發(fā)明具有一定的應(yīng)用價(jià)值和意義。[0006]I)通過(guò)開(kāi)啟Hbase數(shù)據(jù)庫(kù)服務(wù)器端的zooke印er服務(wù)實(shí)現(xiàn)與Hbase數(shù)據(jù)庫(kù)服務(wù)器的互聯(lián)通信;2)客戶(hù)端采用python語(yǔ)言編寫(xiě),可以編譯python模塊,方便跨平臺(tái)下的二次開(kāi)發(fā);3)python客戶(hù)端封裝了jdbc客戶(hù)端,可以采用sql語(yǔ)句對(duì)Hbase數(shù)據(jù)庫(kù)進(jìn)行DDL、DML和查詢(xún)HBase元數(shù)據(jù)等操作。通過(guò)對(duì)jdbc封裝,提出了一種穩(wěn)定的Hbase數(shù)據(jù)庫(kù)連接機(jī)制,具體包括:a)Hbase數(shù)據(jù)庫(kù)服務(wù)器端開(kāi)啟zooke印er服務(wù),用戶(hù)輸入要連接的服務(wù)器IP和zookeeper中的rootnode;b)用戶(hù)請(qǐng)求連接Hbase數(shù)據(jù)庫(kù),python客戶(hù)端調(diào)用jdbc接口與服務(wù)器建立連接,如果連接成功,bool型變量isConnect1n的值設(shè)為true,否則設(shè)為false,并將結(jié)果反饋給用戶(hù);c)用戶(hù)請(qǐng)求對(duì)Hbase數(shù)據(jù)庫(kù)進(jìn)行遠(yuǎn)程操作,python客戶(hù)端首先檢查isConnect1n的值是否為true,isConnect1n的值為true則對(duì)用戶(hù)輸入的數(shù)據(jù)庫(kù)操作參數(shù)進(jìn)行格式轉(zhuǎn)換,并調(diào)用jdbc接口進(jìn)行數(shù)據(jù)庫(kù)操作;isConnect1n的值為false則重新與Hbase服務(wù)器建立連接I次,連接成功則isConnect1n的值設(shè)為true,對(duì)輸入?yún)?shù)進(jìn)行格式轉(zhuǎn)換,并調(diào)用jdbc接口進(jìn)行數(shù)據(jù)庫(kù)操作;連接失敗則isConnect1n的值設(shè)為false,退出Hbase的操作;d)用戶(hù)請(qǐng)求斷開(kāi)Hbase數(shù)據(jù)庫(kù)的互聯(lián),python客戶(hù)端調(diào)用jdbc接口斷開(kāi)連接,并將isConnect1n的值設(shè)置為false。[0007]本發(fā)明的有益效果是:1、能夠在跨平臺(tái)應(yīng)用中對(duì)Hbase數(shù)據(jù)庫(kù)進(jìn)行DDL、DML和獲得元數(shù)據(jù)等操作;2、該方法操作簡(jiǎn)單,試用多種版本的Hbase,并可以在該方法基礎(chǔ)上開(kāi)發(fā)多種跨平臺(tái)的HBase數(shù)據(jù)庫(kù)系統(tǒng);3、提出一種穩(wěn)定的Hbase數(shù)據(jù)庫(kù)連接機(jī)制,保證數(shù)據(jù)庫(kù)連接的準(zhǔn)確性;4、有效的提聞了業(yè)務(wù)質(zhì)量?!緦?zhuān)利附圖】【附圖說(shuō)明】[0008]附圖1連接HBase操作流程圖?!揪唧w實(shí)施方式】[0009]下面參照附圖,以一個(gè)具體實(shí)例來(lái)描述本發(fā)明遠(yuǎn)程控制Hbase數(shù)據(jù)庫(kù)的過(guò)程和本發(fā)明安全穩(wěn)定的Hbase數(shù)據(jù)庫(kù)連接方法。[0010]步驟如下:1)客戶(hù)端輸入Hbase服務(wù)器IP和zookeeper中的rootnode;2)客戶(hù)端調(diào)用jdbc接口與Hbase服務(wù)器建立連接,連接成功將isConnect1n參數(shù)設(shè)置為true,連接失敗則系統(tǒng)退出;3)連接成功之后,用戶(hù)可以在客戶(hù)端發(fā)起一系列的Hbase操作請(qǐng)求,對(duì)Hbase進(jìn)行遠(yuǎn)程控制,下面參照附圖1對(duì)Hbase的遠(yuǎn)程操作流程進(jìn)行詳細(xì)說(shuō)明:a)客戶(hù)端輸入數(shù)據(jù)庫(kù)操作的參數(shù);b)判斷isConnect1n是否為true,isConnect1n為true則跳轉(zhuǎn)到步驟c),isConnect1n為false則跳轉(zhuǎn)到步驟d);c)客戶(hù)端調(diào)用jdbc進(jìn)行遠(yuǎn)程的Hbase操作,將返回結(jié)果進(jìn)行預(yù)處理然后將結(jié)果顯示到客戶(hù)端,跳轉(zhuǎn)到步驟f);d)重復(fù)與Hbase建立連接,然后跳轉(zhuǎn)到步驟e);e)重復(fù)判斷isConnect1n是否為true,isConnect1n為true則跳轉(zhuǎn)到步驟C),isConnect1n為false則跳轉(zhuǎn)到步驟f);f)遠(yuǎn)程控制Hbase數(shù)據(jù)庫(kù)操作結(jié)束;g)用戶(hù)進(jìn)行其他數(shù)據(jù)庫(kù)的操作,客戶(hù)端重復(fù)進(jìn)行步驟3)的操作;h)用戶(hù)選擇斷開(kāi)Hbase數(shù)據(jù)庫(kù),客戶(hù)端調(diào)用jdbc接口斷開(kāi)與Hbase數(shù)據(jù)庫(kù)連接,將isConnect1n設(shè)置為false,系統(tǒng)退出。【權(quán)利要求】1.一種基于python的hbasejdbc連接方法,其特征在于,具體包括:a)Hbase數(shù)據(jù)庫(kù)服務(wù)器端開(kāi)啟zooke印er服務(wù),用戶(hù)輸入要連接的服務(wù)器IP和zookeeper中的rootnode;b)用戶(hù)請(qǐng)求連接Hbase數(shù)據(jù)庫(kù),python客戶(hù)端調(diào)用jdbc接口與服務(wù)器建立連接,如果連接成功,bool型變量isConnect1n的值設(shè)為true,否則設(shè)為false,并將結(jié)果反饋給用戶(hù);c)用戶(hù)請(qǐng)求對(duì)Hbase數(shù)據(jù)庫(kù)進(jìn)行遠(yuǎn)程操作,python客戶(hù)端首先檢查isConnect1n的值是否為true,isConnect1n的值為true則對(duì)用戶(hù)輸入的數(shù)據(jù)庫(kù)操作參數(shù)進(jìn)行格式轉(zhuǎn)換,并調(diào)用jdbc接口進(jìn)行數(shù)據(jù)庫(kù)操作;isConnect1n的值為false則重新與Hbase服務(wù)器建立連接I次,連接成功則isConnect1n的值設(shè)為true,對(duì)輸入?yún)?shù)進(jìn)行格式轉(zhuǎn)換,并調(diào)用jdbc接口進(jìn)行數(shù)據(jù)庫(kù)操作;連接失敗則isConnect1n的值設(shè)為false,退出Hbase的操作;d)用戶(hù)請(qǐng)求斷開(kāi)Hbase數(shù)據(jù)庫(kù)的互聯(lián),python客戶(hù)端調(diào)用jdbc接口斷開(kāi)連接,并將isConnect1n的值設(shè)置為false。2.根據(jù)權(quán)利要求1所述的方法,其特征在于通過(guò)Hbase數(shù)據(jù)庫(kù)服務(wù)器端的zooke印r服務(wù)實(shí)現(xiàn)與Hbase數(shù)據(jù)庫(kù)服務(wù)器的互聯(lián)通信。3.根據(jù)權(quán)利要求1所述的方法,其特征在于使用sql語(yǔ)句對(duì)Hbase數(shù)據(jù)庫(kù)進(jìn)行DDL、DML和查詢(xún)HBase元數(shù)據(jù)操作。【文檔編號(hào)】G06F17/30GK104376102SQ201410686546【公開(kāi)日】2015年2月25日申請(qǐng)日期:2014年11月26日優(yōu)先權(quán)日:2014年11月26日【發(fā)明者】盧軍佐,曹連超,辛國(guó)茂,亓開(kāi)元,趙仁明,房體盈申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司