一種用于多級存儲數(shù)據(jù)的多維分析方法
【專利說明】一種用于多級存儲數(shù)據(jù)的多維分析方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及一種多維分析方法,具體涉及一種用于多級存儲數(shù)據(jù)的多維分析方法。
【背景技術(shù)】
[0003]隨著電力企業(yè)業(yè)務(wù)信息系統(tǒng)應(yīng)用的逐步深入,業(yè)務(wù)數(shù)據(jù)量將逐漸龐大,對數(shù)據(jù)進(jìn)行即時多維分析需求強烈。目前國外數(shù)據(jù)分析應(yīng)用研究主要集中在以下5個方面:
I)企業(yè)級報表。報表生成器用來生成很好的格式化的靜態(tài)報表,這些報表廣泛的向多數(shù)人發(fā)布。
[0004]2)立方體分析?;诹⒎襟w的BI工具向業(yè)務(wù)經(jīng)理們提供簡單的切片和鉆取分析能力。
[0005]3)任意查詢和分析。供超級用戶對數(shù)據(jù)庫進(jìn)行任意的訪問,對整個數(shù)據(jù)庫進(jìn)行切片、鉆取,從而分析到最細(xì)粒度的業(yè)務(wù)信息。
[0006]4)統(tǒng)計分析和數(shù)據(jù)挖掘。通過統(tǒng)計分析和數(shù)據(jù)挖掘工具,可以使用各類數(shù)據(jù)挖掘模型進(jìn)行預(yù)測或者尋找兩個變量之間的因果相關(guān)性。
[0007]5)報表分發(fā)和預(yù)警一一基于報表分發(fā)機制,可以根據(jù)訂閱、調(diào)度或者數(shù)據(jù)庫中的觸發(fā)事件向大量的用戶群發(fā)送整個報表或者告警信息。
[0008]目前使用的多維分析產(chǎn)品不支持多級存儲數(shù)據(jù)的實時數(shù)據(jù)分析,都是需要先把分級存儲的數(shù)據(jù)集中到總部的數(shù)據(jù)中心然后才能進(jìn)行全局性多維分析,這樣就導(dǎo)致多維分析的即時性大打折扣,對數(shù)據(jù)價值的利用也大打折扣。
【發(fā)明內(nèi)容】
[0009]為了解決上述技術(shù)問題,本發(fā)明提供了一種用于多級存儲數(shù)據(jù)的多維分析方法。
[0010]為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案是:
一種用于多級存儲數(shù)據(jù)的多維分析方法,包括以下步驟,
步驟一,構(gòu)建統(tǒng)一數(shù)據(jù)模型;
結(jié)合智能路由算法,將多級存儲數(shù)據(jù)映射成統(tǒng)一數(shù)據(jù)模型;
步驟二,構(gòu)建多維分析模型;
將統(tǒng)一數(shù)據(jù)模型按照業(yè)務(wù)規(guī)則映射成多維分析模型;
步驟三,多維分析計算和展現(xiàn);
計算引擎把多維分析模型按照路由信息自動生成下級計算節(jié)點對應(yīng)的聚合計算語句,并由計算代理執(zhí)行聚合操作,生成預(yù)聚合結(jié)果并上傳到主控服務(wù)器,然后執(zhí)行二次聚合計算,生成多維計算結(jié)果集;
計算引擎根據(jù)多維分析模型,結(jié)合統(tǒng)一數(shù)據(jù)模型,形成維度成員查詢算法,查詢出維度成員,生成展現(xiàn)報表的單元格對象,并把多維分析結(jié)果填充到單元格對象中,實現(xiàn)多維分析結(jié)果的多維度展示。
[0011]在多維分析模型中可視化構(gòu)建界面,按照多維分析業(yè)務(wù)場景,將統(tǒng)一數(shù)據(jù)模型中的屬性映射成多維分析模型中的指標(biāo)或維度信息。
[0012]多維分析計算和展現(xiàn)的過程為,
Al)加載多維分析模型;
根據(jù)要展示的多維分析模型編號,查找是否有多維分析模型緩存,如果沒有,則加載該多維分析模型;
A2)加載維度成員;
維度成員包括靜態(tài)維度成員和動態(tài)維度成員;靜態(tài)維度成員是定義在多維分析模型中不變化的的成員;動態(tài)維度成員存儲在維度表中;
A3)生成數(shù)據(jù)集對象;
分析關(guān)聯(lián)的統(tǒng)一數(shù)據(jù)模型、多維分析模型以及約束條件,生成SQL語句、數(shù)據(jù)源標(biāo)識、統(tǒng)一數(shù)據(jù)模型編號以及多維分析模型編號,并生成數(shù)據(jù)集對象;
A4)生成單元格矩陣;
根據(jù)多維分析模型中維度的層級關(guān)系、維度所在坐標(biāo)軸以及指標(biāo)數(shù)目,遍歷XML節(jié)點,生成單元格對象矩陣;
單元格對象分為三種類型:表頭、維度和度量;
A5)生成統(tǒng)計對象;
首先判斷是否有“地區(qū)”維度,如果有,選取第一個“地區(qū)”維度對應(yīng)的度量單元格并生成對象列表;如果沒有,把所有度量單元格生成對象列表;
對象列表中對象編號和單元格矩陣中度量單元格對象的編號一致;
A6)智能路由;
根據(jù)維度成員信息查找路由表中是否存在記錄,如果有記錄,提取路由路徑;如果沒有記錄,廣播所有路徑;
A7 )計算代理執(zhí)行計算;
計算代理首先解析數(shù)據(jù)集對象,并把解析獲得的數(shù)據(jù)存入內(nèi)存中,然后計算每個對象;
A8)動態(tài)聚合計算并填充單元格;
計算引擎根據(jù)路由信息,判斷所有節(jié)點對象數(shù)據(jù)都返回完畢,開始執(zhí)行動態(tài)聚合操作;
聚合時,如果沒有“地區(qū)”維度,累加相同編號對象的值并賦值于相同編號的度量單元格對象;如果有“地區(qū)”維度,把“地區(qū)”作為對象編號的前綴,然后查找相同編號的單元格對象并賦值;聚合計算后計算合計,最終形成多維分析報表展示對象;
A9)對展示對象進(jìn)行封裝,傳遞到前端解析后展示。
[0013]所有節(jié)點對象數(shù)據(jù)均采用同步機制返回到總部。
[0014]對象列表分為實指標(biāo)對象列表和虛指標(biāo)對象列表;對于實指標(biāo)對象,每個對象要關(guān)聯(lián)到相應(yīng)的業(yè)務(wù)對象和屬性;對于虛指標(biāo)對象,要關(guān)聯(lián)到相應(yīng)的實指標(biāo)對象。
[0015]在計算代理執(zhí)行計算時,實指標(biāo)對象,通過過濾條件、屬性以及算法,從內(nèi)存中取得數(shù)據(jù)并計算,實指標(biāo)對象計算完畢后再計算虛指標(biāo)對象。
[0016]本發(fā)明所達(dá)到的有益效果:1、本發(fā)明多維分析方法能夠?qū)崿F(xiàn)分級存儲數(shù)據(jù)的實時多維分析,不需要事先把數(shù)據(jù)集中起來;2、本發(fā)明填補了市場空白,滿足了當(dāng)前大型企業(yè)對全局性分公司數(shù)據(jù)的即時多維分析的需求。
【附圖說明】
[0017]圖1為本發(fā)明的流程圖。
[0018]圖2為多維分析計算和展現(xiàn)的流程圖。
【具體實施方式】
[0019]下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護(hù)范圍。
[0020]如圖1所示,一種用于多級存儲數(shù)據(jù)的多維分析方法,包括以下步驟:
步驟一,構(gòu)建統(tǒng)一數(shù)據(jù)模型。
[0021]結(jié)合智能路由算法,將多級存儲數(shù)據(jù)映射成統(tǒng)一數(shù)據(jù)模型,屏蔽多級存儲的位置差異,實現(xiàn)多級存儲數(shù)據(jù)的統(tǒng)一數(shù)據(jù)模型描述。
[0022]步驟二,構(gòu)建多維分析模型。
[0023]將統(tǒng)一數(shù)據(jù)模型按照業(yè)務(wù)規(guī)則映射成多維分析模型;在多維分析模型中可視化構(gòu)建界面,按照多維分析業(yè)務(wù)場景,將統(tǒng)一數(shù)據(jù)模型中的屬性映射成多維分析模型中的指標(biāo)或維度信息。
[0024]多維分析模型是多維分析計算的基礎(chǔ),多維分析模型的好壞直接影響到多維分析功能的復(fù)雜度和效率,多維分析模型結(jié)合國內(nèi)用戶的使用習(xí)慣,比常用的多維分析工具功能更加強大,能夠?qū)崿F(xiàn)不規(guī)則的多維分析業(yè)務(wù)場景。
[0025]步驟三,多維分析計算和展現(xiàn)。
[0026]計算引擎把多維分析模型按照路由信息自動生成下級計算節(jié)點對應(yīng)的聚合計算語句,并由計算代理執(zhí)行聚合操作,生成預(yù)聚合結(jié)果并上傳到主控服務(wù)器,然后執(zhí)行二次聚合計算,生成多維計算結(jié)果集;
計算引擎根據(jù)多維分析模型,結(jié)合統(tǒng)一數(shù)據(jù)模型,形成維度成員查詢算法,查詢出維度成員,生成展現(xiàn)報表的單元格對象,并把多維分析結(jié)果填充到單元格對象中,實現(xiàn)多維分析結(jié)果的多維度展示。
[0027]如圖2所示,多維分析計算和展現(xiàn)的過程為:
Al)加載多維分析模型。
[0028]根據(jù)要展示的多維分析模型編號,查找是否有多維分析模型緩存,如果沒有,則加載該多維分析模