欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于嵌套的SQL到HBase的數(shù)據(jù)遷移算法

文檔序號:6638116閱讀:312來源:國知局
一種基于嵌套的SQL到HBase的數(shù)據(jù)遷移算法
【專利摘要】本發(fā)明公開了一種基于嵌套的SQL到HBase的數(shù)據(jù)遷移算法,包括有以下步驟:A、獲取關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系;B、將關(guān)系數(shù)據(jù)庫中的SQL表進(jìn)行單表轉(zhuǎn)換,得到HBase表;C、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系,對相應(yīng)的HBase表進(jìn)行單層嵌套轉(zhuǎn)換;D、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系以及上述單層嵌套轉(zhuǎn)換結(jié)果,對相應(yīng)的HBase表進(jìn)行多層嵌套轉(zhuǎn)換。本發(fā)明方法對SQL表進(jìn)行單表轉(zhuǎn)換,進(jìn)而根據(jù)外鍵依賴關(guān)系對轉(zhuǎn)換成的HBase表進(jìn)行單、多層嵌套轉(zhuǎn)換,從而成功地在不丟失外建依賴信息的情況下實(shí)現(xiàn)數(shù)據(jù)遷移,數(shù)據(jù)遷移后的HBase中查詢一個表即可得到結(jié)果,無需連接多個表,加快了查詢效率。本發(fā)明作為一種基于嵌套的SQL到HBase的數(shù)據(jù)遷移算法可廣泛應(yīng)用于大數(shù)據(jù)處理領(lǐng)域。
【專利說明】一種基于嵌套的SQL到HBase的數(shù)據(jù)遷移算法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及大數(shù)據(jù)處理領(lǐng)域,尤其是一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法。

【背景技術(shù)】
[0002]術(shù)語解釋:
I關(guān)系數(shù)據(jù)庫(Relat1nal database):創(chuàng)建在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。現(xiàn)在主流的關(guān)系數(shù)據(jù)庫有Oracle、SqlServer、MySQL 等。
[0003]2HBase:—個開源的非關(guān)系型面向列存儲分布式數(shù)據(jù)庫,它參考了谷歌的BigTable建模,實(shí)現(xiàn)的編程語言為Java。它是Apache軟件基金會的Hadoop項(xiàng)目的一部分,運(yùn)行于HDFS (分布式文件系統(tǒng))上,為Hadoop提供類似于BigTable規(guī)模的服務(wù)。因此,它可以容錯地存儲海量稀疏的數(shù)據(jù)。
[0004]3依賴關(guān)系:表示關(guān)系數(shù)據(jù)庫中表與表之間存在外鍵依賴關(guān)系。
[0005]隨著大數(shù)據(jù)時代的來臨,關(guān)系型數(shù)據(jù)庫在面臨海量數(shù)據(jù)存儲、查詢及分析的挑戰(zhàn)時,暴露出擴(kuò)展性差、查詢效率低以及難以應(yīng)對高并發(fā)請求的不足。而NoSQL數(shù)據(jù)庫因其不再遵從規(guī)范化設(shè)計(jì)的數(shù)據(jù)模型及有不同的底層架構(gòu)設(shè)計(jì),能很好地滿足某些系統(tǒng)對海量數(shù)據(jù)處理的需求。目前,越來越多系統(tǒng)需要把數(shù)據(jù)從現(xiàn)有關(guān)系數(shù)據(jù)庫迀移至NoSQL數(shù)據(jù)庫。
[0006]HBase是目前最熱門的NoSQL數(shù)據(jù)庫之一,具備高擴(kuò)展性、高性能、強(qiáng)一致性的特點(diǎn)?,F(xiàn)在受到了越來越多企業(yè)青睞,并且出現(xiàn)了越來越多數(shù)據(jù)從關(guān)系數(shù)據(jù)庫迀移到HBase的需求。而因?yàn)镠Base的數(shù)據(jù)模式(即數(shù)據(jù)組織形式)與關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模式有巨大差異。HBase表模式并沒有外鍵的設(shè)置,因此迀移后不能保留原關(guān)系數(shù)據(jù)庫的外鍵依賴信息。
[0007]現(xiàn)有技術(shù)中,關(guān)于關(guān)系數(shù)據(jù)庫到HBase的數(shù)據(jù)迀移系統(tǒng)的相關(guān)工具和研宄方案數(shù)量上都不多,同時,每一種工具或者方案都有其較大的不足之處,特別是每一種方案都沒有很好地考慮原關(guān)系數(shù)據(jù)庫中外鍵依賴信息的保留問題。例如Chung W C等人提出了一種利用MapReduce實(shí)現(xiàn)對HBase上使用SQL語句進(jìn)行查詢的方案。方案具體方法是將關(guān)系數(shù)據(jù)庫中的表映射為HBase中同一張表的不同列族,表中的屬性映射為HBase中對應(yīng)的列族的列,即同一張表的數(shù)據(jù)會放置在HBase表的同一個列族。串行地排列不同表的數(shù)據(jù),同時設(shè)置了一個額外的列族用于存放用于表示關(guān)系數(shù)據(jù)庫中表之間的外鍵依賴關(guān)系的信息。基于這種存儲,系統(tǒng)可以將一個SQL查詢轉(zhuǎn)換成一個對HBase的查詢請求序列組成的MapReduce任務(wù),在HBase上實(shí)現(xiàn)查詢并返回結(jié)果。這種方案的確是可以完成從關(guān)系數(shù)據(jù)庫到HBase的模式迀移,并對之進(jìn)行查詢,但是這種方案存在著兩個重大的弊端。1、以串行的方式排列表與表之間的數(shù)據(jù),導(dǎo)致數(shù)據(jù)矩陣稀疏。2、當(dāng)同一個SQL查詢涉及多個join操作,MapReudce任務(wù)將需要頻繁訪問HBase表查詢存放外鍵信息的列族,效率低下。


