數(shù)據(jù)遷移方法以及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)迀移方法以及裝置。
【背景技術(shù)】
[0002]為了滿足對(duì)歷史數(shù)據(jù)的保留、迀移等需求(尤其是存在關(guān)系型數(shù)據(jù)庫(kù)到非關(guān)系型數(shù)據(jù)庫(kù)的迀移情況下),通常需要從原先的數(shù)據(jù)庫(kù)中獲取歷史數(shù)據(jù),并按照新數(shù)據(jù)庫(kù)的設(shè)計(jì)要求將數(shù)據(jù)保存到新的數(shù)據(jù)表中。
[0003]在數(shù)據(jù)量巨大時(shí),一般會(huì)通過數(shù)據(jù)導(dǎo)出工具將歷史數(shù)據(jù)導(dǎo)出保存在文本文件中,并利用服務(wù)器集群的高性能的批處理分布式計(jì)算框架將文本文件數(shù)據(jù)生成HBase表的HFile文件,最后將HFile文件導(dǎo)入到指定的HBase表中。
[0004]然而,利用服務(wù)器集群的批處理分布式計(jì)算框架對(duì)文本文件數(shù)據(jù)進(jìn)行運(yùn)算,其整體運(yùn)算效率比集群所有獨(dú)立服務(wù)器的運(yùn)算效率低很多,這種方式則會(huì)降低整個(gè)數(shù)據(jù)迀移過程的效率。但是如果將服務(wù)器集群拆解成單獨(dú)的服務(wù)器進(jìn)行運(yùn)算,又無法保證每單臺(tái)服務(wù)器生成的HFile文件能夠兼容,進(jìn)而也無法將每單臺(tái)服務(wù)器生成的HFile文件導(dǎo)入到服務(wù)器集群的HBase表中。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明提供了一種數(shù)據(jù)迀移方法以及裝置。
[0006]本發(fā)明提供一種數(shù)據(jù)迀移方法,該方法應(yīng)用于對(duì)服務(wù)器集群進(jìn)行拆解后的獨(dú)立服務(wù)器,其中該方法包括:
[0007]獲取指定服務(wù)器創(chuàng)建的HBase表;
[0008]獲取待迀移數(shù)據(jù),并根據(jù)所述HBase表將所述待迀移數(shù)據(jù)生成指定格式的數(shù)據(jù)文件;其中,所述待迀移數(shù)據(jù)為按照所述服務(wù)器集群拆解后獲得的獨(dú)立服務(wù)器數(shù)量對(duì)所有待迀移數(shù)據(jù)進(jìn)行拆分后,分配給各個(gè)獨(dú)立服務(wù)器分別處理的對(duì)應(yīng)數(shù)據(jù);
[0009]將所述指定格式的數(shù)據(jù)文件迀移至所述指定服務(wù)器創(chuàng)建的HBase表中。
[0010]本發(fā)明還提供一種數(shù)據(jù)迀移裝置,該裝置應(yīng)用于對(duì)服務(wù)器集群進(jìn)行拆解后的獨(dú)立服務(wù)器,該裝置包括:
[0011]獲取單元,用于獲取指定服務(wù)器創(chuàng)建的HBase表;
[0012]生成單元,用于獲取待迀移數(shù)據(jù),并根據(jù)所述HBase表將所述待迀移數(shù)據(jù)生成指定格式的數(shù)據(jù)文件;其中,所述待迀移數(shù)據(jù)為按照所述服務(wù)器集群拆解后獲得的獨(dú)立服務(wù)器數(shù)量對(duì)所有待迀移數(shù)據(jù)進(jìn)行拆分后,分配給各個(gè)獨(dú)立服務(wù)器分別處理的對(duì)應(yīng)數(shù)據(jù);
[0013]迀移單元,用于將所述指定格式的數(shù)據(jù)文件迀移至所述指定服務(wù)器創(chuàng)建的HBase表中。
[0014]本發(fā)明提供的數(shù)據(jù)迀移方法以及裝置,通過獲取指定服務(wù)器創(chuàng)建的HBase表以及獲取待迀移數(shù)據(jù),并根據(jù)所述HBase表將待迀移數(shù)據(jù)生成指定格式的數(shù)據(jù)文件,以將指定格式的數(shù)據(jù)文件迀移至所述指定服務(wù)器創(chuàng)建的HBase表中,解決了現(xiàn)有技術(shù)中將服務(wù)器集群拆解成單獨(dú)的服務(wù)器進(jìn)行運(yùn)算時(shí)無法將每單臺(tái)服務(wù)器生成的HFile文件導(dǎo)入到服務(wù)器集群的HBase表中的問題,且有效地提高了數(shù)據(jù)迀移效率。
【附圖說明】
[0015]圖1是本發(fā)明實(shí)施例中一種數(shù)據(jù)迀移方法應(yīng)用場(chǎng)景示意圖;
[0016]圖2是本發(fā)明實(shí)施例中一種數(shù)據(jù)迀移方法流程示意圖;
[0017]圖3是本發(fā)明實(shí)施例中一種數(shù)據(jù)迀移裝置的邏輯結(jié)構(gòu)示意圖;
[0018]圖4是本發(fā)明實(shí)施例中數(shù)據(jù)迀移裝置所在獨(dú)立服務(wù)器的硬件架構(gòu)示意圖。
【具體實(shí)施方式】
[0019]為使本申請(qǐng)的目的,技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖對(duì)本申請(qǐng)方案做進(jìn)一步的詳細(xì)說明。
[0020]為了解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供了一種數(shù)據(jù)迀移方法以及裝置。
[0021]圖1示出了本發(fā)明提供的數(shù)據(jù)迀移方法所應(yīng)用的網(wǎng)絡(luò)環(huán)境示意圖,包括服務(wù)器集群I以及服務(wù)器集群2,其中,服務(wù)器集群I存儲(chǔ)有大量待迀移數(shù)據(jù)的服務(wù)器集群(以下稱源服務(wù)器集群),服務(wù)器集群2 (以下稱目的服務(wù)器集群)則為需要將源服務(wù)器集群中的待迀移數(shù)據(jù)迀移至的服務(wù)器集群。該源服務(wù)器集群以及目的服務(wù)器集群均為由多個(gè)服務(wù)器的服務(wù)器集群,例如,源服務(wù)器集群包括服務(wù)器SI以及S2,目的服務(wù)器集群包括服務(wù)器S3、S4、S5 以及 S6。
[0022]請(qǐng)參考圖2,為本發(fā)明提供的數(shù)據(jù)迀移方法的處理流程示意圖,該數(shù)據(jù)迀移方法可應(yīng)用于對(duì)目的服務(wù)器集群進(jìn)行拆解后的獨(dú)立服務(wù)器,該數(shù)據(jù)迀移方法包括以下步驟:
[0023]步驟201,獲取指定服務(wù)器創(chuàng)建的HBase表;
[0024]實(shí)際應(yīng)用中,在需要將歷史數(shù)據(jù)等大量的數(shù)據(jù)迀移至目的服務(wù)器集群時(shí),為了解決現(xiàn)有技術(shù)中利用服務(wù)器集群的批處理算法對(duì)待迀移數(shù)據(jù)進(jìn)行分析、運(yùn)算時(shí),導(dǎo)致的整體迀移效率較低、占用Hbase (分布式的、面向列的開源數(shù)據(jù)庫(kù))表reg1n (Hbase表的子集)資源等情況,本發(fā)明實(shí)施例可以首先將目的服務(wù)器集群進(jìn)行拆解,即:將由多個(gè)服務(wù)器組成的目的服務(wù)器集群拆解為多個(gè)獨(dú)立的單機(jī)服務(wù)器。
[0025]接著,在進(jìn)行拆解后的每臺(tái)單機(jī)服務(wù)器上安裝相同版本的Hadoop(分布式系統(tǒng)基礎(chǔ)架構(gòu)),Hbase等大數(shù)據(jù)相關(guān)組件,以保證各單機(jī)服務(wù)器后續(xù)可以運(yùn)行具有相同reg1n的Hbase 表。
[0026]由于若要將多個(gè)服務(wù)器獲取的多份待迀移數(shù)據(jù)迀移至目標(biāo)服務(wù)器集群的同一個(gè)Hbase表,需要保證該多份待迀移數(shù)據(jù)為相同的格式,即:多份待迀移數(shù)據(jù)均為HFileOffiase的數(shù)據(jù)存儲(chǔ)格式)格式。因此,本發(fā)明實(shí)施例可以從該被拆解前的服務(wù)器集群所包括的所有單機(jī)服務(wù)器中選取出一臺(tái)指定服務(wù)器,并由該指定服務(wù)器創(chuàng)建Hbase表,并將創(chuàng)建的Hbase表同步至被拆解前的服務(wù)器集群所包括的其他單機(jī)服務(wù)器,進(jìn)而保證多個(gè)獨(dú)立的單機(jī)服務(wù)器可以運(yùn)行具有相同reg1n的Hbase表。
[0027]其中,該指定服務(wù)器上創(chuàng)建的Hbase表為待迀移數(shù)據(jù)被迀移后所存放的目標(biāo)Hbase 表。
[0028]具體地,所述獲取指定服務(wù)器創(chuàng)建的Hbase表可以分為以下兩種方式:
[0029]當(dāng)該獨(dú)立服務(wù)器為該指定服務(wù)器時(shí),獨(dú)立服務(wù)器所獲取的Hbase表則為自身創(chuàng)建的Hbase表;當(dāng)該獨(dú)立服務(wù)器不為指定服務(wù)器時(shí),獨(dú)立服務(wù)器所獲取的Hbase表則為指定服務(wù)器同步給該獨(dú)立服務(wù)器的Hbase表。
[0030]相應(yīng)地,在同步Hbase表時(shí),若該獨(dú)立服務(wù)器為該指定服務(wù)器,那么,獨(dú)立服務(wù)器(指定服務(wù)器)在創(chuàng)建Hbase表后,將創(chuàng)建的Hbase表同步至被拆解前的服務(wù)器集群所包括的其他單機(jī)服務(wù)器;若該獨(dú)立服務(wù)器不是該指定服務(wù)器,那么,獨(dú)立服務(wù)器則可以接收到指定服務(wù)器在創(chuàng)建Hbase表后發(fā)送的Hbase表。
[0031]步驟202,獲取待迀移數(shù)據(jù),根據(jù)所述HBase表將所述待迀移數(shù)據(jù)生成指定格式的數(shù)據(jù)文件;其中,所述待迀移數(shù)據(jù)為按照所述服務(wù)器集群拆解后獲得的獨(dú)立服務(wù)器數(shù)量對(duì)所有待迀移數(shù)據(jù)進(jìn)行拆分后,分配給各個(gè)獨(dú)立服務(wù)器分別處理的對(duì)應(yīng)數(shù)據(jù);
[0032]本發(fā)明實(shí)施例可以按照待迀移數(shù)據(jù)的數(shù)據(jù)時(shí)間或者數(shù)據(jù)量根據(jù)拆解前服務(wù)器集群的服務(wù)器數(shù)量人為的對(duì)待迀移數(shù)據(jù)進(jìn)行合理的拆分,進(jìn)而保證各單機(jī)服務(wù)器在獲取待迀移數(shù)據(jù)時(shí),每臺(tái)單機(jī)服務(wù)器上獲取的數(shù)據(jù)量、生成的HFile數(shù)據(jù)可以相對(duì)平均,避免出現(xiàn)由于某臺(tái)單機(jī)服務(wù)器需要處理的數(shù)據(jù)量過大,而導(dǎo)致整體生成HFile文件的時(shí)間過長(zhǎng)。
[0033]例如,在對(duì)待迀移數(shù)據(jù)按照待迀移數(shù)據(jù)的數(shù)據(jù)量進(jìn)行拆分時(shí),假設(shè)對(duì)服務(wù)器集群拆解后的單機(jī)服務(wù)器數(shù)量為4個(gè),該待迀移數(shù)據(jù)的數(shù)據(jù)量為4億項(xiàng)記錄,那么則將該待迀移數(shù)據(jù)拆分為4份待迀移數(shù)據(jù),