本發(fā)明涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
:,更具體地說,涉及一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法、hbase終端及存儲(chǔ)介質(zhì)。
背景技術(shù):
::隨著互聯(lián)網(wǎng)、云計(jì)算等信息技術(shù)在內(nèi)的通信行業(yè)的迅速發(fā)展,對(duì)數(shù)據(jù)信息進(jìn)行有效應(yīng)用和管理成為企業(yè)發(fā)展的挑戰(zhàn)和機(jī)遇,現(xiàn)代社會(huì)進(jìn)入了大數(shù)據(jù)發(fā)展時(shí)代。hbase(hadoopdatabase)數(shù)據(jù)庫屬于hadoop的數(shù)據(jù)庫,是一個(gè)具有高可靠性、高性能、面向列、可伸縮的分布式開源數(shù)據(jù)庫?;趆adoop分布式文件系統(tǒng)(hadoopdistributedfilesystem,hdfs)的hbase,模仿并提供了基于google文件系統(tǒng)的bigtable數(shù)據(jù)庫的所有功能。通過hbase可以實(shí)現(xiàn)在普通的pcserver上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群,進(jìn)而實(shí)現(xiàn)對(duì)龐大的數(shù)據(jù)表格的信息處理,達(dá)到采用普通的pc處理超過十億行的、數(shù)百萬列元素組成的數(shù)據(jù)表。用戶通過客戶端將數(shù)據(jù)存儲(chǔ)到hbase表時(shí),每一次數(shù)據(jù)寫入(put操作)都需要客戶端調(diào)用一次rpc(remoteprocedurecallprotocol,遠(yuǎn)程過程調(diào)用協(xié)議)操作,以將相應(yīng)的數(shù)據(jù)送往服務(wù)器中,然后通過服務(wù)器將其存儲(chǔ)到hbase表中。在每次寫入的數(shù)據(jù)量較大時(shí),這種處理方式一般不會(huì)產(chǎn)生任何影響,但是若每次寫入的數(shù)據(jù)量較小,例如幾百行、上千行的數(shù)據(jù),這種小數(shù)據(jù)量的寫入同樣這也需要客戶端調(diào)用一次rpc操作才能將其送往服務(wù)器中。特別是當(dāng)多次持續(xù)地小數(shù)據(jù)寫入時(shí),需要客戶端不斷地為各個(gè)需要寫入的小數(shù)據(jù)分別調(diào)用一次rpc操作。這種寫入方式無疑會(huì)浪費(fèi)客戶端的處理資源,也會(huì)耗費(fèi)較多的時(shí)間。因此,現(xiàn)有的hbase在客戶端中內(nèi)置了一個(gè)writebuffer(寫緩存區(qū)),以用于負(fù)責(zé)收集待寫入的數(shù)據(jù),將客戶端中需要寫入的多個(gè)待寫入業(yè)務(wù)數(shù)據(jù)集中暫時(shí)存儲(chǔ)在該writebuffer中,并在writebuffer存滿(到達(dá)預(yù)設(shè)閾值)時(shí),客戶端通過調(diào)用一次rpc操作將當(dāng)前存儲(chǔ)在writebuffer中的所有數(shù)據(jù)一次性送往服務(wù)器。進(jìn)而極大程度地降低客戶端數(shù)據(jù)寫入過程的資源占用,有利于提高數(shù)據(jù)寫入效率。但是,當(dāng)啟動(dòng)writebuffer這種機(jī)制后,客戶端只有在writebuffer存滿之后才會(huì)將其送往服務(wù)器進(jìn)行存儲(chǔ)。也就是說,若writebuffer長時(shí)間處于未存滿狀態(tài)時(shí),就會(huì)出現(xiàn)當(dāng)前存儲(chǔ)在writebuffer中的數(shù)據(jù)將一直暫存在writebuffer中,不能及時(shí)被送往服務(wù)器進(jìn)行存儲(chǔ)的情況,這將導(dǎo)致不能快速及時(shí)地將待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase表的問題,也即是其他需要獲取該數(shù)據(jù)的客戶端無法通過服務(wù)器及時(shí)地獲取到該數(shù)據(jù),造成業(yè)務(wù)上的數(shù)據(jù)無法同步的問題。另外,現(xiàn)有的hbase寫入過程還提供了一種用戶手動(dòng)強(qiáng)制寫入的方式:在將相應(yīng)的待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在writebuffer后,用戶可以手動(dòng)強(qiáng)制地將該待寫入業(yè)務(wù)數(shù)據(jù)發(fā)送給服務(wù)器進(jìn)行存儲(chǔ)。但是,這種手動(dòng)強(qiáng)制寫入的方式顯然不方便用戶使用,也違背了客戶端writebuffer設(shè)計(jì)的初衷。技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的技術(shù)問題在于:現(xiàn)有的hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方式是基于writebuffer設(shè)置的閾值或用戶手動(dòng)強(qiáng)制寫入的方式來控制待寫入業(yè)務(wù)數(shù)據(jù)的寫入過程,無法很好地保證待寫入業(yè)務(wù)數(shù)據(jù)的寫入時(shí)間,從而導(dǎo)致業(yè)務(wù)上的數(shù)據(jù)丟失、無法獲取的問題。針對(duì)該技術(shù)問題,提供一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法、hbase終端及存儲(chǔ)介質(zhì)。為解決上述技術(shù)問題,本發(fā)明提供一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法,所述hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法包括:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù);將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中;在預(yù)設(shè)時(shí)間周期到達(dá)且所述緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。進(jìn)一步地,所述預(yù)設(shè)時(shí)間周期根據(jù)產(chǎn)生所述待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)所允許的業(yè)務(wù)數(shù)據(jù)時(shí)延進(jìn)行設(shè)置。進(jìn)一步地,在所述預(yù)設(shè)時(shí)間周期達(dá)到之前,還包括:判斷所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,如是,將所述當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到所述hbase數(shù)據(jù)庫;或,判斷是否接收到數(shù)據(jù)刷寫控制指令,如是,將所述當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到所述hbase數(shù)據(jù)庫。進(jìn)一步地,在所述預(yù)設(shè)時(shí)間周期達(dá)到之前,將所述當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到所述hbase數(shù)據(jù)庫后,還包括:將當(dāng)前計(jì)時(shí)時(shí)間清零重新開始計(jì)時(shí)。進(jìn)一步地,所述預(yù)設(shè)數(shù)據(jù)量門限根據(jù)預(yù)設(shè)時(shí)間周期內(nèi)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小設(shè)置;或,根據(jù)所述hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小設(shè)置。本發(fā)明提供了一種hbase終端,所述hbase終端包括:處理器、存儲(chǔ)器及通信總線;所述通信總線用于實(shí)現(xiàn)處理器和存儲(chǔ)器之間的連接通信;所述處理器用于執(zhí)行存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù);將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中;判斷預(yù)設(shè)時(shí)間周期到達(dá)且所述緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。進(jìn)一步地,在所述判斷預(yù)設(shè)時(shí)間周期達(dá)到之前,所述處理器還用于執(zhí)行所述數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:判斷所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,如是,將所述當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到所述hbase數(shù)據(jù)庫;或,判斷是否接收到數(shù)據(jù)刷寫控制指令,如是,將所述當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到所述hbase數(shù)據(jù)庫。進(jìn)一步地,在所述預(yù)設(shè)時(shí)間周期達(dá)到之前,將所述當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到所述hbase數(shù)據(jù)庫后,所述處理器還用于執(zhí)行所述數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:將當(dāng)前計(jì)時(shí)時(shí)間清零重新開始計(jì)時(shí)。進(jìn)一步地,所述處理器還用于執(zhí)行所述數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:根據(jù)產(chǎn)生所述待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)所允許的業(yè)務(wù)數(shù)據(jù)時(shí)延設(shè)置預(yù)設(shè)時(shí)間周期;根據(jù)預(yù)設(shè)時(shí)間周期內(nèi)所述hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小設(shè)置預(yù)設(shè)數(shù)據(jù)量門限,或根據(jù)所述hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小設(shè)置預(yù)設(shè)數(shù)據(jù)量門限。本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有數(shù)據(jù)寫入程序,所述數(shù)據(jù)寫入程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上面所述的hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法的步驟。有益效果本發(fā)明提供一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法、hbase終端及存儲(chǔ)介質(zhì),所述hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法包括:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù);將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中;在預(yù)設(shè)時(shí)間周期到達(dá)且所述緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。通過定時(shí)地檢測writebuffer中是否存在數(shù)據(jù),如果存在則直接將該數(shù)據(jù)刷寫到服務(wù)器以存儲(chǔ)到hbase表中,不需要用戶每次手動(dòng)地將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,提升了用戶體驗(yàn);也能夠盡可能及時(shí)地將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,避免了通過writebuffer設(shè)置閾值的方式來控制待寫入業(yè)務(wù)數(shù)據(jù)的寫入,無法保證將該待寫入數(shù)據(jù)及時(shí)地刷寫到服務(wù)器,導(dǎo)致業(yè)務(wù)上的數(shù)據(jù)丟失、無法獲取的問題,提升了用戶體驗(yàn)。附圖說明下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中:圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例一個(gè)可選的移動(dòng)終端的結(jié)構(gòu)示意圖;圖2為本發(fā)明第一實(shí)施例提供的一種hbase終端的數(shù)據(jù)寫入方法流程示意圖;圖3為本發(fā)明第一實(shí)施例提供的一種計(jì)時(shí)監(jiān)測方式的示意圖;圖4為本發(fā)明第一實(shí)施例提供的另一種計(jì)時(shí)監(jiān)測方式的示意圖;圖5為本發(fā)明第一實(shí)施例提供的另一種hbase終端的數(shù)據(jù)寫入方法流程示意圖;圖6為本發(fā)明第二實(shí)施例提供的一種hbase終端的數(shù)據(jù)寫入方法流程示意圖;圖7為本發(fā)明第三實(shí)施例提供的一種hbase終端結(jié)構(gòu)示意圖。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身沒有特定的意義。因此,“模塊”、“部件”或“單元”可以混合地使用。終端可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如手機(jī)、平板電腦、筆記本電腦、掌上電腦、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、便捷式媒體播放器(portablemediaplayer,pmp)、導(dǎo)航裝置、可穿戴設(shè)備、智能手環(huán)、計(jì)步器等移動(dòng)終端,以及諸如數(shù)字tv、臺(tái)式計(jì)算機(jī)等固定終端。后續(xù)描述中將以移動(dòng)終端為例進(jìn)行說明,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。請參閱圖1,其為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的一種移動(dòng)終端的硬件結(jié)構(gòu)示意圖,該移動(dòng)終端100可以包括:rf(radiofrequency,射頻)單元101、wifi模塊102、音頻輸出單元103、a/v(音頻/視頻)輸入單元104、傳感器105、顯示單元106、用戶輸入單元107、接口單元108、存儲(chǔ)器109、處理器110、以及電源111等部件。本領(lǐng)域技術(shù)人員可以理解,圖1中示出的移動(dòng)終端結(jié)構(gòu)并不構(gòu)成對(duì)移動(dòng)終端的限定,移動(dòng)終端可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。下面結(jié)合圖1對(duì)移動(dòng)終端的各個(gè)部件進(jìn)行具體的介紹:射頻單元101可用于收發(fā)信息或通話過程中,信號(hào)的接收和發(fā)送,具體的,將基站的下行信息接收后,給處理器110處理;另外,將上行的數(shù)據(jù)發(fā)送給基站。通常,射頻單元101包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器、雙工器等。此外,射頻單元101還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動(dòng)通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無線服務(wù))、cdma2000(codedivisionmultipleaccess2000,碼分多址2000)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時(shí)分同步碼分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,頻分雙工長期演進(jìn))和tdd-lte(timedivisionduplexing-longtermevolution,分時(shí)雙工長期演進(jìn))等。wifi屬于短距離無線傳輸技術(shù),移動(dòng)終端通過wifi模塊102可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖1示出了wifi模塊102,但是可以理解的是,其并不屬于移動(dòng)終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。音頻輸出單元103可以在移動(dòng)終端100處于呼叫信號(hào)接收模式、通話模式、記錄模式、語音識(shí)別模式、廣播接收模式等等模式下時(shí),將射頻單元101或wifi模塊102接收的或者在存儲(chǔ)器109中存儲(chǔ)的音頻數(shù)據(jù)轉(zhuǎn)換成音頻信號(hào)并且輸出為聲音。而且,音頻輸出單元103還可以提供與移動(dòng)終端100執(zhí)行的特定功能相關(guān)的音頻輸出(例如,呼叫信號(hào)接收聲音、消息接收聲音等等)。音頻輸出單元103可以包括揚(yáng)聲器、蜂鳴器等等。a/v輸入單元104用于接收音頻或視頻信號(hào)。a/v輸入單元104可以包括圖形處理器(graphicsprocessingunit,gpu)和麥克風(fēng),圖形處理器對(duì)在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置(如攝像頭)獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進(jìn)行處理。處理后的圖像幀可以顯示在顯示單元106上。經(jīng)圖形處理器處理后的圖像幀可以存儲(chǔ)在存儲(chǔ)器109(或其它存儲(chǔ)介質(zhì))中或者經(jīng)由射頻單元101或wifi模塊102進(jìn)行發(fā)送。麥克風(fēng)可以在電話通話模式、記錄模式、語音識(shí)別模式等等運(yùn)行模式中經(jīng)由麥克風(fēng)接收聲音(音頻數(shù)據(jù)),并且能夠?qū)⑦@樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語音)數(shù)據(jù)可以在電話通話模式的情況下轉(zhuǎn)換為可經(jīng)由射頻單元101發(fā)送到移動(dòng)通信基站的格式輸出。麥克風(fēng)可以實(shí)施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發(fā)送音頻信號(hào)的過程中產(chǎn)生的噪聲或者干擾。移動(dòng)終端100還包括至少一種傳感器105,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板的亮度,接近傳感器可在移動(dòng)終端100移動(dòng)到耳邊時(shí),關(guān)閉顯示面板和/或背光。作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于手機(jī)還可配置的指紋傳感器、壓力傳感器、虹膜傳感器、分子傳感器、陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。顯示單元106用于顯示由用戶輸入的信息或提供給用戶的信息。顯示單元106可包括顯示面板,可以采用液晶顯示器(liquidcrystaldisplay,lcd)、有機(jī)發(fā)光二極管(organiclight-emittingdiode,oled)等形式來配置顯示面板。用戶輸入單元107可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動(dòng)終端的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。具體地,用戶輸入單元107可包括觸控面板以及其他輸入設(shè)備。觸控面板,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板上或在觸控面板附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置。觸控面板可包括觸摸檢測裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器110,并能接收處理器110發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板。除了觸控面板,用戶輸入單元107還可以包括其他輸入設(shè)備。具體地,其他輸入設(shè)備可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種,具體此處不做限定。進(jìn)一步的,觸控面板可覆蓋顯示面板,當(dāng)觸控面板檢測到在其上或附近的觸摸操作后,傳送給處理器110以確定觸摸事件的類型,隨后處理器110根據(jù)觸摸事件的類型在顯示面板上提供相應(yīng)的視覺輸出。雖然在圖1中,觸控面板與顯示面板是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)移動(dòng)終端的輸入和輸出功能,但是在某些實(shí)施例中,可以將觸控面板與顯示面板集成而實(shí)現(xiàn)移動(dòng)終端的輸入和輸出功能,具體此處不做限定。接口單元108用作至少一個(gè)外部裝置與移動(dòng)終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口、音頻輸入/輸出(i/o)端口、視頻i/o端口、耳機(jī)端口等等。接口單元108可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿?dòng)終端100內(nèi)的一個(gè)或多個(gè)元件或者可以用于在移動(dòng)終端100和外部裝置之間傳輸數(shù)據(jù)。存儲(chǔ)器109可用于存儲(chǔ)軟件程序以及各種數(shù)據(jù)。存儲(chǔ)器109可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器109可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。處理器110是移動(dòng)終端的控制中心,利用各種接口和線路連接整個(gè)移動(dòng)終端的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器109內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器109內(nèi)的數(shù)據(jù),執(zhí)行移動(dòng)終端的各種功能和處理數(shù)據(jù),從而對(duì)移動(dòng)終端進(jìn)行整體監(jiān)控。處理器110可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器110可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器110中。移動(dòng)終端100還可以包括給各個(gè)部件供電的電源111(比如電池),優(yōu)選的,電源111可以通過電源管理系統(tǒng)與處理器110邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。盡管圖1未示出,移動(dòng)終端100還可以包括藍(lán)牙模塊等,在此不再贅述。基于上述移動(dòng)終端硬件結(jié)構(gòu),提出本發(fā)明方法各個(gè)實(shí)施例。第一實(shí)施例參照圖2,圖2為本發(fā)明第一實(shí)施例提供的一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法流程示意圖,所述數(shù)據(jù)寫入方法包括:s21:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù)。獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù),可以通過hbase終端來獲取待寫入業(yè)務(wù)數(shù)據(jù),也可以是其他終端或者設(shè)備獲取需要寫入到hbase數(shù)據(jù)庫的待寫入數(shù)據(jù),再發(fā)送給hbase終端以將其存儲(chǔ)到hbase數(shù)據(jù)庫中。待寫入業(yè)務(wù)數(shù)據(jù)可以是任意數(shù)據(jù)類型的數(shù)據(jù),在本實(shí)施例中不做限制。具體可以是某公司的物品采購信息、運(yùn)營財(cái)務(wù)報(bào)表、公司員工個(gè)人信息等、或者是某事業(yè)單位的人事結(jié)構(gòu)、部門職能介紹信息等,或者某視頻網(wǎng)站的視頻內(nèi)容信息、文字圖片信息等,在此不再一一舉例說明。s22:將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中。在獲取到相應(yīng)的待寫入業(yè)務(wù)數(shù)據(jù)后,將該待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)(writebuffer)中。其中,hbase終端可以理解為安裝有hbase客戶端的終端,具體的hbase終端例如可以是一臺(tái)hbase客戶端的計(jì)算機(jī),當(dāng)然,也可以是其他安裝有hbase客戶端的電子設(shè)備。hbase終端的writebuffer通常是基于該hbase終端的內(nèi)存進(jìn)行設(shè)置的。以一臺(tái)lowcast(廉價(jià))的計(jì)算機(jī)為例,通常其內(nèi)存可能是2g的ram、或者4g的ram等,因此基于hbase終端的內(nèi)存進(jìn)行設(shè)置的writebuffer的大小必然應(yīng)當(dāng)遠(yuǎn)小于該內(nèi)存的數(shù)值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白的是,hbase客戶端中內(nèi)置的writebuffer機(jī)制默認(rèn)是處于禁用狀態(tài)的,而本實(shí)施例提供的數(shù)據(jù)寫入方式是在writebuffer機(jī)制啟用下進(jìn)行的,因此需要對(duì)hbase客戶端的writebuffer的狀態(tài)設(shè)置為“啟用”狀態(tài)。具體可以將autoflush(自動(dòng)刷寫)關(guān)閉,以此來啟用writebuffer??梢酝ㄟ^如下修改實(shí)現(xiàn):table.setautoflush(false);table.flushcommits();在成功啟用writebuffer后,當(dāng)hbase終端獲取到需要寫入到hbase表中的待寫入業(yè)務(wù)數(shù)據(jù)時(shí),hbase終端將直接把該待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到writebuffer中。s23:在預(yù)設(shè)時(shí)間周期到達(dá)且該緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。本實(shí)施例中,hbase終端可以對(duì)預(yù)設(shè)時(shí)間周期進(jìn)行計(jì)時(shí)監(jiān)測,并在判斷預(yù)設(shè)時(shí)間周期到達(dá)時(shí),將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器以進(jìn)行存儲(chǔ)。進(jìn)一步地,hbase終端還可以判斷該writebuffer中的數(shù)據(jù)量是否為零,也即是判斷writebuffer中當(dāng)前是否存在需要寫入的待寫入業(yè)務(wù)數(shù)據(jù),只有在預(yù)設(shè)時(shí)間周期到達(dá)且該writebuffer中存在需要寫入的待寫入業(yè)務(wù)數(shù)據(jù)時(shí),再將該待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。本實(shí)施例中,預(yù)設(shè)時(shí)間周期是根據(jù)待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)所允許的業(yè)務(wù)數(shù)據(jù)時(shí)延進(jìn)行設(shè)置的。以保證在業(yè)務(wù)允許的時(shí)延范圍內(nèi)hbase終端自動(dòng)地將相應(yīng)的待寫入數(shù)據(jù)業(yè)務(wù)刷寫到服務(wù)器進(jìn)行存儲(chǔ),一方面對(duì)用戶來說,能夠有效避免基于writebuffer設(shè)置的閾值來刷寫待寫入業(yè)務(wù)數(shù)據(jù)導(dǎo)致的長時(shí)間無法刷寫到服務(wù)器的問題,解決了若希望及時(shí)將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器則需要用戶手動(dòng)強(qiáng)制刷寫,不方便用戶使用的問題,因此有利于提升用戶體驗(yàn);另一方面,對(duì)hbase終端以及服務(wù)器來說,因?yàn)閔base終端可以對(duì)在預(yù)設(shè)時(shí)間周期內(nèi)獲取到的待寫入業(yè)務(wù)數(shù)據(jù),只需要調(diào)用一次rpc操作即可將其刷寫到服務(wù)器,而不必為每一個(gè)待寫入業(yè)務(wù)數(shù)據(jù)分別調(diào)用一次rpc操作,對(duì)應(yīng)的,服務(wù)器也可以通過調(diào)用一個(gè)處理線程將這些待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在hbase表中,而不必多次調(diào)用。因此有利于減少hbase終端以及服務(wù)器的處理負(fù)荷,提高業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)效率。例如,待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)說允許的業(yè)務(wù)數(shù)據(jù)時(shí)延是2秒,具體可以是從hbase終端獲取到該待寫入業(yè)務(wù)數(shù)據(jù)開始(或者說是存儲(chǔ)到writebuffer開始),直到該待寫入業(yè)務(wù)數(shù)據(jù)成功刷寫到服務(wù)器(或者說是其他的hbase終端能夠通過該服務(wù)器獲取到該待寫入業(yè)務(wù)數(shù)據(jù))的整個(gè)過程所花費(fèi)的時(shí)間最長為2秒。此時(shí),預(yù)設(shè)時(shí)間周期可以設(shè)置為2秒,也即是每間隔2秒便將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。請參見圖3,hbase終端持續(xù)不斷地進(jìn)行計(jì)時(shí)監(jiān)測,具體可以是在啟用writebuffer時(shí)開始進(jìn)行計(jì)時(shí)。待寫入業(yè)務(wù)數(shù)據(jù)a在計(jì)時(shí)到0.5秒時(shí)存儲(chǔ)到該writebuffer中;待寫入業(yè)務(wù)數(shù)據(jù)b在計(jì)時(shí)到1.5秒時(shí)存儲(chǔ)到該writebuffer中;在計(jì)時(shí)達(dá)到2秒時(shí),也即是預(yù)設(shè)時(shí)間周期到達(dá)時(shí),hbase終端將通過調(diào)用一次rpc操作將該writebuffer中的待寫入業(yè)務(wù)數(shù)據(jù)(a和b)一起刷寫到服務(wù)器中。避免hbase終端需要在0.5秒時(shí),為待寫入業(yè)務(wù)數(shù)據(jù)a調(diào)用一次rpc操作將該業(yè)務(wù)數(shù)據(jù)a刷寫到服務(wù)器,并在1.5秒時(shí),又為待寫入業(yè)務(wù)數(shù)據(jù)b調(diào)用一次rpc操作將該業(yè)務(wù)數(shù)據(jù)b刷寫到服務(wù)器。通過本實(shí)施例提供的方案,可以使hbase終端在2秒時(shí),直接通過調(diào)用一次rpc操作將該writebuffer中的待寫入業(yè)務(wù)數(shù)據(jù)(a和b)一起刷寫到服務(wù)器中,減少hbase終端的處理負(fù)荷,提高h(yuǎn)base終端的處理效率。特別是針對(duì)持續(xù)不斷地刷寫數(shù)據(jù)的情況,例如在預(yù)設(shè)時(shí)間周期需要處理的待寫入業(yè)務(wù)數(shù)據(jù)為10個(gè)、20個(gè),甚至更多時(shí),通過本實(shí)施例提供的方案更是能夠極大程度地減少hbase終端的處理負(fù)荷。本實(shí)施例還提供一種計(jì)時(shí)監(jiān)測方式,請參見圖4,這里假設(shè)預(yù)設(shè)時(shí)間周期為5秒,在啟用writebuffer時(shí)hbase并未立即開始進(jìn)行計(jì)時(shí),而是等到存在待寫入業(yè)務(wù)數(shù)據(jù)時(shí)開始計(jì)時(shí),且在預(yù)設(shè)時(shí)間周期到達(dá)后,停止計(jì)時(shí),直到再次獲取新的待寫入業(yè)務(wù)數(shù)據(jù)時(shí)再開始進(jìn)計(jì)時(shí)。具體的,hbase終端獲取到需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù)c時(shí),開始進(jìn)行計(jì)時(shí),并在計(jì)時(shí)時(shí)間為2.5秒時(shí),hbase終端又獲取到待寫入業(yè)務(wù)數(shù)據(jù)d,最終hbase終端在計(jì)時(shí)時(shí)間達(dá)到5秒時(shí),將待寫入業(yè)務(wù)數(shù)據(jù)c和d一起刷寫到服務(wù)器中。此時(shí),hbase終端停止計(jì)時(shí),等待若干時(shí)間之后,hbase終端又獲取到待寫入業(yè)務(wù)數(shù)據(jù)e,此時(shí)hbase終端再次重新開始計(jì)時(shí)。這種計(jì)時(shí)方式在存在待寫入業(yè)務(wù)數(shù)據(jù)時(shí)觸發(fā)計(jì)時(shí)監(jiān)測,避免長時(shí)間不存在待寫入業(yè)務(wù)數(shù)據(jù),hbase終端也需要執(zhí)行計(jì)時(shí)監(jiān)測的過程,浪費(fèi)hbase終端不必要的資源占用。應(yīng)當(dāng)說明的是,上述設(shè)置預(yù)設(shè)時(shí)間周期的過程并未考慮將待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到writebuffer的時(shí)間、從writebuffer刷寫到服務(wù)器的時(shí)間、以及服務(wù)器將待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase表的時(shí)間等。因此,在實(shí)際應(yīng)用場景中,若待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)所允許的業(yè)務(wù)數(shù)據(jù)時(shí)延是2秒,此時(shí)可以將預(yù)設(shè)時(shí)間周期設(shè)置為稍小于2秒,例如設(shè)置為1秒、1.5秒等。本實(shí)施例中,hbase終端在判斷預(yù)設(shè)時(shí)間周期到達(dá)時(shí),會(huì)將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,具體的,hbase終端可以調(diào)用相應(yīng)的刷寫函數(shù),例如“flushcommits()”以將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。應(yīng)當(dāng)說明的是,若writebuffer當(dāng)前不存在待寫入業(yè)務(wù)數(shù)據(jù),則不必執(zhí)行刷寫操作。請參見圖5,圖5為本發(fā)明第一實(shí)施例提供的另一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法,包括:s51:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù)。s52:將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中。對(duì)于步驟s51和s52,與上面所述的s21和s22相同,在此不再贅述。s53:計(jì)時(shí)監(jiān)測。應(yīng)當(dāng)理解的是,步驟s53中的“計(jì)時(shí)監(jiān)測”與其他各步驟之間不存在必然的順序關(guān)系,計(jì)時(shí)監(jiān)測的過程是在判斷計(jì)時(shí)時(shí)間達(dá)到時(shí),將當(dāng)前計(jì)時(shí)時(shí)間清零,還可以立即重新開始進(jìn)行計(jì)時(shí)。s54:判斷緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限;如是,轉(zhuǎn)至步驟s56;如否,轉(zhuǎn)至步驟s57。本實(shí)施例中,writebuffer預(yù)設(shè)數(shù)據(jù)量門限是根據(jù)預(yù)設(shè)時(shí)間周期內(nèi)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小進(jìn)行設(shè)置的。例如,hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小為每秒1mb,預(yù)設(shè)時(shí)間周期假設(shè)為2秒,那么在預(yù)設(shè)時(shí)間周期內(nèi)該hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小為2mb。此時(shí),writebuffer預(yù)設(shè)數(shù)據(jù)量門限可以設(shè)置為2mb、2.5mb等,使writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)時(shí)間周期的平均值左右時(shí),hbase終端可以立即將其刷寫到服務(wù)器,因?yàn)樵谶_(dá)到平均值后,一般不會(huì)存在其他比較大的待寫入業(yè)務(wù)數(shù)據(jù)需要在這個(gè)預(yù)設(shè)時(shí)間周期范圍內(nèi)刷寫到服務(wù)器,因此hbase終端可以不用在等待預(yù)設(shè)施加周期達(dá)到,直接將其刷寫到服務(wù)器,從而能更加及時(shí)地將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器中進(jìn)行存儲(chǔ),這也有利于其他需要獲取該待寫入業(yè)務(wù)數(shù)據(jù)的hbase終端更快能夠獲取該業(yè)務(wù)數(shù)據(jù)。這個(gè)平均數(shù)據(jù)量大小可以根據(jù)該hbase終端所有刷寫到服務(wù)器的數(shù)據(jù)或者一段時(shí)間內(nèi)的刷寫到服務(wù)器的數(shù)據(jù)計(jì)算得到,例如,在一分鐘之內(nèi),該hbase終端刷寫到服務(wù)器的中數(shù)據(jù)量為120mb,那么可以知道該hbase終端的平均數(shù)據(jù)量大小為2mb每秒。也可以根據(jù)待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)類型預(yù)估待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量。本實(shí)施例中,writebuffer預(yù)設(shè)數(shù)據(jù)量門限還可以根據(jù)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小進(jìn)行設(shè)置,也即是可以根據(jù)業(yè)務(wù)每次收發(fā)的實(shí)時(shí)數(shù)據(jù)進(jìn)行設(shè)置。例如,hbase終端待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)數(shù)據(jù)量大小為5mb,那么writebuffer預(yù)設(shè)數(shù)據(jù)量門限也可以設(shè)置為5mb、6mb等。writebuffer預(yù)設(shè)數(shù)據(jù)量門限具體可以通過如下方式進(jìn)行設(shè)置:setwritebuffersize(longsize);例如設(shè)置為2mb:setwritebuffersize(2097152),2mb等于2097152字節(jié)。s55:判斷是否接收到數(shù)據(jù)刷寫控制指令;如是,轉(zhuǎn)至步驟s56;如否,轉(zhuǎn)至步驟s57。步驟s55中,hbase終端可以接收數(shù)據(jù)刷寫控制指令,也即是用戶可以通過主動(dòng)刷寫待寫入業(yè)務(wù)數(shù)據(jù)到服務(wù)器。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白的是,對(duì)于步驟s54和步驟s55,兩者之間也不存在執(zhí)行的先后順序,當(dāng)s54中檢測到緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)達(dá)到預(yù)設(shè)數(shù)據(jù)量門限時(shí),則hbase終端直接調(diào)用rpc操作將其刷寫到服務(wù)器進(jìn)行存儲(chǔ)。若步驟s55判斷接收到數(shù)據(jù)刷寫控制指令時(shí),例如用戶顯式的調(diào)用數(shù)據(jù)刷寫控制指令,此時(shí)hbase終端也將直接通過rpc操作將相應(yīng)的待寫入業(yè)務(wù)數(shù)據(jù)發(fā)送給服務(wù)器進(jìn)行存儲(chǔ)。也即是說,兩者是并列關(guān)系的,只要步驟s54判斷達(dá)到預(yù)設(shè)數(shù)據(jù)量門限或者步驟s55接收到數(shù)據(jù)刷寫指令都將觸發(fā)hbase終端將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。s56:將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。在預(yù)設(shè)時(shí)間周期到達(dá)之前,步驟s54判斷writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量大小到達(dá)預(yù)設(shè)數(shù)據(jù)量門限,或者步驟s55hbase終端接收到用戶下發(fā)的數(shù)據(jù)刷寫控制指令時(shí),立即將該writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。進(jìn)一步地,hbase終端還可以將當(dāng)前計(jì)時(shí)時(shí)間清零并重新開始計(jì)時(shí)。s57:在預(yù)設(shè)時(shí)間周期到達(dá)且所述緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),且該緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù),hbase終端將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。當(dāng)然,在預(yù)設(shè)時(shí)間周期達(dá)到時(shí),若該緩存區(qū)中不存在需要寫入的待寫入業(yè)務(wù)數(shù)據(jù),則不需要進(jìn)行相應(yīng)的刷寫操作。本實(shí)施例中,對(duì)于hbase終端將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase服務(wù)器并存儲(chǔ)到hbase數(shù)據(jù)庫的過程,不是本發(fā)明的重點(diǎn),可以基于現(xiàn)有的處理過程將待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase數(shù)據(jù)庫中,在此不再進(jìn)行介紹說明。應(yīng)當(dāng)理解的是,本實(shí)施例提供的hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法并不限于將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫中,本實(shí)施例提供的hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法同樣適用于將相應(yīng)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到其他數(shù)據(jù)庫進(jìn)行存儲(chǔ),例如oracle、mysql、access、memcached、cassandra、mongodb等數(shù)據(jù)庫。本實(shí)施例還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有上述的數(shù)據(jù)寫入程序,所述數(shù)據(jù)寫入程序被處理器執(zhí)行時(shí),可以實(shí)現(xiàn)上述的hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法的步驟。本實(shí)施例提供一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述hbase數(shù)據(jù)庫的數(shù)據(jù)寫入方法包括:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù);將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中;在預(yù)設(shè)時(shí)間周期到達(dá)且所述緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。通過定時(shí)地檢測writebuffer中是否存在數(shù)據(jù),如果存在則直接將該數(shù)據(jù)刷寫到服務(wù)器以存儲(chǔ)到hbase表中,如果不存在,則重新開始計(jì)時(shí),在下一個(gè)定時(shí)周期達(dá)到時(shí),再次進(jìn)行檢測等過程,能夠在業(yè)務(wù)允許的預(yù)設(shè)時(shí)間周期內(nèi)將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,避免了通過writebuffer設(shè)置閾值的方式來控制待寫入業(yè)務(wù)數(shù)據(jù)的寫入,無法保證將該待寫入數(shù)據(jù)及時(shí)地刷寫到服務(wù)器,導(dǎo)致業(yè)務(wù)上的數(shù)據(jù)丟失、無法獲取的問題。第二實(shí)施例本實(shí)施例在第一實(shí)施例的基礎(chǔ)上,提供一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入控制方法,請參照圖6,圖6為本發(fā)明第二實(shí)施例提供的一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入控制方法流程示意圖,所述數(shù)據(jù)寫入控制方法包括:s61:開啟hbase客戶端的writebuffer。具體可以通過設(shè)置自動(dòng)刷寫為false(關(guān)閉)來激活writebuffer:table.setautoflush(false);table.flushcommits();s62:設(shè)置預(yù)設(shè)時(shí)間周期,并開始進(jìn)行計(jì)時(shí)。預(yù)設(shè)時(shí)間周期根據(jù)待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)所允許的業(yè)務(wù)數(shù)據(jù)時(shí)延進(jìn)行設(shè)置,并在設(shè)置完成后,開始進(jìn)行計(jì)時(shí)。s63:獲取待寫入業(yè)務(wù)數(shù)據(jù),并判斷是否到達(dá)預(yù)設(shè)數(shù)據(jù)量門限;如是,轉(zhuǎn)至步驟s65;如否,轉(zhuǎn)至步驟s64。預(yù)設(shè)數(shù)據(jù)量門限根據(jù)預(yù)設(shè)時(shí)間周期內(nèi)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小設(shè)置;或者根據(jù)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小設(shè)置。待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量可以通過相應(yīng)的檢測函數(shù)來檢測其數(shù)據(jù)量,hbase終端根據(jù)待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量判斷其是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限。s64:在預(yù)設(shè)時(shí)間周期達(dá)到時(shí),將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),若writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量還未達(dá)到預(yù)設(shè)數(shù)據(jù)量閾值,此時(shí)hbase終端也將立即把存儲(chǔ)在writebuffer中的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。以保證在業(yè)務(wù)所允許的數(shù)據(jù)業(yè)務(wù)時(shí)延范圍內(nèi),將該待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase數(shù)據(jù)庫中。s65:立即將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。在預(yù)設(shè)時(shí)間周期達(dá)到之前,判斷writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)數(shù)據(jù)量門限是,hbase終端直接將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。而不必再等待預(yù)設(shè)時(shí)間周期達(dá)到時(shí)才將該待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。應(yīng)當(dāng)理解的是,在hbase終端將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase服務(wù)器后,該hbase終端可以直接通過相應(yīng)的獲取函數(shù)(例如get()函數(shù))從hbase服務(wù)器中獲取其存儲(chǔ)的相應(yīng)業(yè)務(wù)數(shù)據(jù)。本實(shí)施例提供一種hbase數(shù)據(jù)庫的數(shù)據(jù)寫入控制方法,包括開啟hbase客戶端的writebuffer,設(shè)置預(yù)設(shè)時(shí)間周期,并開始進(jìn)行計(jì)時(shí),獲取待寫入業(yè)務(wù)數(shù)據(jù),并判斷是否到達(dá)預(yù)設(shè)數(shù)據(jù)量門限,如在預(yù)設(shè)時(shí)間達(dá)到之前,達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,則立即將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,如否,則繼續(xù)進(jìn)行計(jì)時(shí)監(jiān)測,并在預(yù)設(shè)時(shí)間周期達(dá)到時(shí),將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。不需要用戶每次手動(dòng)地將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,提升了用戶體驗(yàn);也能夠在業(yè)務(wù)允許的預(yù)設(shè)時(shí)間周期內(nèi)將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,避免了通過writebuffer設(shè)置閾值的方式來控制待寫入業(yè)務(wù)數(shù)據(jù)的寫入,無法保證將該待寫入數(shù)據(jù)及時(shí)地刷寫到服務(wù)器,導(dǎo)致業(yè)務(wù)上的數(shù)據(jù)丟失、無法獲取的問題。第三實(shí)施例參照圖7,圖7為本發(fā)明第三實(shí)施例提供的一種hbase終端的結(jié)構(gòu)示意圖,所述hbase終端70包括處理器71、存儲(chǔ)器72及通信總線73:其中,通信總線73用于實(shí)現(xiàn)處理器和存儲(chǔ)器之間的連接通信;處理器71用于執(zhí)行存儲(chǔ)器72中存儲(chǔ)的數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù);將待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中;判斷預(yù)設(shè)時(shí)間周期到達(dá)且緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。待寫入業(yè)務(wù)數(shù)據(jù)可以是任意數(shù)據(jù)類型的數(shù)據(jù),在本實(shí)施例中不做限制。具體可以是某公司的物品采購信息、運(yùn)營財(cái)務(wù)報(bào)表、公司員工個(gè)人信息等、或者是某事業(yè)單位的人事結(jié)構(gòu)、部門職能介紹信息等,或者某視頻網(wǎng)站的視頻內(nèi)容信息、文字圖片信息等,在此不再一一舉例說明。在獲取到相應(yīng)的待寫入業(yè)務(wù)數(shù)據(jù)后,將該待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端70的緩存區(qū)(writebuffer)中。其中,hbase終端70可以理解為安裝有hbase客戶端的終端,具體的hbase終端70例如可以是如圖1所示的一臺(tái)計(jì)算機(jī),當(dāng)然,也可以是其他安裝有hbase客戶端的電子設(shè)備。hbase終端70的writebuffer通常是基于該hbase終端70的內(nèi)存進(jìn)行設(shè)置的。以一臺(tái)lowcast(廉價(jià))的計(jì)算機(jī)為例,通常其內(nèi)存可能是2g的ram、或者4g的ram等,因此基于hbase終端70的內(nèi)存進(jìn)行設(shè)置的writebuffer的大小必然應(yīng)當(dāng)遠(yuǎn)小于該內(nèi)存的數(shù)值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白的是,hbase客戶端中內(nèi)置的writebuffer機(jī)制默認(rèn)是處于禁用狀態(tài)的,而本實(shí)施例提供的hbase終端70,可以通過處理器71執(zhí)行相應(yīng)的數(shù)據(jù)寫入程序,以實(shí)現(xiàn)對(duì)hbase客戶端的writebuffer的狀態(tài)設(shè)置為“啟用”狀態(tài)。可以通過如下修改實(shí)現(xiàn):table.setautoflush(false);table.flushcommits();在成功啟用writebuffer后,當(dāng)hbase終端獲取到需要寫入到hbase表中的待寫入業(yè)務(wù)數(shù)據(jù)時(shí),hbase終端70將直接把該待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到writebuffer中。本實(shí)施例中,處理器71還可以對(duì)預(yù)設(shè)時(shí)間周期進(jìn)行計(jì)時(shí)監(jiān)測,并在判斷預(yù)設(shè)時(shí)間周期到達(dá)時(shí),將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器以進(jìn)行存儲(chǔ)。進(jìn)一步地,處理器71還可以判斷該writebuffer中的數(shù)據(jù)量是否為零,也即是判斷writebuffer中當(dāng)前是否存在需要寫入的待寫入業(yè)務(wù)數(shù)據(jù),只有在預(yù)設(shè)時(shí)間周期到達(dá)且該writebuffer中存在需要寫入的待寫入業(yè)務(wù)數(shù)據(jù)時(shí),處理器71才會(huì)將該待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。處理器71還用于執(zhí)行數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:根據(jù)待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)所允許的業(yè)務(wù)數(shù)據(jù)時(shí)延設(shè)置預(yù)設(shè)時(shí)間周期。以保證在業(yè)務(wù)允許的時(shí)延范圍內(nèi)hbase終端70自動(dòng)地將相應(yīng)的待寫入數(shù)據(jù)業(yè)務(wù)刷寫到服務(wù)器進(jìn)行存儲(chǔ),一方面對(duì)用戶來說,能夠有效避免基于writebuffer設(shè)置的閾值來刷寫待寫入業(yè)務(wù)數(shù)據(jù)導(dǎo)致的長時(shí)間無法刷寫到服務(wù)器的問題,解決了若希望及時(shí)將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器則需要用戶手動(dòng)強(qiáng)制刷寫,不方便用戶使用的問題,因此有利于提升用戶體驗(yàn);另一方面,對(duì)hbase終端70以及服務(wù)器來說,因?yàn)閔base終端70可以對(duì)在預(yù)設(shè)時(shí)間周期內(nèi)獲取到的待寫入業(yè)務(wù)數(shù)據(jù),只需要調(diào)用一次rpc操作即可將其刷寫到服務(wù)器,而不必為每一個(gè)待寫入業(yè)務(wù)數(shù)據(jù)分別調(diào)用一次rpc操作,對(duì)應(yīng)的,服務(wù)器也可以通過調(diào)用一個(gè)處理線程將這些待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在hbase表中,而不必多次調(diào)用。因此有利于減少hbase終端70以及服務(wù)器的處理負(fù)荷,提高業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)效率。例如,待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)說允許的業(yè)務(wù)數(shù)據(jù)時(shí)延是2秒,具體可以是從hbase終端70獲取到該待寫入業(yè)務(wù)數(shù)據(jù)開始(或者說是存儲(chǔ)到writebuffer開始),直到該待寫入業(yè)務(wù)數(shù)據(jù)成功刷寫到服務(wù)器(或者說是其他的hbase終端70能夠通過該服務(wù)器獲取到該待寫入業(yè)務(wù)數(shù)據(jù))的整個(gè)過程所花費(fèi)的時(shí)間最長為2秒。此時(shí),預(yù)設(shè)時(shí)間周期可以設(shè)置為2秒,也即是每間隔2秒便將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。特別是針對(duì)持續(xù)不斷地刷寫數(shù)據(jù)的情況,例如在預(yù)設(shè)時(shí)間周期需要處理的待寫入業(yè)務(wù)數(shù)據(jù)為10個(gè)、20個(gè),甚至更多時(shí),通過本實(shí)施例提供的方案更是能夠極大程度地減少hbase終端70的處理負(fù)荷。本實(shí)施例中,處理器71在判斷預(yù)設(shè)時(shí)間周期到達(dá)時(shí),會(huì)將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,具體的,處理器71可以調(diào)用相應(yīng)的刷寫函數(shù),例如“flushcommits()”以將writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。應(yīng)當(dāng)說明的是,若writebuffer當(dāng)前不存在待寫入業(yè)務(wù)數(shù)據(jù),則處理器71不必執(zhí)行刷寫操作。在所述處理器71判斷預(yù)設(shè)時(shí)間周期達(dá)到之前,所述處理器71還用于執(zhí)行所述數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:判斷所述緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,如是,將當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫;處理器71還用于根據(jù)預(yù)設(shè)時(shí)間周期內(nèi)所述hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小設(shè)置預(yù)設(shè)數(shù)據(jù)量門限,或根據(jù)所述hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小設(shè)置預(yù)設(shè)數(shù)據(jù)量門限。例如,hbase終端70待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小為每秒1mb,預(yù)設(shè)時(shí)間周期假設(shè)為2秒,那么在預(yù)設(shè)時(shí)間周期內(nèi)該hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小為2mb。此時(shí),處理器71可以將writebuffer的預(yù)設(shè)數(shù)據(jù)量門限可以設(shè)置為2mb、2.5mb等,使writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)時(shí)間周期的平均值左右時(shí),hbase終端70可以立即將其刷寫到服務(wù)器,因?yàn)樵谶_(dá)到平均值后,一般業(yè)務(wù)不會(huì)存在其他比較大的待寫入業(yè)務(wù)數(shù)據(jù)需要在這個(gè)預(yù)設(shè)時(shí)間周期范圍內(nèi)刷寫到服務(wù)器,因此hbase終端70可以不用在等待預(yù)設(shè)施加周期達(dá)到,直接將其刷寫到服務(wù)器,以更加及時(shí)地將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器中進(jìn)行存儲(chǔ),也有利于其他需要獲取該待寫入業(yè)務(wù)數(shù)據(jù)的hbase終端70更快能夠獲取該業(yè)務(wù)數(shù)據(jù)。這個(gè)平均數(shù)據(jù)量大小可以根據(jù)該hbase終端所有刷寫到服務(wù)器的數(shù)據(jù)或者一段時(shí)間內(nèi)的刷寫到服務(wù)器的數(shù)據(jù)計(jì)算得到,例如,在一分鐘之內(nèi),該hbase終端刷寫到服務(wù)器的中數(shù)據(jù)量為120mb,那么可以知道該hbase終端的平均數(shù)據(jù)量大小為2mb每秒。本實(shí)施例中,對(duì)于writebuffer預(yù)設(shè)數(shù)據(jù)量門限,處理器71還可以根據(jù)hbase終端70待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小進(jìn)行設(shè)置。例如,hbase終端70待寫入業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量大小為5mb,那么處理器71可以將writebuffer預(yù)設(shè)數(shù)據(jù)量門限也可以設(shè)置為5mb、5.5mb。本發(fā)明實(shí)施例提供一種hbase終端,包括通信總線用于實(shí)現(xiàn)處理器和存儲(chǔ)器之間的連接通信;處理器用于執(zhí)行存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù);將待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中;判斷預(yù)設(shè)時(shí)間周期到達(dá)且緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù)時(shí),將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。能夠在業(yè)務(wù)允許的預(yù)設(shè)時(shí)間周期內(nèi)將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,避免了通過writebuffer設(shè)置閾值的方式來控制待寫入業(yè)務(wù)數(shù)據(jù)的寫入,無法保證將該待寫入數(shù)據(jù)及時(shí)地刷寫到服務(wù)器,導(dǎo)致業(yè)務(wù)上的數(shù)據(jù)丟失、無法獲取的問題,提升了用戶體驗(yàn)。第四實(shí)施例本實(shí)施例在第三實(shí)施例的基礎(chǔ)上,提供一種hbase終端,所述hbase終端包括:處理器、存儲(chǔ)器以及通信總線;其中,通信總線用于實(shí)現(xiàn)處理器和存儲(chǔ)器之間的連接通信;處理器用于執(zhí)行存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù),將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中,并進(jìn)行計(jì)時(shí)監(jiān)測,判斷緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,如在預(yù)設(shè)時(shí)間周期到達(dá)之前判斷達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,則立即將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫,如否,則在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫;或者在預(yù)設(shè)時(shí)間周期到達(dá)之前判斷接收到數(shù)據(jù)刷寫控制指令時(shí),則立即將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫,如否,則在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。應(yīng)當(dāng)理解的是,處理器執(zhí)行“計(jì)時(shí)監(jiān)測”與其他各步驟之間不存在必然的順序關(guān)系,計(jì)時(shí)監(jiān)測的過程是在判斷計(jì)時(shí)時(shí)間達(dá)到時(shí),將當(dāng)前計(jì)時(shí)時(shí)間清零,并立即重新開始進(jìn)行計(jì)時(shí)。本實(shí)施例中,writebuffer預(yù)設(shè)數(shù)據(jù)量門限是根據(jù)預(yù)設(shè)時(shí)間周期內(nèi)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小進(jìn)行設(shè)置的。例如,hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小為每秒1mb,預(yù)設(shè)時(shí)間周期假設(shè)為2秒,那么在預(yù)設(shè)時(shí)間周期內(nèi)該hbase終端待寫入業(yè)務(wù)數(shù)據(jù)的平均數(shù)據(jù)量大小為2mb。此時(shí),處理器可以將writebuffer預(yù)設(shè)數(shù)據(jù)量門限可以設(shè)置為2mb、2.5mb等,使writebuffer中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量達(dá)到預(yù)設(shè)時(shí)間周期的平均值左右時(shí),hbase終端可以立即將其刷寫到服務(wù)器,因?yàn)樵谶_(dá)到平均值后,一般不會(huì)存在其他比較大的待寫入業(yè)務(wù)數(shù)據(jù)需要在這個(gè)預(yù)設(shè)時(shí)間周期范圍內(nèi)刷寫到服務(wù)器,因此hbase終端可以不用在等待預(yù)設(shè)施加周期達(dá)到,直接將其刷寫到服務(wù)器,以更加及時(shí)地將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器中進(jìn)行存儲(chǔ),也有利于其他需要獲取該待寫入業(yè)務(wù)數(shù)據(jù)的hbase終端更快能夠獲取該業(yè)務(wù)數(shù)據(jù)。處理器可以根據(jù)該hbase終端所有刷寫到服務(wù)器的數(shù)據(jù)或者一段時(shí)間內(nèi)的刷寫到服務(wù)器的數(shù)據(jù)計(jì)算得到,例如,在一分鐘之內(nèi),該hbase終端刷寫到服務(wù)器的中數(shù)據(jù)量為120mb,那么處理器即可計(jì)算得到hbase終端的平均數(shù)據(jù)量大小為2mb每秒。處理器也可以接受用戶手動(dòng)輸入的數(shù)據(jù)量數(shù)值,并將其設(shè)置為預(yù)設(shè)數(shù)據(jù)量門限。本實(shí)施例中,處理器還可以根據(jù)hbase終端待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)數(shù)據(jù)量大小來設(shè)置預(yù)設(shè)數(shù)據(jù)量門限。例如,hbase終端待寫入業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)之最大實(shí)時(shí)數(shù)據(jù)量大小為5mb,那么處理器可以將writebuffer預(yù)設(shè)數(shù)據(jù)量門限也可以設(shè)置為5mb。具體的,處理器可以通過如下下方式設(shè)置預(yù)設(shè)數(shù)據(jù)量門限:setwritebuffersize(longsize);例如設(shè)置為2mb:setwritebuffersize(2097152),2mb等于2097152字節(jié)。處理器判斷是否接收到數(shù)據(jù)刷寫控制指令,這與處理器判斷是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限之間,兩者之間也不存在執(zhí)行的先后順序,也即是說,兩者是并列關(guān)系的,只要處理器判斷達(dá)到預(yù)設(shè)數(shù)據(jù)量門限或者接收到數(shù)據(jù)刷寫指令,都將觸發(fā)hbase終端將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器。進(jìn)一步地,在預(yù)設(shè)時(shí)間周期到達(dá)之前,將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器后,處理器還可以將當(dāng)前計(jì)時(shí)時(shí)間清零并重新開始計(jì)時(shí)。在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),且該緩存區(qū)中當(dāng)前存儲(chǔ)有待寫入業(yè)務(wù)數(shù)據(jù),hbase終端將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。當(dāng)然,在預(yù)設(shè)時(shí)間周期達(dá)到時(shí),若該緩存區(qū)中不存在需要寫入的待寫入業(yè)務(wù)數(shù)據(jù),則不需要進(jìn)行相應(yīng)的刷寫操作。本發(fā)明實(shí)施例提供一種hbase終端,包括通信總線用于實(shí)現(xiàn)處理器和存儲(chǔ)器之間的連接通信;處理器用于執(zhí)行存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)寫入程序,以實(shí)現(xiàn)以下步驟:獲取需要寫入到hbase數(shù)據(jù)庫中的待寫入業(yè)務(wù)數(shù)據(jù),將所述待寫入業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到hbase終端的緩存區(qū)中,并進(jìn)行計(jì)時(shí)監(jiān)測,判斷緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,如在預(yù)設(shè)時(shí)間周期到達(dá)之前判斷達(dá)到預(yù)設(shè)數(shù)據(jù)量門限,則立即將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫,如否,則在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫;或者在預(yù)設(shè)時(shí)間周期到達(dá)之前判斷接收到數(shù)據(jù)刷寫控制指令時(shí),則立即將該緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫,如否,則在預(yù)設(shè)時(shí)間周期到達(dá)時(shí),將緩存區(qū)中當(dāng)前存儲(chǔ)的待寫入業(yè)務(wù)數(shù)據(jù)刷寫到hbase數(shù)據(jù)庫。能夠在業(yè)務(wù)允許的預(yù)設(shè)時(shí)間周期內(nèi)將待寫入業(yè)務(wù)數(shù)據(jù)刷寫到服務(wù)器,避免了通過writebuffer設(shè)置閾值的方式來控制待寫入業(yè)務(wù)數(shù)據(jù)的寫入,無法保證將該待寫入數(shù)據(jù)及時(shí)地刷寫到服務(wù)器,導(dǎo)致業(yè)務(wù)上的數(shù)據(jù)丟失、無法獲取的問題。需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。上面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行了描述,但是本發(fā)明并不局限于上述的具體實(shí)施方式,上述的具體實(shí)施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護(hù)的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護(hù)之內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12