【發(fā)明內(nèi)容】

[0008]為了解決上述技術(shù)問題,本發(fā)明的目的是:提供一種不丟失外鍵依賴信息的基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法。
[0009]本發(fā)明所采用的技術(shù)方案是:一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,包括有以下步驟:
A、獲取關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系;
B、將關(guān)系數(shù)據(jù)庫中的SQL表進(jìn)行單表轉(zhuǎn)換,得到HBase表;
C、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系,對相應(yīng)的HBase表進(jìn)行單層嵌套轉(zhuǎn)換;
D、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系以及上述單層嵌套轉(zhuǎn)換結(jié)果,對相應(yīng)的HBase表進(jìn)行多層嵌套轉(zhuǎn)換。
[0010]進(jìn)一步,所述步驟B中,優(yōu)先對不存在外鍵依賴關(guān)系數(shù)據(jù)庫中其他SQL表的SQL表進(jìn)行單表轉(zhuǎn)換。
[0011]進(jìn)一步,所述步驟C中單層嵌套轉(zhuǎn)換的結(jié)果用增加HBase表中的列族的方式來表不O
[0012]進(jìn)一步,所述步驟D中多層嵌套轉(zhuǎn)換的結(jié)果用增加HBase表中的列名前綴的方式來表示。
[0013]進(jìn)一步,所述HBase表中可同時包括列族和列名前綴。
[0014]本發(fā)明的有益效果是:本發(fā)明方法對SQL表進(jìn)行單表轉(zhuǎn)換,進(jìn)而根據(jù)外鍵依賴關(guān)系對轉(zhuǎn)換成的HBase表進(jìn)行單層嵌套轉(zhuǎn)換和多層嵌套轉(zhuǎn)換,從而成功地在不丟失外建依賴信息的情況下將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫迀移到HBase,尤其是是原本在關(guān)系數(shù)據(jù)庫中存在外鍵依賴關(guān)系的表都整合至HBase的一張表中,數(shù)據(jù)迀移后的HBase中查詢一個表即可得到結(jié)果,而無需連接多個表,加快了查詢效率。

【專利附圖】

【附圖說明】
[0015]圖1為本發(fā)明方法的步驟流程圖;
圖2為數(shù)據(jù)庫內(nèi)各表關(guān)系示意圖;
圖3為關(guān)系數(shù)據(jù)庫到HBase迀移前后表狀態(tài)示意圖;
圖4為student數(shù)據(jù)庫圖模型示意圖;
圖5為單表轉(zhuǎn)換示意圖;
圖6為單層嵌套轉(zhuǎn)換示意圖;
圖7為多層嵌套轉(zhuǎn)換示意圖。
[0016]【具體實(shí)施方式】;
下面結(jié)合附圖對本發(fā)明的【具體實(shí)施方式】作進(jìn)一步說明:
參照圖1,一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,包括有以下步驟:
A、獲取關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系;
B、將關(guān)系數(shù)據(jù)庫中的SQL表進(jìn)行單表轉(zhuǎn)換,得到HBase表;
C、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系,對相應(yīng)的HBase表進(jìn)行單層嵌套轉(zhuǎn)換;
D、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系以及上述單層嵌套轉(zhuǎn)換結(jié)果,對相應(yīng)的HBase表進(jìn)行多層嵌套轉(zhuǎn)換。
[0017]首先,結(jié)合【專利附圖】

