本技術(shù)涉及數(shù)據(jù)計算領(lǐng)域,具體而言,涉及一種數(shù)據(jù)分治計算方法、裝置以及程序產(chǎn)品。
背景技術(shù):
1、在多維時序數(shù)據(jù)分析領(lǐng)域,需要對多個維度的數(shù)據(jù),例如時間、地理、產(chǎn)品等數(shù)據(jù)進(jìn)行切片、切塊、聚合以及分析計算。
2、然而在計算過程中,以金融場景為例,在分析大量甚至海量的歷史持倉和交易明細(xì)事實(shí)數(shù)據(jù)時,其往往涉及時間維度與不同的產(chǎn)品、資產(chǎn)層級維度的數(shù)據(jù),這些不同維度的數(shù)據(jù)之間往往存在相互依賴性,導(dǎo)致需要將大量數(shù)據(jù)同時加載至計算系統(tǒng)中進(jìn)行多維立方體計算。
3、此時,如果該計算系統(tǒng)為單機(jī)系統(tǒng),則大量的數(shù)據(jù)加載可能導(dǎo)致內(nèi)存溢出(out?ofmemory,?簡稱:oom)等穩(wěn)定性風(fēng)險;而如果該計算系統(tǒng)為分布式系統(tǒng),由于上述數(shù)據(jù)的計算在時間維度和資產(chǎn)維度不能進(jìn)行拆解,從而導(dǎo)致無法充分利用分布式系統(tǒng)的算力來提升計算性能。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的目的在于提供一種數(shù)據(jù)分治計算方法、裝置以及程序產(chǎn)品,其用于在保證計算任務(wù)準(zhǔn)確完成的前提下,提高對于計算設(shè)備計算性能的充分穩(wěn)定使用。
2、為了實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例采用的技術(shù)方案如下:
3、第一方面,本技術(shù)實(shí)施例提供一種數(shù)據(jù)分治計算方法,包括:
4、確認(rèn)計算請求對應(yīng)目標(biāo)計算任務(wù)的數(shù)據(jù)量;
5、根據(jù)數(shù)據(jù)量確定所述目標(biāo)計算任務(wù)的拆分粒度;
6、根據(jù)所述拆分粒度將所述目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù);
7、分別計算所述子計算任務(wù),獲得所述子計算任務(wù)對應(yīng)的子計算結(jié)果;
8、分別計算所述子計算任務(wù)的期末累計鏈接值,其中,所述期末累計鏈接值表征不同子計算結(jié)果的連續(xù)關(guān)系,用于各個所述子計算結(jié)果拆分后的斷點(diǎn)續(xù)接;
9、根據(jù)所述期末累計鏈接值與對應(yīng)的子計算結(jié)果進(jìn)行鏈接計算,獲得所述計算請求對應(yīng)的累計計算結(jié)果。
10、可選的,所述分別計算所述子計算任務(wù)的期末累計鏈接值,包括:
11、計算每個所述子計算任務(wù)的跨期因子,根據(jù)所述跨期因子確定所述子計算任務(wù)對應(yīng)的期末鏈接值;
12、根據(jù)每個所述期末鏈接值獲得所述期末累計鏈接值。
13、可選的,所述方法應(yīng)用于計算系統(tǒng),所述計算系統(tǒng)包含主節(jié)點(diǎn)和至少兩個工作節(jié)點(diǎn);所述確認(rèn)計算請求對應(yīng)目標(biāo)計算任務(wù)的數(shù)據(jù)量的步驟,包括:
14、所述主節(jié)點(diǎn)接收所述計算請求;
15、所述主節(jié)點(diǎn)確認(rèn)所述目標(biāo)計算任務(wù)的數(shù)據(jù)量;
16、所述根據(jù)數(shù)據(jù)量確定所述目標(biāo)計算任務(wù)的拆分粒度的步驟,包括:
17、所述主節(jié)點(diǎn)根據(jù)數(shù)據(jù)量確定所述目標(biāo)計算任務(wù)的拆分粒度;
18、所述根據(jù)所述拆分粒度將所述目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù)的步驟,包括:
19、所述主節(jié)點(diǎn)根據(jù)所述拆分粒度將所述目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù);
20、所述主節(jié)點(diǎn)將每個所述子計算任務(wù)分別分配給對應(yīng)的工作節(jié)點(diǎn);
21、分別計算所述子計算任務(wù),獲得所述子計算任務(wù)對應(yīng)的子計算結(jié)果的步驟,包括:
22、每個所述工作節(jié)點(diǎn)分別通過多維時序數(shù)據(jù)累計算法,計算所述子計算任務(wù)的子計算結(jié)果;
23、所述分別計算所述子計算任務(wù)的期末累計鏈接值的步驟,包括:
24、所述主節(jié)點(diǎn)分別從每個工作節(jié)點(diǎn)獲得對應(yīng)的子計算結(jié)果;
25、所述主節(jié)點(diǎn)計算每個所述子計算任務(wù)的期末累計鏈接值;
26、所述主節(jié)點(diǎn)根據(jù)所述期末累計鏈接值與對應(yīng)的子計算結(jié)果進(jìn)行鏈接計算,獲得所述計算請求對應(yīng)的累計計算結(jié)果。
27、可選的,所述確認(rèn)計算請求對應(yīng)目標(biāo)計算任務(wù)的數(shù)據(jù)量的步驟,包括:
28、針對所述目標(biāo)計算任務(wù)的數(shù)據(jù)切面進(jìn)行解析,獲得計算參數(shù);所述計算參數(shù)用于表征所述目標(biāo)計算任務(wù)的數(shù)據(jù)量以及時間長度;
29、所述根據(jù)數(shù)據(jù)量確定所述目標(biāo)計算任務(wù)的拆分粒度的步驟,包括:
30、根據(jù)所述計算參數(shù)判斷所述目標(biāo)計算任務(wù)是否需要拆分;
31、若需要,則根據(jù)數(shù)據(jù)量與內(nèi)存參數(shù)確定日期拆分粒度;
32、所述根據(jù)所述拆分粒度將所述目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù)的步驟,包括:
33、根據(jù)所述日期拆分粒度將所述目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù),每個所述子計算任務(wù)具有對應(yīng)的日期順序信息。
34、可選的,所述分別計算所述子計算任務(wù),獲得所述子計算任務(wù)對應(yīng)的子計算結(jié)果的步驟,包括:
35、分別通過多維時序數(shù)據(jù)累計算法,計算所述子計算任務(wù)的對應(yīng)的計算指標(biāo);
36、計算所述子計算任務(wù)的跨期因子,并根據(jù)所述跨期因子確定所述子計算任務(wù)對應(yīng)的期末鏈接值;
37、將所述計算指標(biāo)與所述期末鏈接值作為所述子計算結(jié)果;
38、所述根據(jù)所述期末累計鏈接值與對應(yīng)的子計算結(jié)果進(jìn)行鏈接計算,獲得所述計算請求對應(yīng)的累計計算結(jié)果的步驟,包括:
39、根據(jù)每個所述期末鏈接值,計算期末累計鏈接值;
40、根據(jù)所述期末累計鏈接值對各個所述子計算任務(wù)的計算指標(biāo)進(jìn)行鏈接計算獲得所述累計計算結(jié)果。
41、第二方面,本技術(shù)實(shí)施例提供一種數(shù)據(jù)分治計算裝置,包括:
42、拆分模塊,用于確認(rèn)計算請求對應(yīng)目標(biāo)計算任務(wù)的數(shù)據(jù)量;根據(jù)數(shù)據(jù)量確定所述目標(biāo)計算任務(wù)的拆分粒度;根據(jù)所述拆分粒度將所述目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù);
43、任務(wù)計算模塊,用于分別計算所述子計算任務(wù),獲得所述子計算任務(wù)對應(yīng)的子計算結(jié)果;
44、鏈接計算模塊,用于分別計算所述子計算任務(wù)的期末累計鏈接值,其中,所述期末累計鏈接值表征不同子計算結(jié)果的連續(xù)關(guān)系,用于各個所述子計算結(jié)果拆分后的斷點(diǎn)續(xù)接;根據(jù)所述期末累計鏈接值與對應(yīng)的子計算結(jié)果進(jìn)行鏈接計算,獲得所述計算請求對應(yīng)的累計計算結(jié)果。
45、第三方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括:
46、存儲器,用于存儲一個或多個程序;
47、處理器;
48、當(dāng)所述一個或多個程序被所述處理器執(zhí)行時,實(shí)現(xiàn)如上述第一個方面中任一項(xiàng)所述的方法。
49、第四方面,本技術(shù)實(shí)施例提供一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,其特征在于,該計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如上述第一個方面中任一項(xiàng)所述的方法。
50、第五方面,本技術(shù)實(shí)施例提供一種程序產(chǎn)品,所述程序產(chǎn)品被處理器執(zhí)行時,實(shí)現(xiàn)如上述第一個方面中任一項(xiàng)所述的方法。
51、相對于現(xiàn)有技術(shù),本技術(shù)實(shí)施例所提供的一種數(shù)據(jù)分治計算方法、裝置以及程序產(chǎn)品,通過確認(rèn)計算請求對應(yīng)目標(biāo)計算任務(wù)的數(shù)據(jù)量。根據(jù)數(shù)據(jù)量確定目標(biāo)計算任務(wù)的拆分粒度。根據(jù)拆分粒度將目標(biāo)計算任務(wù)拆分為至少兩個子計算任務(wù)。而利用子計算任務(wù)分開獲得各自的子計算結(jié)果,來充分利用計算系統(tǒng)的計算性能,進(jìn)而通過鏈接計算完成子計算任務(wù)的重組。在利用計算性能的同時,保證計算的準(zhǔn)確性。
52、為使本技術(shù)的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。