[發(fā)明專(zhuān)利]一種數(shù)據(jù)導(dǎo)入HBase數(shù)據(jù)庫(kù)的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201410346370.0 | 申請(qǐng)日: | 2014-07-21 |
| 公開(kāi)(公告)號(hào): | CN104077420B | 公開(kāi)(公告)日: | 2017-05-03 |
| 發(fā)明(設(shè)計(jì))人: | 李勇 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京京東尚科信息技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F17/30 | 分類(lèi)號(hào): | G06F17/30 |
| 代理公司: | 北京德琦知識(shí)產(chǎn)權(quán)代理有限公司11018 | 代理人: | 張馳,宋志強(qiáng) |
| 地址: | 100080 北京市海淀區(qū)杏石口路6*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù) 導(dǎo)入 hbase 數(shù)據(jù)庫(kù) 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)庫(kù)處理技術(shù)領(lǐng)域,特別是一種數(shù)據(jù)導(dǎo)入HBase數(shù)據(jù)庫(kù)的方法和裝置。
背景技術(shù)
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于Chang et al所撰寫(xiě)的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類(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基于列的而不是基于行的模式。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。在云計(jì)算浪潮下,HBase已經(jīng)承載了很多大數(shù)據(jù)系統(tǒng)的存儲(chǔ)和查詢(xún)的業(yè)務(wù)需求,且已經(jīng)得到業(yè)界的廣泛認(rèn)同。在大數(shù)據(jù)處理領(lǐng)域有一個(gè)需求是把大數(shù)據(jù)批量導(dǎo)入到HBase數(shù)據(jù)庫(kù)中,這個(gè)操作往往是在凌晨完成。
在現(xiàn)有技術(shù)中,讀取HDFS文件,按行把數(shù)據(jù)轉(zhuǎn)換成HBase能識(shí)別的Put對(duì)象,然后把一批Put對(duì)象放入內(nèi)存中的ArrayList<Put>列表中,當(dāng)這個(gè)列表達(dá)到設(shè)置的閾值時(shí),調(diào)用HBase數(shù)據(jù)庫(kù)的批量寫(xiě)入接口把該列表數(shù)據(jù)寫(xiě)入HBase數(shù)據(jù)庫(kù),完成后清空該列表。循環(huán)上述操作直到文件讀取完畢。
然而,現(xiàn)有技術(shù)不能保證充分利用HBase數(shù)據(jù)庫(kù)的分布式集群處理能力,如果從文件中連續(xù)讀取的n行數(shù)據(jù)轉(zhuǎn)換成HBase的n個(gè)Put對(duì)象后,n個(gè)Put全部落到HBase集群的一個(gè)區(qū)域服務(wù)器(RegionServer)上,則實(shí)際上此次操作沒(méi)有利用到HBase集群的分布式特性,性能較差。只要n個(gè)Put沒(méi)有盡量多的分布在不同的RegionServer上都會(huì)出現(xiàn)對(duì)HBase集群分布式特性利用不足的問(wèn)題。
現(xiàn)有技術(shù)不能充分利用導(dǎo)入服務(wù)器的性能,在把一批Put對(duì)象寫(xiě)入HBase集群大量做網(wǎng)絡(luò)交互時(shí)只是等待其完成,而沒(méi)有利用這段時(shí)間繼續(xù)組織一批新的Put對(duì)象列表。
現(xiàn)有技術(shù)沒(méi)有完善的安全機(jī)制,例如沒(méi)有統(tǒng)一的對(duì)輸入流的管理規(guī)范,沒(méi)有統(tǒng)一的對(duì)異常數(shù)據(jù)、異常連接等情況的處理方法,有可能導(dǎo)致導(dǎo)入過(guò)程中出現(xiàn)錯(cuò)誤或者數(shù)據(jù)缺失。
發(fā)明內(nèi)容
本發(fā)明實(shí)施方式提出一種數(shù)據(jù)導(dǎo)入HBase數(shù)據(jù)庫(kù)的方法,充分利用HBase集群的分布式特性,從而提高服務(wù)端寫(xiě)入性能。
本發(fā)明實(shí)施方式提出一種一種數(shù)據(jù)導(dǎo)入HBase數(shù)據(jù)庫(kù)的裝置,充分利用HBase集群的分布式特性,從而提高服務(wù)端寫(xiě)入性能。
本發(fā)明實(shí)施方式的技術(shù)方案如下:
一種數(shù)據(jù)導(dǎo)入HBase數(shù)據(jù)庫(kù)的方法,該方法包括:
利用輸入輸出IO流方式將各種類(lèi)型的輸入源數(shù)據(jù)整合為字符串,讀取所述輸入輸出流以獲取預(yù)定緩沖區(qū)大小的字符串;
將所讀取的字符串轉(zhuǎn)換為Put對(duì)象,根據(jù)所述Put對(duì)象的行主鍵確定該P(yáng)ut對(duì)象所屬的區(qū)域服務(wù)器;從多張Put對(duì)象列表中確定所述Put對(duì)象被寫(xiě)入的選中Put對(duì)象列表,以在各個(gè)Put對(duì)象列表中都均勻分布有多個(gè)區(qū)域服務(wù)器,其中每張Put對(duì)象列表中分別包含有待存儲(chǔ)Put對(duì)象與所屬區(qū)域服務(wù)器之間的對(duì)應(yīng)關(guān)系;
針對(duì)每個(gè)Put對(duì)象列表分別啟動(dòng)寫(xiě)任務(wù),以將所述Put對(duì)象列表中待存儲(chǔ)Put對(duì)象所對(duì)應(yīng)的數(shù)據(jù)導(dǎo)入所述Put待存儲(chǔ)對(duì)象所屬的區(qū)域服務(wù)器。
所述利用IO流方式將各種類(lèi)型的輸入源數(shù)據(jù)整合為字符串包括下列中的至少一個(gè):
利用IO流方式將文本文件數(shù)據(jù)整合為字符串;
利用IO流方式將Hadoop分布式文件系統(tǒng)文件整合為字符串;
利用IO流方式將網(wǎng)絡(luò)源數(shù)據(jù)整合為字符串。
所述讀取所述IO流以獲取預(yù)定緩沖區(qū)大小的字符串包括:
采用while循環(huán)的方式讀取所述IO流以獲取預(yù)定緩沖區(qū)大小的字符串;該方法還包括:當(dāng)所述while循環(huán)終止后,關(guān)閉所述IO流。
在將所讀取的字符串轉(zhuǎn)換為Put對(duì)象之前,該方法進(jìn)一步包括:驗(yàn)證所讀取的字符串是否符合預(yù)先設(shè)定的業(yè)務(wù)預(yù)期,如果是,則開(kāi)始將所讀取的字符串轉(zhuǎn)換為Put對(duì)象;如果不是,則退出本流程。
所述針對(duì)每個(gè)Put對(duì)象列表分別啟動(dòng)寫(xiě)任務(wù),以將Put對(duì)象列表中待存儲(chǔ)Put對(duì)象所對(duì)應(yīng)的數(shù)據(jù)導(dǎo)入所述待存儲(chǔ)Put對(duì)象所屬的區(qū)域服務(wù)器包括:
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410346370.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種基于thrift服務(wù)的HBase安全插件
- 一種實(shí)現(xiàn)Windows下連接控制Hbase的方法及裝置
- 一種基于大數(shù)據(jù)的數(shù)據(jù)脫敏方法和Hbase脫敏處理系統(tǒng)
- 多個(gè)集群數(shù)據(jù)一致性的控制方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- HBase數(shù)據(jù)遷移方法及遷移裝置
- 基于phoenix改造hbase舊系統(tǒng)的索引同步方法、裝置及系統(tǒng)
- 一種格式化HBase數(shù)據(jù)的方法
- 一種多HBase集群訪(fǎng)問(wèn)方法、裝置及存儲(chǔ)介質(zhì)
- HBase集群平衡方法、裝置、電子設(shè)備和存儲(chǔ)介質(zhì)
- 一種基于AEP內(nèi)存的HBase集群性能優(yōu)化方法及系統(tǒng)
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置





