本發(fā)明涉及多源數(shù)據(jù)同步,尤其涉及一種多數(shù)據(jù)源的數(shù)據(jù)同步方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、在信息化系統(tǒng)中,經(jīng)常出現(xiàn)需要同步多數(shù)據(jù)源的數(shù)據(jù)到業(yè)務(wù)系統(tǒng)中。
2、在多源同步過程中,多數(shù)據(jù)源常出現(xiàn)多源并發(fā),數(shù)據(jù)單位時間變化大,數(shù)據(jù)分布不均勻的情況。傳統(tǒng)信息系統(tǒng)通常都是采用多節(jié)點(diǎn)的方式,將多數(shù)據(jù)源均分到每個節(jié)點(diǎn),每個節(jié)點(diǎn)通過多線程等技術(shù)統(tǒng)一對數(shù)據(jù)源進(jìn)行處理。但是多節(jié)點(diǎn)的數(shù)據(jù)處理方式,通常節(jié)點(diǎn)上只有數(shù)據(jù)同步服務(wù)不會存在其他業(yè)務(wù)服務(wù),這就會出現(xiàn)在數(shù)據(jù)同步空閑的時候,節(jié)點(diǎn)也會空閑,造成資源浪費(fèi)。而且多節(jié)點(diǎn)的采樣,通常不能真實的反饋現(xiàn)實數(shù)據(jù)的情況,在一定情況下造成數(shù)據(jù)失真。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供了一種多數(shù)據(jù)源的數(shù)據(jù)同步方法、設(shè)備及介質(zhì),用于解決多源數(shù)據(jù)同步過程中出現(xiàn)的同步不均勻、節(jié)點(diǎn)資源浪費(fèi)、數(shù)據(jù)失真的技術(shù)問題。
2、本發(fā)明采用下述技術(shù)方案:
3、第一方面,本發(fā)明提供了一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,所述方法包括:確定待同步數(shù)據(jù)對應(yīng)的多個數(shù)據(jù)源,以根據(jù)所述多個數(shù)據(jù)源的數(shù)量確定時間輪長度;在所述時間輪上,為每個數(shù)據(jù)源劃分相等的時間步長δt;基于所述時間輪對所述多個數(shù)據(jù)源依次進(jìn)行數(shù)據(jù)同步;根據(jù)所述時間步長δt內(nèi)的數(shù)據(jù)同步時間和未處理數(shù)據(jù)量,預(yù)估所述多個數(shù)據(jù)源在下一時間輪上分別對應(yīng)的時間步長δt1,并將δt更新為δt1;根據(jù)所述下一時間輪繼續(xù)對所述多個數(shù)據(jù)源依次進(jìn)行數(shù)據(jù)同步,直至完成所述待同步數(shù)據(jù)的數(shù)據(jù)同步過程。
4、在本發(fā)明的一種可能實現(xiàn)方式中,所述時間輪長度根據(jù)所述多個數(shù)據(jù)源的數(shù)量和所述時間步長δt之間的乘積確定,包括:所述時間輪長度為所述多個數(shù)據(jù)源的數(shù)量和所述時間步長之間的乘積,加上反饋時間,所述反饋時間用于指示所述多個數(shù)據(jù)源對所述時間輪對應(yīng)的數(shù)據(jù)同步結(jié)果進(jìn)行反饋所占用的時間。
5、在本發(fā)明的一種可能實現(xiàn)方式中,所述時間輪的長度不大于1分鐘。
6、在本發(fā)明的一種可能實現(xiàn)方式中,預(yù)估所述多個數(shù)據(jù)源在下一時間輪上分別對應(yīng)的時間步長δt1,包括:通過每個數(shù)據(jù)源在所述數(shù)據(jù)同步時間內(nèi)的同步數(shù)據(jù)量和時間步長δt內(nèi)的未處理數(shù)據(jù)量,計算同步曲線導(dǎo)數(shù);根據(jù)每個數(shù)據(jù)源所對應(yīng)的所述同步曲線導(dǎo)數(shù),計算每個數(shù)據(jù)源在下一時間輪上的時間步長δt1。
7、在本發(fā)明的一種可能實現(xiàn)方式中,在所述時間輪上,所述時間步長δt由數(shù)據(jù)同步時間和數(shù)據(jù)處理時間構(gòu)成,且所述數(shù)據(jù)同步時間和所述數(shù)據(jù)處理時間的分配比例為1:1。
8、在本發(fā)明的一種可能實現(xiàn)方式中,所述方法還包括:在執(zhí)行完一次時間輪后,根據(jù)每個數(shù)據(jù)源對應(yīng)的數(shù)據(jù)同步時間和未處理數(shù)據(jù)量,在下一時間輪上重新分配其對應(yīng)時間步長δt內(nèi)所述數(shù)據(jù)同步時間和所述數(shù)據(jù)處理時間的比例,并提高所述數(shù)據(jù)處理時間的占比;將未處理完的數(shù)據(jù)存放入對應(yīng)數(shù)據(jù)源的待處理隊列中。
9、在本發(fā)明的一種可能實現(xiàn)方式中,所述方法還包括:在下一時間輪上,存在未處理數(shù)據(jù)量的數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步時,在其對應(yīng)的數(shù)據(jù)處理時間內(nèi),優(yōu)先處理所述待處理隊列中存放的數(shù)據(jù)。
10、在本發(fā)明的一種可能實現(xiàn)方式中,所述方法還包括:若所述多個數(shù)據(jù)源中的任一數(shù)據(jù)源,在連續(xù)的n個時間輪上均無同步數(shù)據(jù),則將所述任一數(shù)據(jù)源標(biāo)記為無數(shù)據(jù)模式;在下一時間輪上不為被標(biāo)記為無數(shù)據(jù)模式的數(shù)據(jù)源分配所述時間步長δt。
11、第二方面,本發(fā)明還提供了一種多數(shù)據(jù)源的數(shù)據(jù)同步設(shè)備,所述設(shè)備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有能夠被所述至少一個處理器執(zhí)行的指令,以使所述至少一個處理器能夠執(zhí)行:確定待同步數(shù)據(jù)對應(yīng)的多個數(shù)據(jù)源,以根據(jù)所述多個數(shù)據(jù)源的數(shù)量確定時間輪長度;在所述時間輪上,為每個數(shù)據(jù)源劃分相等的時間步長δt;基于所述時間輪對所述多個數(shù)據(jù)源依次進(jìn)行數(shù)據(jù)同步;根據(jù)所述時間步長δt內(nèi)的數(shù)據(jù)同步時間和未處理數(shù)據(jù)量,預(yù)估所述多個數(shù)據(jù)源在下一時間輪上分別對應(yīng)的時間步長δt1,并將δt更新為δt1;根據(jù)所述下一時間輪繼續(xù)對所述多個數(shù)據(jù)源依次進(jìn)行數(shù)據(jù)同步,直至完成所述待同步數(shù)據(jù)的數(shù)據(jù)同步過程。
12、第三方面,本發(fā)明還提供了一種非易失性計算機(jī)存儲介質(zhì),其上存儲有計算機(jī)可執(zhí)行指令,所述計算機(jī)可執(zhí)行指令被設(shè)置為執(zhí)行:確定待同步數(shù)據(jù)對應(yīng)的多個數(shù)據(jù)源,以根據(jù)所述多個數(shù)據(jù)源的數(shù)量確定時間輪長度;在所述時間輪上,為每個數(shù)據(jù)源劃分相等的時間步長δt;基于所述時間輪對所述多個數(shù)據(jù)源依次進(jìn)行數(shù)據(jù)同步;根據(jù)所述時間步長δt內(nèi)的數(shù)據(jù)同步時間和未處理數(shù)據(jù)量,預(yù)估所述多個數(shù)據(jù)源在下一時間輪上分別對應(yīng)的時間步長δt1,并將δt更新為δt1;根據(jù)所述下一時間輪繼續(xù)對所述多個數(shù)據(jù)源依次進(jìn)行數(shù)據(jù)同步,直至完成所述待同步數(shù)據(jù)的數(shù)據(jù)同步過程。
13、本發(fā)明提供的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法、設(shè)備及介質(zhì),具有以下有益效果:
14、本發(fā)明通過時間輪進(jìn)行數(shù)據(jù)同步,且在時間輪上各數(shù)據(jù)源的時間步長可根據(jù)上一時間輪的同步結(jié)果反饋或者上一時間輪上各數(shù)據(jù)源未處理數(shù)據(jù)量來進(jìn)行調(diào)整,能夠及時的調(diào)整時間輪上的分配,使時間輪上各數(shù)據(jù)源的時間步長分布更合理,能夠?qū)崿F(xiàn)在多數(shù)據(jù)源同步過程中比傳統(tǒng)多源數(shù)據(jù)同步,數(shù)據(jù)同步更均勻,數(shù)據(jù)變化更貼近真實;同時,本發(fā)明利用時間輪進(jìn)行數(shù)據(jù)同步的方案,避免了傳統(tǒng)的使用多節(jié)點(diǎn)方案,可以顯著的節(jié)省節(jié)點(diǎn)和硬件資源,同時,在多源數(shù)據(jù)高并發(fā)的時候,通過時間輪能夠?qū)?shù)據(jù)磨峰填谷,減緩了高并發(fā)的數(shù)據(jù)對于數(shù)據(jù)庫的壓力。
1.一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,所述時間輪長度根據(jù)所述多個數(shù)據(jù)源的數(shù)量和所述時間步長δt之間的乘積確定,包括:
3.根據(jù)權(quán)利要求2所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,所述時間輪的長度不大于1分鐘。
4.根據(jù)權(quán)利要求1所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,預(yù)估所述多個數(shù)據(jù)源在下一時間輪上分別對應(yīng)的時間步長δt1,包括:
5.根據(jù)權(quán)利要求1所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,
6.根據(jù)權(quán)利要求5所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求1所述的一種多數(shù)據(jù)源的數(shù)據(jù)同步方法,其特征在于,所述方法還包括:
9.一種多數(shù)據(jù)源的數(shù)據(jù)同步設(shè)備,其特征在于,所述設(shè)備包括:
10.一種非易失性計算機(jī)存儲介質(zhì),其上存儲有計算機(jī)可執(zhí)行指令,其特征在于,所述計算機(jī)可執(zhí)行指令被設(shè)置為執(zhí)行: