[發(fā)明專利]一種將關(guān)系型數(shù)據(jù)遷移至HBase的方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201310612192.7 | 申請日: | 2013-11-26 |
| 公開(公告)號: | CN103631907A | 公開(公告)日: | 2014-03-12 |
| 發(fā)明(設(shè)計)人: | 戴嬌;文杰;韓冀中;周薇 | 申請(專利權(quán))人: | 中國科學院信息工程研究所 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京輕創(chuàng)知識產(chǎn)權(quán)代理有限公司 11212 | 代理人: | 楊立 |
| 地址: | 100093 *** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 關(guān)系 數(shù)據(jù) 遷移 hbase 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲與管理領(lǐng)域,尤其涉及一種將傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的關(guān)系型數(shù)據(jù)遷移至HBase數(shù)據(jù)庫的方法及系統(tǒng)。
背景技術(shù)
隨著數(shù)據(jù)生成方式的多元化與數(shù)據(jù)接入方式的多樣化及便捷化,各種業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)都急劇膨脹。相應(yīng)地,傳統(tǒng)方式下,使用關(guān)系型數(shù)據(jù)庫管理的數(shù)據(jù),在存儲容量與訪問量上不斷發(fā)生量級上的增加。傳統(tǒng)關(guān)系庫面臨嚴峻的挑戰(zhàn)。
近年來,NoSQL數(shù)據(jù)庫在工業(yè)界和研究領(lǐng)域蓬勃發(fā)展。NoSQL數(shù)據(jù)庫天然的分布式架構(gòu),自動完成數(shù)據(jù)的水平劃分與訪問的并發(fā),在數(shù)據(jù)存儲量及讀寫性能較傳統(tǒng)關(guān)系型數(shù)據(jù)庫有了極大的提升。工業(yè)界與研究機構(gòu)都紛紛推出相關(guān)軟件,HBase即為其中的一員。HBase是一個分布式的、面向列存儲的數(shù)據(jù)庫,具有高可靠性、高可擴展性,能在普通硬件環(huán)境基礎(chǔ)上支撐十億量級行,百萬量級列的“大表”,并支持在這樣規(guī)模數(shù)據(jù)上的隨機、實時讀寫操作。HBase提供類似于表格的存儲視圖,與普通二維表格不同的是,表的屬性列可以按需動態(tài)調(diào)整,表的記錄按照列方向而非行方向進行組織。一行數(shù)據(jù)有行鍵與若干列簇組成,行鍵與列簇組成該表的schema,在表格創(chuàng)建后保持不變。而列簇則由若干列組成,可以在數(shù)據(jù)更新時動態(tài)增減列簇中的列。
參照Google的BigTable實現(xiàn)的HBase,目前是Apache的頂級項目,該開源社區(qū)蓬勃發(fā)展的同時,HBase的應(yīng)用也越來越廣泛,已經(jīng)在Yahoo!,F(xiàn)acebook等多家公司成功應(yīng)用。應(yīng)用過程中,不可避免地涉及到數(shù)據(jù)遷移,即從從原有數(shù)據(jù)平臺遷移至HBase,如:從Mysql、Oracle等關(guān)系型數(shù)據(jù)庫移出。
Apache出品的Sqoop系統(tǒng)即提供從關(guān)系數(shù)據(jù)庫讀取整庫的數(shù)據(jù),并指定列為行鍵,將數(shù)據(jù)記錄作為值存入HBase某一行的列簇中。這種遷移存在以下問題:1)丟失數(shù)據(jù)模式信息與數(shù)據(jù)唯一性保證,如數(shù)據(jù)類型、是否允許非空。2)列過多,對讀寫性能造成一定的影響。3)不恰當?shù)男墟I的設(shè)計,可能會造成空間的浪費。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種將關(guān)系型數(shù)據(jù)遷移至HBase的方法及系統(tǒng),完整保留了原關(guān)系數(shù)據(jù)庫中數(shù)據(jù)表格的模式信息,可靈活配置映射方式,提高了訪問性能,節(jié)省了存儲空間。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種將關(guān)系型數(shù)據(jù)遷移至HBase的方法,包括如下步驟:
步驟1:建立HBase數(shù)據(jù)庫,并建立用于存儲關(guān)系數(shù)據(jù)庫中數(shù)據(jù)表與HBase中相應(yīng)的數(shù)據(jù)存儲表間映射關(guān)系的映射關(guān)系表;
步驟2:選定一個或一個以上的關(guān)系型數(shù)據(jù)表,并為選定的每個關(guān)系型數(shù)據(jù)表定義映射方式,記錄在映射關(guān)系表中;
步驟3:導(dǎo)入數(shù)據(jù)時,查詢映射關(guān)系表中的映射方式,并根據(jù)映射方式建立相應(yīng)的數(shù)據(jù)存儲表;
步驟4:將步驟2中所述一個或一個以上的關(guān)系型數(shù)據(jù)表中的數(shù)據(jù)按照步驟3中所述的映射關(guān)系遷移至建立的數(shù)據(jù)存儲表中;
步驟5:判斷是否還有關(guān)系型數(shù)據(jù)要遷移到HBase數(shù)據(jù)庫中,如果有返回步驟2,否則結(jié)束。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
進一步,上述技術(shù)方案還包括當要從HBase數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)時,具體實現(xiàn)如下:首先,根據(jù)用戶提供的導(dǎo)出配置文件獲取待導(dǎo)出數(shù)據(jù)在原關(guān)系型數(shù)據(jù)表中的位置信息;其次,根據(jù)待導(dǎo)出數(shù)據(jù)在原關(guān)系型數(shù)據(jù)表中的位置信息,在映射關(guān)系表中查找出待導(dǎo)出數(shù)據(jù)在HBase數(shù)據(jù)庫的數(shù)據(jù)存儲表中相應(yīng)的位置信息;最后,按照關(guān)系映射表中定義的數(shù)據(jù)類型將待導(dǎo)出數(shù)據(jù)導(dǎo)出。
進一步,上述技術(shù)方案還包括當要從HBase數(shù)據(jù)庫中查詢數(shù)據(jù)時,具體實現(xiàn)如下:首先,解析所述查詢語句,提取出查詢信息,并轉(zhuǎn)換成HBase數(shù)據(jù)庫的查詢語句;其次,根據(jù)已轉(zhuǎn)換的查詢語句在映射關(guān)系表中查找待查詢數(shù)據(jù)在數(shù)據(jù)存儲表中的位置信息;最后,根據(jù)查詢到的位置信息,查詢數(shù)據(jù)存儲表中的相應(yīng)數(shù)據(jù)。
進一步,步驟2中所述映射方式為包括表映射方式和列映射方式,
所述表映射方式包括一對一映射和多對一映射,具體體現(xiàn)在表名的映射,所述表名的映射為根據(jù)表名轉(zhuǎn)換運算進行映射,表名轉(zhuǎn)換運算包括一對一哈希運算和多對一哈希運算;
所述列映射方式包括默認方式、時序方式和用戶自定義方式,所述默認方式即關(guān)系數(shù)據(jù)庫中表格內(nèi)所有列與HBase的數(shù)據(jù)存儲表格的一個列簇內(nèi)的所有列一一對應(yīng);所述時序方式即將關(guān)系數(shù)據(jù)庫中表格內(nèi)所有時間值屬性列在HBase的數(shù)據(jù)存儲表中單獨定義一個列簇,該列簇包含一個列,將遷移的數(shù)據(jù)按照不同時間點對應(yīng)于該列不同的時間戳上;所述用戶自定義映射即根據(jù)用戶的需要進行自定義。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國科學院信息工程研究所,未經(jīng)中國科學院信息工程研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310612192.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(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安全插件
- 一種實現(xiàn)Windows下連接控制Hbase的方法及裝置
- 一種基于大數(shù)據(jù)的數(shù)據(jù)脫敏方法和Hbase脫敏處理系統(tǒng)
- 多個集群數(shù)據(jù)一致性的控制方法、裝置、設(shè)備及存儲介質(zhì)
- HBase數(shù)據(jù)遷移方法及遷移裝置
- 基于phoenix改造hbase舊系統(tǒng)的索引同步方法、裝置及系統(tǒng)
- 一種格式化HBase數(shù)據(jù)的方法
- 一種多HBase集群訪問方法、裝置及存儲介質(zhì)
- HBase集群平衡方法、裝置、電子設(shè)備和存儲介質(zhì)
- 一種基于AEP內(nèi)存的HBase集群性能優(yōu)化方法及系統(tǒng)