【附圖說明】關(guān)系數(shù)據(jù)庫中的外鍵依賴關(guān)系: 關(guān)系數(shù)據(jù)庫可用一個有向無環(huán)圖給予描述。V表示圖G中的點(diǎn)集,E表示圖G中的邊集。每一個在關(guān)系數(shù)據(jù)庫中的表即為點(diǎn)集V中的一個點(diǎn),而邊表不表A有外鍵引用表B,這樣圖G可稱為關(guān)系圖。參照圖2,點(diǎn)A,B, C代表表A,B, C,因?yàn)楸鞟有外鍵spno引用表B,即表A依賴表B,因此有一條有向邊指向表B,另外兩條邊同理。
[0018]為了加快在數(shù)據(jù)迀移后在HBase中的查詢效率,類似于反規(guī)范化中的增加冗余列的方式,本發(fā)明中將外鍵依賴關(guān)系轉(zhuǎn)換為嵌套關(guān)系,在存在外鍵依賴關(guān)系的兩個表中,讓被依賴表的數(shù)據(jù)添加進(jìn)依賴表中。
[0019]參照圖3,表A依賴表B,則可以稱表A嵌套表B,同理,表B嵌套表C,那么表A與表B的關(guān)系我們稱為“單層嵌套”,表A與表C的關(guān)系我們稱為“多層嵌套”。而因?yàn)楸鞟同時也直接依賴表C,所以表A與表C的關(guān)系既有單層嵌套也有多層嵌套。因此,在轉(zhuǎn)換后的HBase數(shù)據(jù)庫中,會有相對應(yīng)的三個表,HTable-A, HTable-B, HTable-C,即在原關(guān)系數(shù)據(jù)庫每一個表都有相應(yīng)的一個迀移后的HTable相對應(yīng)。而根據(jù)它們之間的嵌套關(guān)系,HTable-A會包含HTable-B及HTable-C的信息。
[0020]對于單層嵌套,利用增加HBase中的列族(family)的方式來表示;對于多層嵌套,利用增加HBase中的列名(qualifier)前綴的方式來表示。上述方式是的HBase表可以很好地代替SQL表,存儲器本身的數(shù)據(jù)并對于每一個SQL語句,無論它包括有多少個連接條件,都只需要在錢以后的HBase中查詢一個表即可得到結(jié)果,從而加快了查詢效率。
[0021]在轉(zhuǎn)換完成之后,對應(yīng)于迀移后的表的列族數(shù)只是比原關(guān)系數(shù)據(jù)庫的表的外鍵數(shù)多1,這將保證迀移后的表的列族數(shù)不會過多而導(dǎo)致HBase的性能下降。
[0022]參照圖4的數(shù)據(jù)庫模型,將其中數(shù)據(jù)庫迀移到HBase,經(jīng)過單表轉(zhuǎn)換、單層嵌套轉(zhuǎn)換和多層嵌套轉(zhuǎn)換的步驟:
參照圖5單表轉(zhuǎn)換示意圖,將SQL表“ speciality”轉(zhuǎn)換成HBase表“ speciality”。參照圖6單層嵌套轉(zhuǎn)換示意圖,利用增加HBase中的列族的方式來表示。參照圖7多層嵌套轉(zhuǎn)換示意圖,利用增加HBase中的列名前綴的方式來表示,例如:speciality:department, dno= “5001,,。
[0023]以上是對本發(fā)明的較佳實(shí)施進(jìn)行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實(shí)施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可以作出種種的等同變換或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。
【權(quán)利要求】
1.一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,其特征在于:包括有以下步驟: A、獲取關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系; B、將關(guān)系數(shù)據(jù)庫中的SQL表進(jìn)行單表轉(zhuǎn)換,得到HBase表;C、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系,對相應(yīng)的HBase表進(jìn)行單層嵌套轉(zhuǎn)換; D、根據(jù)關(guān)系數(shù)據(jù)庫中SQL表的外鍵依賴關(guān)系以及上述單層嵌套轉(zhuǎn)換結(jié)果,對相應(yīng)的HBase表進(jìn)行多層嵌套轉(zhuǎn)換。
2.根據(jù)權(quán)利要求1所述的一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,其特征在于:所述步驟B中,優(yōu)先對不存在外鍵依賴關(guān)系數(shù)據(jù)庫中其他SQL表的SQL表進(jìn)行單表轉(zhuǎn)換。
3.根據(jù)權(quán)利要求1所述的一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,其特征在于:所述步驟C中單層嵌套轉(zhuǎn)換的結(jié)果用增加HBase表中的列族的方式來表示。
4.根據(jù)權(quán)利要求1所述的一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,其特征在于:所述步驟D中多層嵌套轉(zhuǎn)換的結(jié)果用增加HBase表中的列名前綴的方式來表示。
5.根據(jù)權(quán)利要求4所述的一種基于嵌套的SQL到HBase的數(shù)據(jù)迀移算法,其特征在于:所述HBase表中可同時包括列族和列名前綴。
【文檔編號】G06F17/30GK104504008SQ201410757171
【公開日】2015年4月8日 申請日期:2014年12月10日 優(yōu)先權(quán)日:2014年12月10日
【發(fā)明者】趙淦森, 李立波, 林巧英, 王翔, 程慶年, 周冠宇, 高曉杰, 周尚勤, 王欣明 申請人:華南師范大學(xué), 廣州杰賽科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
临夏县| 连城县| 同德县| 策勒县| 新闻| 顺平县| 黄冈市| 永平县| 十堰市| 仁化县| 临猗县| 昌邑市| 盱眙县| 北票市| 阳高县| 青铜峡市| 抚顺县| 浦城县| 闻喜县| 龙门县| 资溪县| 大名县| 义马市| 太保市| 常熟市| 吴川市| 巴青县| 庆元县| 潜山县| 炎陵县| 伽师县| 葫芦岛市| 红河县| 英超| 孟州市| 乌拉特后旗| 辽源市| 宁国市| 井研县| 府谷县| 克什克腾旗|