本申請涉及數(shù)據(jù)處理,特別是涉及一種數(shù)據(jù)遷移方法、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著計算機技術(shù)的發(fā)展,數(shù)據(jù)庫在各行各業(yè)都得到了廣泛的應(yīng)用,數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,是一個長期存儲在計算機內(nèi)的、有組織的、可共享的、統(tǒng)一管理的大量數(shù)據(jù)的集合。
2、在實際使用過程中,需要將數(shù)據(jù)庫集群中的數(shù)據(jù)全量或部分遷移到另外一個集群中。目前的遷移方式仍然存在成功率和遷移效率較低的問題,如全量遷移過程中如果數(shù)據(jù)量較大,遷移時間會很長,而遷移期間新的集群不可用,如果是實時業(yè)務(wù),會在較長時間內(nèi)影響業(yè)務(wù)使用,以及進行數(shù)據(jù)遷移時需要將表中所有數(shù)據(jù)加載到內(nèi)存中,容易出現(xiàn)因為內(nèi)存不足導(dǎo)致遷移任務(wù)失敗,如果多次遷移失敗,會嚴(yán)重影響數(shù)據(jù)使用。
技術(shù)實現(xiàn)思路
1、為了解決上述技術(shù)問題,本申請至少提供一種數(shù)據(jù)遷移方法、設(shè)備及存儲介質(zhì)。
2、本申請第一方面提供了一種數(shù)據(jù)遷移方法,應(yīng)用于源集群,源集群通過數(shù)據(jù)表對數(shù)據(jù)進行存儲,方法包括:基于源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將數(shù)據(jù)表劃分為多個分區(qū)表;對比每個分區(qū)表中預(yù)設(shè)列數(shù)據(jù)的值之間的次序關(guān)系,得到每個分區(qū)表的遷移優(yōu)先級,并按照每個分區(qū)表的遷移優(yōu)先級對每個分區(qū)表進行排序,得到每個分區(qū)表的排序結(jié)果;獲取當(dāng)前批次對應(yīng)的遷移數(shù)據(jù)量,從排序結(jié)果中選取出當(dāng)前批次待遷移的分區(qū)表;其中,選取出的分區(qū)表的數(shù)據(jù)量總和小于或等于遷移數(shù)據(jù)量;基于當(dāng)前批次待遷移的分區(qū)表分別對應(yīng)的遷移優(yōu)先級,將當(dāng)前批次待遷移的分區(qū)表中的數(shù)據(jù)依次遷移至目標(biāo)集群中。
3、在一實施例中,基于源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將數(shù)據(jù)表劃分為多個分區(qū)表,包括:獲取對數(shù)據(jù)表進行劃分的范圍粒度,范圍粒度用于限定值范圍的范圍大?。换诜秶6却_定值范圍的分區(qū)開始值和分區(qū)結(jié)束值;將數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)處于分區(qū)開始值和分區(qū)結(jié)束值內(nèi)的數(shù)據(jù)行,劃分至值范圍對應(yīng)的分區(qū)表中。
4、在一實施例中,獲取對數(shù)據(jù)表進行劃分的范圍粒度,包括:獲取針對數(shù)據(jù)表記錄的數(shù)據(jù)讀寫操作;基于數(shù)據(jù)讀寫操作設(shè)定對數(shù)據(jù)表進行劃分的范圍粒度。
5、在一實施例中,基于數(shù)據(jù)讀寫操作設(shè)定對數(shù)據(jù)表進行劃分的范圍粒度,包括:統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)讀寫操作的次數(shù),得到統(tǒng)計結(jié)果;基于統(tǒng)計結(jié)果,計算對數(shù)據(jù)表進行劃分的范圍粒度。
6、在一實施例中,基于數(shù)據(jù)讀寫操作設(shè)定對數(shù)據(jù)表進行劃分的范圍粒度,包括:獲取每個數(shù)據(jù)讀寫操作關(guān)聯(lián)的字段和業(yè)務(wù),統(tǒng)計得到各個字段關(guān)聯(lián)的業(yè)務(wù);基于各個字段關(guān)聯(lián)的業(yè)務(wù)對應(yīng)的重要程度,得到與數(shù)據(jù)表匹配的范圍粒度。
7、在一實施例中,預(yù)設(shè)列數(shù)據(jù)包括時間數(shù)據(jù),值范圍包括時間范圍;基于源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將數(shù)據(jù)表劃分為多個分區(qū)表,包括:基于源集群存儲的數(shù)據(jù)表中時間數(shù)據(jù)所處的時間范圍,將數(shù)據(jù)表劃分為多個分區(qū)表。
8、在一實施例中,獲取當(dāng)前批次對應(yīng)的遷移數(shù)據(jù)量,包括:檢測源集群和/或目標(biāo)集群的可用內(nèi)存資源;基于可用內(nèi)存資源,設(shè)定單次遷移數(shù)據(jù)量。
9、在一實施例中,檢測源集群和/或目標(biāo)集群的可用內(nèi)存資源,包括:記錄歷史時間段內(nèi)源集群和/或目標(biāo)集群的內(nèi)存資源使用情況;基于歷史時間段內(nèi)的內(nèi)存資源使用情況,分析源集群和/或目標(biāo)集群在未來時間段內(nèi)的內(nèi)存資源變化趨勢;基于內(nèi)存資源變化趨勢,計算得到源集群和/或目標(biāo)集群的可用內(nèi)存資源。
10、本申請第二方面提供了一種數(shù)據(jù)遷移裝置,裝置包括:表分區(qū)模塊,用于基于源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將數(shù)據(jù)表劃分為多個分區(qū)表;排序模塊,用于對比每個分區(qū)表中預(yù)設(shè)列數(shù)據(jù)的值之間的次序關(guān)系,得到每個分區(qū)表的遷移優(yōu)先級,并按照每個分區(qū)表的遷移優(yōu)先級對每個分區(qū)表進行排序,得到每個分區(qū)表的排序結(jié)果;批次選取模塊,用于獲取當(dāng)前批次對應(yīng)的遷移數(shù)據(jù)量,從排序結(jié)果中選取出當(dāng)前批次待遷移的分區(qū)表;其中,選取出的分區(qū)表的數(shù)據(jù)量總和小于或等于遷移數(shù)據(jù)量;遷移模塊,用于基于當(dāng)前批次待遷移的分區(qū)表分別對應(yīng)的遷移優(yōu)先級,將當(dāng)前批次待遷移的分區(qū)表中的數(shù)據(jù)依次遷移至目標(biāo)集群中。
11、本申請第三方面提供了一種電子設(shè)備,包括存儲器和處理器,處理器用于執(zhí)行存儲器中存儲的程序指令,以實現(xiàn)上述數(shù)據(jù)遷移方法。
12、本申請第四方面提供了一種計算機可讀存儲介質(zhì),其上存儲有程序指令,程序指令被處理器執(zhí)行時實現(xiàn)上述數(shù)據(jù)遷移方法。
13、上述方案,通過基于源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將數(shù)據(jù)表劃分為多個分區(qū)表;對比每個分區(qū)表中預(yù)設(shè)列數(shù)據(jù)的值之間的次序關(guān)系,得到每個分區(qū)表的遷移優(yōu)先級,并按照每個分區(qū)表的遷移優(yōu)先級對每個分區(qū)表進行排序,得到每個分區(qū)表的排序結(jié)果;獲取當(dāng)前批次對應(yīng)的遷移數(shù)據(jù)量,從排序結(jié)果中選取出當(dāng)前批次待遷移的分區(qū)表;其中,選取出的分區(qū)表的數(shù)據(jù)量總和小于或等于遷移數(shù)據(jù)量;基于當(dāng)前批次待遷移的分區(qū)表分別對應(yīng)的遷移優(yōu)先級,將當(dāng)前批次待遷移的分區(qū)表中的數(shù)據(jù)依次遷移至目標(biāo)集群中,以優(yōu)先對優(yōu)先級高的數(shù)據(jù)進行遷移,保證部分業(yè)務(wù)的有效運行,減小數(shù)據(jù)遷移對業(yè)務(wù)的影響,并通過分批次數(shù)據(jù)遷移的方式,避免因為內(nèi)存不足引起的遷移失敗的情況。
14、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,而非限制本申請。
1.一種數(shù)據(jù)遷移方法,其特征在于,應(yīng)用于源集群,所述源集群通過數(shù)據(jù)表對數(shù)據(jù)進行存儲,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將所述數(shù)據(jù)表劃分為多個分區(qū)表,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取對所述數(shù)據(jù)表進行劃分的范圍粒度,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述基于所述數(shù)據(jù)讀寫操作設(shè)定對所述數(shù)據(jù)表進行劃分的范圍粒度,包括:
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述基于所述數(shù)據(jù)讀寫操作設(shè)定對所述數(shù)據(jù)表進行劃分的范圍粒度,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)列數(shù)據(jù)包括時間數(shù)據(jù),所述值范圍包括時間范圍;所述基于所述源集群存儲的數(shù)據(jù)表中預(yù)設(shè)列數(shù)據(jù)所處的值范圍,將所述數(shù)據(jù)表劃分為多個分區(qū)表,包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取當(dāng)前批次對應(yīng)的遷移數(shù)據(jù)量,包括:
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述檢測所述源集群和/或所述目標(biāo)集群的可用內(nèi)存資源,包括:
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括存儲器和處理器,處理器用于執(zhí)行存儲器中存儲的程序指令,以實現(xiàn)如權(quán)利要求1-8任一項所述方法中的步驟。
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有程序指令,所述程序指令能夠被處理器執(zhí)行以實現(xiàn)如權(quán)利要求1-8任一項所述方法中的步驟。