用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法和裝置。該用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法包括:獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型,第一關聯(lián)模型包括多個第一關聯(lián)模型分支,至少有一個第一關聯(lián)模型分支為多維度分支,多維度分支包括一個事實表和多個維度表;從第一關聯(lián)模型中獲取多維度分支;在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支,其中,第二關聯(lián)模型分支中維度表的數(shù)目小于多維度分支中維度表的數(shù)目;以及根據(jù)第一關聯(lián)模型分支和第二關聯(lián)模型分支,在分析數(shù)據(jù)庫中構建第二關聯(lián)模型。通過本發(fā)明,解決了相關技術中在聯(lián)機分析處理時,難以平衡查詢速度和存儲空間的問題。
【專利說明】用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法和裝置
【技術領域】
[0001]本發(fā)明涉及計算機領域,具體而言,涉及一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法和裝置。
【背景技術】
[0002]在數(shù)據(jù)倉庫中,通常采用星型關聯(lián)模型和/或雪花型關聯(lián)關系來進行事實表與維度表的建模。星型關聯(lián)模型(星型模型)是指一張事實表對應多張單一的維度表,就像星星一樣,而雪花型關聯(lián)關系(雪花型模型)是指一張事實表對應多張維度表,有些維度表又可能指向多張其它的維度表,就像雪花一樣。
[0003]在相關技術中,在聯(lián)機分析處理的分析數(shù)據(jù)庫中,一般基于事實表與維度表的原有關聯(lián)關系進行數(shù)據(jù)查詢。然而,根據(jù)上述查詢方案,在處理雪花型關聯(lián)關系中數(shù)據(jù)的查詢時,會因為多了一步或者多步維度表到維度表的指向關系,而使得查詢速度較慢。而處理星型關聯(lián)模型中數(shù)據(jù)的查詢時,雖然會因為只有一步指向關系而使得查詢速度較快,但是采用星型關聯(lián)模型在數(shù)據(jù)倉庫中建模卻要消耗大量的存儲空間。
[0004]針對相關技術中在聯(lián)機分析處理時,難以平衡查詢速度和存儲空間的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法和裝置,以解決相關技術中在聯(lián)機分析處理時,難以平衡查詢速度和存儲空間問題。
[0006]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法。該方法包括:獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型,其中,第一關聯(lián)模型包括事實表、維度表和事實表與維度表的第一關聯(lián)關系,第一關聯(lián)模型包括多個第一關聯(lián)模型分支,每個第一關聯(lián)模型分支包括事實表和維度表,并且多個第一關聯(lián)模型分支具有相同的事實表,至少有一個第一關聯(lián)模型分支為多維度分支,多維度分支包括一個事實表和多個維度表;從第一關聯(lián)模型中獲取多維度分支;在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支,其中,第二關聯(lián)模型分支中維度表的數(shù)目小于多維度分支中維度表的數(shù)目;以及根據(jù)第一關聯(lián)模型分支和第二關聯(lián)模型分支,在分析數(shù)據(jù)庫中構建第二關聯(lián)模型。
[0007]進一步地,在從第一關聯(lián)模型中獲取多維度分支之前,該數(shù)據(jù)處理方法還包括:判斷第一關聯(lián)模型中的第一關聯(lián)模型分支是否為多維度分支,其中,如果判斷出第一關聯(lián)模型中的第一關聯(lián)模型分支為多維度分支,則從第一關聯(lián)模型中獲取多維度分支包括:獲取第一關聯(lián)模型分支;將第一關聯(lián)模型分支作為多維度分支。
[0008]進一步地,在分析數(shù)據(jù)庫中構建第二關聯(lián)模型之后,該數(shù)據(jù)處理方法還包括:判斷第二關聯(lián)模型中是否存在具有多個維度的關聯(lián)模型分支;如果判斷出第二關聯(lián)模型中存在具有多個維度的關聯(lián)模型分支,則將具有多個維度的關聯(lián)模型分支轉換為多個具有一個維度表的關聯(lián)模型分支;以及根據(jù)多個具有一個維度表的關聯(lián)模型分支創(chuàng)建星型關聯(lián)模型。
[0009]進一步地,在獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型之后,數(shù)據(jù)處理方法還包括:在數(shù)據(jù)倉庫中創(chuàng)建第二關聯(lián)模型的視圖,其中,視圖用于表示事實表與維度表之間的連表關系;將事實表指向視圖,在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支包括:查找第一關聯(lián)模型中的多維度分支的事實表;根據(jù)事實表得到視圖;基于視圖在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支。
[0010]進一步地,在數(shù)據(jù)倉庫中創(chuàng)建視圖之后,該數(shù)據(jù)處理方法還包括:根據(jù)連表關系創(chuàng)建連表關系的索引。
[0011]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置。該裝置包括:第一獲取單元,用于獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型,其中,第一關聯(lián)模型包括事實表、維度表和事實表與維度表的第一關聯(lián)關系,第一關聯(lián)模型包括多個第一關聯(lián)模型分支,每個第一關聯(lián)模型分支包括事實表和維度表,并且多個第一關聯(lián)模型分支具有相同的事實表,至少有一個第一關聯(lián)模型分支為多維度分支,多維度分支包括一個事實表和多個維度表;第二獲取單元,用于從第一關聯(lián)模型中獲取多維度分支;第一轉換單元,用于在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支,其中,第二關聯(lián)模型分支中維度表的數(shù)目小于多維度分支中維度表的數(shù)目;以及第一構建單元,用于根據(jù)第一關聯(lián)模型分支和第二關聯(lián)模型分支,在分析數(shù)據(jù)庫中構建第二關聯(lián)模型。
[0012]進一步地,該數(shù)據(jù)處理裝置還包括:第一判斷單元,用于在從第一關聯(lián)模型中獲取多維度分支之前,判斷第一關聯(lián)模型中的第一關聯(lián)模型分支是否為多維度分支,其中,第二獲取單元包括:獲取模塊,用于如果判斷出第一關聯(lián)模型中的第一關聯(lián)模型分支為多維度分支,則獲取第一關聯(lián)模型分支;第一確定模塊,用于將第一關聯(lián)模型分支作為多維度分支。
[0013]進一步地,該數(shù)據(jù)處理裝置還包括:第二判斷單元,用于在分析數(shù)據(jù)庫中構建第二關聯(lián)模型之后,判斷第二關聯(lián)模型中是否存具有多個維度表的關聯(lián)模型分支;第二轉換單元,用于在判斷出第二關聯(lián)模型中存在具有多個維度表的關聯(lián)模型分支時,將具有多個維度表的關聯(lián)模型分支轉換為多個具有一個維度表的關聯(lián)模型分支;以及第二構建單元,用于根據(jù)多個具有一個維度表的關聯(lián)模型分支構建星型關聯(lián)模型。
[0014]進一步地,該數(shù)據(jù)處理裝置還包括:視圖創(chuàng)建單元,用于在獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型之后,在數(shù)據(jù)倉庫中創(chuàng)建第二關聯(lián)模型的視圖,其中,視圖用于表示事實表與維度表之間的連表關系;指向單元,用于將事實表指向視圖,其中,第一轉換單元包括:查找模塊,用于查找第一關聯(lián)模型中的多維度分支的事實表;第二確定模塊,用于根據(jù)事實表得到視圖;轉換模塊,用于基于視圖在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支。
[0015]進一步地,該數(shù)據(jù)處理裝置還包括:索引創(chuàng)建單元,用于在數(shù)據(jù)倉庫中創(chuàng)建視圖之后,根據(jù)連表關系創(chuàng)建連表關系的索引。
[0016]通過本發(fā)明,采用獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型,其中,第一關聯(lián)模型包括事實表、維度表和事實表與維度表的第一關聯(lián)關系,第一關聯(lián)模型包括多個第一關聯(lián)模型分支,每個第一關聯(lián)模型分支包括事實表和維度表,并且多個第一關聯(lián)模型分支具有相同的事實表,至少一個第一關聯(lián)模型分支為多維度分支,多維度分支包括一個事實表和多個維度表;從第一關聯(lián)模型中獲取多維度分支;在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支,其中,第二關聯(lián)模型分支中維度表的數(shù)目小于多維度分支中維度表的數(shù)目;以及根據(jù)第一關聯(lián)模型分支和第二關聯(lián)模型分支,在分析數(shù)據(jù)庫中構建第二關聯(lián)模型。由于每個關聯(lián)模型分支中的維度表的數(shù)目越少,在分析數(shù)據(jù)庫中查詢所消耗的時間也越少,而關聯(lián)模型分支中的維度表的數(shù)目越多,在數(shù)據(jù)倉庫中占用的存儲空間也越大,因此通過將多維度分支轉換為維度表的數(shù)目更少的第二關聯(lián)模型分支,可以減少查詢所消耗的時間,并且而以維度表的數(shù)目較多的第一關聯(lián)模型分支對應的關聯(lián)關系在數(shù)據(jù)倉庫中存儲數(shù)據(jù)可以占用較小的存儲空間,解決了相關技術中在聯(lián)機分析處理時,難以平衡查詢速度和存儲空間的問題,進而達到了數(shù)據(jù)不僅占用存儲空間少、而且查詢耗時短的效果。
【專利附圖】
【附圖說明】
[0017]構成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0018]圖1是根據(jù)本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置的示意圖;
[0019]圖2是根據(jù)本發(fā)明實施例的事實表與維度表為第一關聯(lián)模型的示意圖;
[0020]圖3a根據(jù)圖2轉換得到的事實表與維度表的第二關聯(lián)模型的示意圖;
[0021]圖3b是根據(jù)圖2轉換得到的事實表與維度表的又一第二關聯(lián)模型的示意圖;
[0022]圖3c是根據(jù)圖2轉換得到的事實表與維度表的又一第二關聯(lián)模型的示意圖;
[0023]圖3d是根據(jù)圖2轉換得到的事實表與維度表的又一第二關聯(lián)模型的示意圖;
[0024]圖3e是根據(jù)圖2轉換得到的事實表與維度表的又一第二關聯(lián)模型的示意圖;
[0025]圖3f是根據(jù)圖2轉換得到的事實表與維度表的又一第二關聯(lián)模型的示意圖;
[0026]圖3g是根據(jù)圖2轉換得到的事實表與維度表的又一第二關聯(lián)模型的示意圖;
[0027]圖4是根據(jù)本發(fā)明實施例的可選地用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置的不意圖;
[0028]圖5是根據(jù)本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法的流程圖;以及
[0029]圖6是根據(jù)本發(fā)明實施例的可選地用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法的流程圖。
【具體實施方式】
[0030]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本發(fā)明。
[0031]為了使本領域的技術人員更好的理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,在本領域普通技術人員沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明的保護范圍。[0032]需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含。
[0033]根據(jù)本發(fā)明的實施例,提供了一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置,該用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置用于將數(shù)據(jù)倉庫中的雪花型關聯(lián)關系中的較長的關聯(lián)模型分支在分析數(shù)據(jù)庫中轉換成較短的關聯(lián)模型分支。
[0034]圖1是根據(jù)本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置的示意圖。
[0035]如圖1所示,該裝置包括:第一獲取單元10、第二獲取單元20、第一轉換單元30和第一構建單兀40。
[0036]第一獲取單元10用于獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型。
[0037]數(shù)據(jù)倉庫中可以用于存儲雪花型關聯(lián)關系和/或星型關聯(lián)模型的事實表和維度表。其中,在本發(fā)明實施例中,第一關聯(lián)模型可以包括事實表、維度表和事實表與維度表的第一關聯(lián)關系。第一關聯(lián)模型為雪花型關聯(lián)關系,它可以包括多個第一關聯(lián)模型分支。每個第一關聯(lián)模型分支可以包括一個事實表和一個或者多個維度表。當一個第一關聯(lián)模型分支包括一個事實表和一個維度表時,該事實表可以通過一步關聯(lián)指向維度表;當一個第一關聯(lián)模型分支包括一個事實表和多個維度表,并且上述多個維度表分別為第一維度表、第二維度表、……、第N維度表時,該事實表可以通過一步關聯(lián)指向第一維度表,第一維度表可以通過一步關聯(lián)指向第二維度 表,……,第N-1維度表可以通過一步關聯(lián)指向第N維度表,
即該事實表可以分別通過一步、二步、......、N步關聯(lián)指向第一維度表、第二維度表、......、
第N維度表。每個第一關聯(lián)模型可以包括多個第一關聯(lián)模型分支,所有屬于同一個第一關聯(lián)模型的第一關聯(lián)模型分支均具有相同的事實表,并且至少有一個第一關聯(lián)模型分支為多維度分支。每個多維度分支包括一個事實表和多個維度表。而只有一個事實表和一個維度表的第一關聯(lián)模型分支為單維度分支。
[0038]例如,如圖2所示,該雪花型關聯(lián)關系包括事實表1、維度表2、維度表3、維度表4、維度表5、維度表6、維度表7,事實表1與各維度表之間的連表關系如圖2所示。其中,該雪花型關聯(lián)關系的包括3個第一關聯(lián)模型分支,該3個第一關聯(lián)模型分支分別為第一關聯(lián)模型分支a (事實表1 —維度表2)、第一關聯(lián)模型分支b (事實表1 —維度表3 —維度表4)、第一關聯(lián)模型分支c (事實表1 —維度表5 —維度表6 —維度表7)。
[0039]在本發(fā)明實施例中,獲取數(shù)據(jù)倉庫中事實表與維度表的第一關聯(lián)模型可以包括獲取多個第一關聯(lián)模型分支,即可以獲取一個第一關聯(lián)模型的全部或者部分第一關聯(lián)模型分支。
[0040]優(yōu)選地,由于數(shù)據(jù)倉庫中除了存儲有雪花型關聯(lián)關系之外,還可能存儲有星型關聯(lián)模型,因此在獲取數(shù)據(jù)倉庫中事實表與維度表的第一關聯(lián)模型之前,該數(shù)據(jù)處理方法還可以包括:首先,判斷數(shù)據(jù)倉庫中是否存在星型關聯(lián)模型的事實表與維度表,然后,如果判斷出數(shù)據(jù)倉庫中存在星型關聯(lián)模型的事實表與維度表,則不需要對該星型關聯(lián)模型進行任何處理,而直接在分析數(shù)據(jù)庫中進行聯(lián)機分析處理(On-Line Analytical Processing,簡稱Olap),如果判斷出數(shù)據(jù)倉庫中不存在星型關聯(lián)模型的事實表與維度表,則先執(zhí)行圖1所示的各功能單元和功能模塊,將雪花型關聯(lián)關系進行轉化為第二關聯(lián)模型。在將雪花型關聯(lián)關系進行轉化為第二關聯(lián)模型之后,再在分析數(shù)據(jù)庫中對第二關聯(lián)模型進行聯(lián)機分析處理。其中,星型關聯(lián)模型中每個關聯(lián)模型分支都只有一個事實表和一個維度表。
[0041]第二獲取單元20用于從第一關聯(lián)模型中獲取多維度分支。
[0042]從第一關聯(lián)模型中獲取多維度分支可以是獲取一個或者多個多維度分支。以圖2所示的第一關聯(lián)模型為例,從該第一關聯(lián)模型中獲取多維度分支可以包括:(1)只獲取第一關聯(lián)模型分支b (事實表I —維度表3 —維度表4); (2)只獲取第一關聯(lián)模型分支c (事實表I —維度表5 —維度表6 —維度表7); (3)同時獲取第一關聯(lián)模型分支b (事實表I —維度表3 —維度表4)和第一關聯(lián)模型分支c (事實表I —維度表5 —維度表6 —維度表7)。
[0043]第一轉換單元30用于在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支。
[0044]需要說明的是,第二關聯(lián)模型分支可以包括多維度分支和單維度分支。其中,第二關聯(lián)模型分支中維度表的數(shù)目小于轉換之前的第一關聯(lián)模型中的該多維度分支中維度表的數(shù)目。例如:
[0045](一)基于上述(I),可以將第一關聯(lián)模型分支b轉換為第二關聯(lián)模型分支a (事實表I —維度表3)和第二關聯(lián)模型分支b (事實表I —維度表4),其中,第二關聯(lián)模型分支a和第二關聯(lián)模型分支b中維度表的個數(shù)均為1,小于第一關聯(lián)模型分支b中的維度表的個數(shù)2。
[0046](二)情況1:基于上述(2),可以將第一關聯(lián)模型分支c轉換為第二關聯(lián)模型分支c (事實表I —維度表5 —維度表6)和第二關聯(lián)模型分支d (事實表I —維度表7),其中,第二關聯(lián)模型分支c和第二關聯(lián)模型分支d中維度表的個數(shù)分別為2和I,均小于第一關聯(lián)模型分支c中的維度表的個數(shù)3。情況2:基于上述(2),還可以將其轉換為第二關聯(lián)模型分支e (事實表I —維度表5)、第二關聯(lián)模型分支f (事實表I —維度表6)和第二關聯(lián)模型分支g(事實表I —維度表7),其中,第二關聯(lián)模型分支e、第二關聯(lián)模型分支f和第二關聯(lián)模型分支g中維度表的個數(shù)均為1,小于第一關聯(lián)模型分支c中的維度表的個數(shù)3。情況3:基于上述(2),還可以將其轉換為第二關聯(lián)模型分支h(事實表I —維度表5 —維度表7)和第二關聯(lián)模型分支f (事實表I —維度表6),其中,第二關聯(lián)模型分支h和第二關聯(lián)模型分支f中維度表的個數(shù)分別為2和1,均小于第一關聯(lián)模型分支c中的維度表的個數(shù)3。
[0047](三)基于上述(3),可以將第一關聯(lián)模型分支b(—)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況I的各第二關聯(lián)模型分支;或者基于上述(3),還可以將第一關聯(lián)模型分支b轉換為(一)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況2的各第二關聯(lián)模型分支;或者基于上述(3),還可以將第一關聯(lián)模型分支b轉換為(一)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況3的各第二關聯(lián)模型分支。
[0048]需要說明的是,上述(三)中將第一關聯(lián)模型分支b轉換為(一)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況2的各第二關聯(lián)模型分支的轉換最為徹底,該種轉換之后得到的第二關聯(lián)模型為星型關聯(lián)模型,除此之外,其他轉換得到的第二關聯(lián)模型均為雪花型關聯(lián)關系。
[0049]第一構建單元40用于根據(jù)第一關聯(lián)模型分支和第二關聯(lián)模型分支,在分析數(shù)據(jù)庫中構建第二關聯(lián)模型。
[0050]需要說明的是,在此,所根據(jù)的第一關聯(lián)模型分支可以是所有單維度表的第一關聯(lián)模型分支。依據(jù)上述圖2所示的示例,基于(一)、(二)和(三)可以分別創(chuàng)建如圖3a_圖3g所示的第二關聯(lián)模型,其中,圖3f所示的第二關聯(lián)模型為星型關聯(lián)模型,圖3a_圖3e和圖3g所示的第二關聯(lián)模型為雪花型關聯(lián)關系,然而,圖3a_圖3e和圖3g所示的雪花型關聯(lián)關系與圖2所示的雪花型關聯(lián)關系相比,至少有一個關聯(lián)模型分支發(fā)生了轉換,并且發(fā)生轉換的關聯(lián)模型分支在轉換之后變成了多個維度表的數(shù)目均小于轉換之前的該關聯(lián)模型分支中維度表的數(shù)目的關聯(lián)模型分支。需要說明的是圖3a_圖3g中均包含事實表I和維度表2-維度表7,圖3a-圖3g中的箭頭表示連接表之間的指向。
[0051]通過本發(fā)明實施例,由于每個關聯(lián)模型分支中的維度表的數(shù)目越少,在分析數(shù)據(jù)庫中查詢所消耗的時間也越少,而關聯(lián)模型分支中的維度表的數(shù)目越多,在數(shù)據(jù)倉庫中占用的存儲空間也越大,因此通過采用將多維度分支轉換為維度表的數(shù)目更少的第二關聯(lián)模型分支,可以減少查詢所消耗的時間,并且以維度表的數(shù)目較多的第一關聯(lián)模型分支對應的關聯(lián)關系在數(shù)據(jù)倉庫中存儲數(shù)據(jù)可以占用較小的存儲空間,達到了不僅占用存儲空間少,而且查詢耗時短的效果。
[0052]在本發(fā)明實施例中,在從第一關聯(lián)模型中獲取多維度分支之前,該數(shù)據(jù)處理裝置還可以包括:第一判斷單元。第一判斷單元用于判斷第一關聯(lián)模型中的第一關聯(lián)模型分支是否為多維度分支,其中,如果判斷出第一關聯(lián)模型中的第一關聯(lián)模型分支為多維度分支,則第二獲取單元20可以包括:獲取模塊和第一確定模塊。獲取模塊用于獲取第一關聯(lián)模型分支。第一確定模塊用于將第一關聯(lián)模型分支作為多維度分支。具體地,可以通過判斷第一關聯(lián)模型分支中具有的維度表的數(shù)目判斷第一關聯(lián)模型分支是否為多維度分支。當?shù)谝魂P聯(lián)模型分支中維度表的數(shù)目大于等于2時,則其為多維度分支;當?shù)谝魂P聯(lián)模型分支中維度表的數(shù)目小于2時,則其為單維度分支。
[0053]通過采用判斷第一關聯(lián)模型中的第一關聯(lián)模型分支是否為多維度分支,可以只對多維度分支進行轉換處理,而對單維度分支不做任何處理,從而簡化了對第一關聯(lián)模型的轉換過程,提高了轉換效率。
[0054]圖4是根據(jù)本發(fā)明實施例的可選地用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置的示意圖。
[0055]如圖4所示,該實施例可以作為圖1所示實施例的優(yōu)選實施方式,該實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置除了包括第一實施例的第一獲取單元10、第二獲取單元20、第一轉換單元30和第一構建單元40之外,還包括第二判斷單元50、第二轉換單元60和第二構建單元70。
[0056]第一獲取單元10、第二獲取單元20、第一轉換單元30和第一構建單元40的作用與圖1所示實施例中的相同,在此不再贅述。
[0057]第二判斷單元50用于判斷第二關聯(lián)模型中是否存在具有多個維度的關聯(lián)模型分支。
[0058]具體地,可以逐個檢測第二關聯(lián)模型中的所有第二關聯(lián)模型分支,并判斷每個第二關聯(lián)模型分支中的維度表的數(shù)目是否小于2。如果判斷出第二關聯(lián)模型分支中的維度表的數(shù)目不小于2,則執(zhí)行下述功能單元和功能模塊。
[0059]第二轉換單元60用于在判斷出第二關聯(lián)模型中存在具有多個維度的關聯(lián)模型分支時,將具有多個維度的關聯(lián)模型分支轉換為多個具有一個維度表的關聯(lián)模型分支。
[0060]具體地,如果判斷出第二關聯(lián)模型中存在具有多個維度的關聯(lián)模型分支,則將每個具有多個維度的關聯(lián)模型分支轉換為多個僅僅具有一個維度表的關聯(lián)模型分支。這樣,所有的關聯(lián)模型分支均為單維度表關聯(lián)模型分支。
[0061]第二構建單元70用于根據(jù)多個具有一個維度表的關聯(lián)模型分支創(chuàng)建星型關聯(lián)模型。
[0062]通過本發(fā)明實施例,可以將雪花型關聯(lián)關系轉換成星型關聯(lián)模型,由于星型關聯(lián)模型中的每個關聯(lián)模型分支均只有一個維度表,因此,基于星型關聯(lián)模型進行數(shù)據(jù)查詢的速度較快。
[0063]可選地,在本發(fā)明的上述任一實施例中,該數(shù)據(jù)處理裝置還可以包括:視圖創(chuàng)建單元和指向單元。該視圖創(chuàng)建單元用于在獲取數(shù)據(jù)倉庫中事實表與維度表的第一關聯(lián)模型之后,在數(shù)據(jù)倉庫中創(chuàng)建第二關聯(lián)模型的視圖,其中,視圖用于表示事實表與維度表之間的連表關系。指向單元用于將事實表指向視圖。具體地,視圖創(chuàng)建單元可以通過以下語句創(chuàng)建該視圖:
[0064]CREATE VIEW SessionView AS
[0065]SELECT S.*,C.CityName, P.ProvinceName, DimCountry.CountrName
[0066]FROM FactSession S INNER JOIN DimCity C ON S.CityKey=C.CityKey
[0067]INNER JOIN DimProvince P ON C.provinceKey=P.ProvinceKey
[0068]INNER JOIN DimCountry ON DimCountry.CountryKey=P.CountryKey。
[0069]需要說明的是,該視圖可以為虛擬視圖,不需要對其進行物理存儲,只是在Olap時,通過動態(tài)連表抽取相應的待分析數(shù)據(jù)。而通過視圖抽取數(shù)據(jù)并進行動態(tài)計算,消耗的只是計算時的CPU,與需要邏輯讀取以及維度處理的數(shù)據(jù)寫入方式相比,該CPU耗時基本可以忽略不計,而創(chuàng)建視圖只需要消耗較低的成本,因此可以通過花費較低的成本換取星型模型的轉換。
[0070]其中,在數(shù)據(jù)倉庫中創(chuàng)建第二關聯(lián)模型的視圖之后,第一轉換單元30可以包括:查找模塊、第二確定模塊和轉換模塊。查找模塊用于查找第一關聯(lián)模型中的多維度分支的事實表。第二確定模塊用于根據(jù)事實表得到其對應的視圖。轉換模塊用于基于該視圖在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支。優(yōu)選地,可以將所有的多維度分支全部轉換成單維度分支。
[0071]根據(jù)本發(fā)明的實施例,提供了一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法,該用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法用于將數(shù)據(jù)倉庫中的雪花型關聯(lián)關系中的較長的關聯(lián)模型分支在分析數(shù)據(jù)庫中轉換成較短的關聯(lián)模型分支。該用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法可以運行在計算機處理設備上。需要說明的是,本發(fā)明實施例所提供的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法可以通過本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置來執(zhí)行,本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置也可以用于執(zhí)行本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法。
[0072]圖5是根據(jù)本發(fā)明實施例的用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法的流程圖。
[0073]如圖5所示,該方法包括如下的步驟S502至步驟S508:
[0074]步驟S502,獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型。
[0075]數(shù)據(jù)倉庫中可以用于存儲雪花型關聯(lián)關系和/或星型關聯(lián)模型的事實表和維度表。其中,在本發(fā)明實施例中,第一關聯(lián)模型為雪花型關聯(lián)關系,它可以包括多個第一關聯(lián)模型分支。每個第一關聯(lián)模型分支可以包括一個事實表和一個或者多個維度表。當一個第一關聯(lián)模型分支包括一個事實表和一個維度表時,該事實表可以通過一步關聯(lián)指向維度表;當一個第一關聯(lián)模型分支包括一個事實表和多個維度表,并且上述多個維度表分別為第一維度表、第二維度表、……、第N維度表時,該事實表可以通過一步關聯(lián)指向第一維度表,第一維度表可以通過一步關聯(lián)指向第二維度表,……,第N-1維度表可以通過一步關聯(lián)
指向第N維度表,即該事實表可以分別通過一步、二步、......、N步關聯(lián)指向第一維度表、第
二維度表、……、第N維度表。每個第一關聯(lián)模型可以包括多個第一關聯(lián)模型分支,所有屬于同一個第一關聯(lián)模型的第一關聯(lián)模型分支均具有相同的事實表,并且至少有一個第一關聯(lián)模型分支為多維度分支。每個多維度分支包括一個事實表和多個維度表。而只有一個事實表和一個維度表的第一關聯(lián)模型分支為單維度分支。
[0076]例如,如圖2所示,該雪花型關聯(lián)關系包括事實表1、維度表2、維度表3、維度表4、維度表5、維度表6、維度表7,事實表1與各維度表之間的連表關系如圖2所示。其中,該雪花型關聯(lián)關系的包括3個第一關聯(lián)模型分支,該3個第一關聯(lián)模型分支分別為第一關聯(lián)模型分支a (事實表1 —維度表2)、第一關聯(lián)模型分支b (事實表1 —維度表3 —維度表4)、第一關聯(lián)模型分支c (事實表1 —維度表5 —維度表6 —維度表7)。
[0077]在本發(fā)明實施例中,獲取數(shù)據(jù)倉庫中事實表與維度表的第一關聯(lián)模型可以包括獲取多個第一關聯(lián)模型分支,即可以獲取一個第一關聯(lián)模型的全部或者部分第一關聯(lián)模型分支。
[0078]優(yōu)選地,由于數(shù)據(jù)倉庫中除了存儲有雪花型關聯(lián)關系之外,還可能存儲有星型關聯(lián)模型,因此在獲取數(shù)據(jù)倉庫中事實表與維度表的第一關聯(lián)模型之前,該數(shù)據(jù)處理方法還可以包括:首先,判斷數(shù)據(jù)倉庫中是否存在星型關聯(lián)模型的事實表與維度表,然后,如果判斷出數(shù)據(jù)倉庫中存在星型關聯(lián)模型的事實表與維度表,則不需要對該星型關聯(lián)模型進行任何處理,而直接在分析數(shù)據(jù)庫中進行聯(lián)機分析處理(On-Line Analytical Processing,簡稱Olap),如果判斷出數(shù)據(jù)倉庫中不存在星型關聯(lián)模型的事實表與維度表,則先執(zhí)行圖5所示的各步驟,將雪花型關聯(lián)關系進行轉化為第二關聯(lián)模型。在將雪花型關聯(lián)關系進行轉化為第二關聯(lián)模型之后,再在分析數(shù)據(jù)庫中對第二關聯(lián)模型進行聯(lián)機分析處理。其中,星型關聯(lián)模型中每個關聯(lián)模型分支都只有一個事實表和一個維度表。
[0079]步驟S504,從第一關聯(lián)模型中獲取多維度分支。
[0080]從第一關聯(lián)模型中獲取多維度分支可以是獲取一個或者多個多維度分支。以圖2所示的第一關聯(lián)模型為例,從該第一關聯(lián)模型中獲取多維度分支可以包括:(1)只獲取第一關聯(lián)模型分支b (事實表1 —維度表3 —維度表4); (2)只獲取第一關聯(lián)模型分支c (事實表1 —維度表5 —維度表6 —維度表7); (3)同時獲取第一關聯(lián)模型分支b (事實表1 —維度表3 —維度表4)和第一關聯(lián)模型分支c (事實表I —維度表5 —維度表6 —維度表7)。
[0081]步驟S506,在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支。
[0082]需要說明的是,第二關聯(lián)模型分支可以包括多維度分支和單維度分支。其中,第二關聯(lián)模型分支中維度表的數(shù)目小于轉換之前的第一關聯(lián)模型中的該多維度分支中維度表的數(shù)目。例如:
[0083](一)基于上述(I),可以將第一關聯(lián)模型分支b轉換為第二關聯(lián)模型分支a (事實表I —維度表3)和第二關聯(lián)模型分支b (事實表I —維度表4),其中,第二關聯(lián)模型分支a和第二關聯(lián)模型分支b中維度表的個數(shù)均為1,小于第一關聯(lián)模型分支b中的維度表的個數(shù)2。
[0084](二)情況1:基于上述(2),可以將第一關聯(lián)模型分支c轉換為第二關聯(lián)模型分支c (事實表I —維度表5 —維度表6)和第二關聯(lián)模型分支d (事實表I —維度表7),其中,第二關聯(lián)模型分支c和第二關聯(lián)模型分支d中維度表的個數(shù)分別為2和I,均小于第一關聯(lián)模型分支c中的維度表的個數(shù)3。情況2:基于上述(2),還可以將其轉換為第二關聯(lián)模型分支e (事實表I —維度表5)、第二關聯(lián)模型分支f (事實表I —維度表6)和第二關聯(lián)模型分支g(事實表I —維度表7),其中,第二關聯(lián)模型分支e、第二關聯(lián)模型分支f和第二關聯(lián)模型分支g中維度表的個數(shù)均為1,小于第一關聯(lián)模型分支c中的維度表的個數(shù)3。情況
3:基于上述(2),還可以將其轉換為第二關聯(lián)模型分支h(事實表I —維度表5 —維度表7)和第二關聯(lián)模型分支f (事實表I —維度表6),其中,第二關聯(lián)模型分支h和第二關聯(lián)模型分支f中維度表的個數(shù)分別為2和1,均小于第一關聯(lián)模型分支c中的維度表的個數(shù)3。
[0085](三)基于上述(3),可以將第一關聯(lián)模型分支b(—)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況I的各第二關聯(lián)模型分支;或者基于上述(3),還可以將第一關聯(lián)模型分支b轉換為(一)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況2的各第二關聯(lián)模型分支;或者基于上述(3),還可以將第一關聯(lián)模型分支b轉換為(一)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況3的各第二關聯(lián)模型分支。
[0086]需要說明的是,上述(三)中將第一關聯(lián)模型分支b轉換為(一)中的各第二關聯(lián)模型分支,以及將第一關聯(lián)模型分支c轉換為(二)中情況2的各第二關聯(lián)模型分支的轉換最為徹底,該種轉換之后得到的第二關聯(lián)模型為星型關聯(lián)模型,除此之外,其他轉換得到的第二關聯(lián)模型均為雪花型關聯(lián)關系。
[0087]步驟S508,根據(jù)第一關聯(lián)模型分支和第二關聯(lián)模型分支,在分析數(shù)據(jù)庫中構建第
二關聯(lián)模型。
[0088]需要說明的是,在此,所根據(jù)的第一關聯(lián)模型分支可以是所有單維度表的第一關聯(lián)模型分支。依據(jù)上述圖2所示的示例,基于(一)、(二)和(三)可以分別創(chuàng)建如圖3a_圖3g所示的第二關聯(lián)模型,其中,圖3f所示的第二關聯(lián)模型為星型關聯(lián)模型,圖3a_圖3e和圖3g所示的第二關聯(lián)模型為雪花型關聯(lián)關系,然而,圖3a_圖3e和圖3g所示的雪花型關聯(lián)關系與圖2所示的雪花型關聯(lián)關系相比,至少有一個關聯(lián)模型分支發(fā)生了轉換,并且發(fā)生轉換的關聯(lián)模型分支在轉換之后變成了多個維度表的數(shù)目均小于轉換之前的該關聯(lián)模型分支中維度表的數(shù)目的關聯(lián)模型分支。需要說明的是圖3a-圖3g中均包含事實表I和維度表2-維度表7,圖3a-圖3g中的箭頭表示連接表之間的指向。
[0089]通過本發(fā)明實施例,由于每個關聯(lián)模型分支中的維度表數(shù)目越少,在分析數(shù)據(jù)庫中查詢所消耗的時間也越少,而關聯(lián)模型分支中的維度表數(shù)目越多,在數(shù)據(jù)倉庫中占用的存儲空間也越大,因此通過采用將多維度分支轉換為維度表數(shù)目更少的第二關聯(lián)模型分支,可以減少查詢所消耗的時間,并且以維度表數(shù)目較多的第一關聯(lián)模型分支對應的關聯(lián)關系在數(shù)據(jù)倉庫中存儲數(shù)據(jù)可以占用較小的存儲空間,達到了不僅占用存儲空間少,而且查詢耗時短的效果。
[0090]在本發(fā)明實施例中,在從第一關聯(lián)模型中獲取多維度分支之前,該數(shù)據(jù)處理方法還可以包括:判斷第一關聯(lián)模型中的第一關聯(lián)模型分支是否為多維度分支,其中,如果判斷出第一關聯(lián)模型中的第一關聯(lián)模型分支為多維度分支,則從第一關聯(lián)模型中獲取多維度分支可以包括:獲取第一關聯(lián)模型分支,并將第一關聯(lián)模型分支作為多維度分支。具體地,可以通過判斷第一關聯(lián)模型分支中具有的維度表的數(shù)目判斷第一關聯(lián)模型分支是否為多維度分支。當?shù)谝魂P聯(lián)模型分支中維度表的數(shù)目大于等于2時,則其為多維度分支;當?shù)谝魂P聯(lián)模型分支中維度表的數(shù)目小于2時,則其為單維度分支。
[0091]通過采用判斷第一關聯(lián)模型中的第一關聯(lián)模型分支是否為多維度分支,可以只對多維度分支進行轉換處理,而對單維度分支不做任何處理,從而簡化了對第一關聯(lián)模型的轉換過程,提高了轉換效率。
[0092]圖6是根據(jù)本發(fā)明實施例的可選地用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法的流程圖。
[0093]如圖6所示,該用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法包括如下的步驟S502至步驟S514,該實施例可以作為圖5所示實施例的優(yōu)選實施方式。
[0094]步驟S602至步驟S608,分別同圖5所示實施例的步驟S502至步驟S508,在此不再贅述。
[0095]步驟S610,判斷第二關聯(lián)模型中是否存在具有多個維度的關聯(lián)模型分支。
[0096]具體地,可以逐個檢測第二關聯(lián)模型中的所有第二關聯(lián)模型分支,并判斷每個第二關聯(lián)模型分支中的維度表的數(shù)目是否小于2。如果判斷出第二關聯(lián)模型分支中的維度表的數(shù)目不小于2,則執(zhí)行下述步驟。
[0097]步驟S612,如果判斷出第二關聯(lián)模型中存在具有多個維度的關聯(lián)關模型分支,則將具有多個維度的關聯(lián)模型分支轉換為多個具有一個維度表的關聯(lián)模型分支。
[0098]具體地,如果判斷出第二關聯(lián)模型中存在具有多個維度的關聯(lián)模型分支,則將每個具有多個維度的關聯(lián)模型分支轉換為多個僅僅具有一個維度表的關聯(lián)模型分支。這樣,所有的關聯(lián)模型分支均為單維度表關聯(lián)模型分支。
[0099]步驟S614,根據(jù)多個具有一個維度表的關聯(lián)模型分支創(chuàng)建星型關聯(lián)模型。
[0100]通過本發(fā)明實施例,可以將雪花型關聯(lián)關系轉換成星型關聯(lián)模型,由于星型關聯(lián)模型中的每個關聯(lián)模型分支均只有一個維度表,因此,基于星型關聯(lián)模型進行數(shù)據(jù)查詢的速度較快。
[0101]可選地,在本發(fā)明的上述任一實施例中,在獲取數(shù)據(jù)倉庫中事實表與維度表的第一關聯(lián)模型之后,該數(shù)據(jù)處理方法還可以包括:在數(shù)據(jù)倉庫中創(chuàng)建第二關聯(lián)模型的視圖,其中,視圖用于表示事實表與維度表之間的連表關系;將事實表指向視圖。具體地,可以通過以下語句創(chuàng)建該視圖:
[0102]CREATE VIEW SessionView AS
[0103]SELECT S.*,C.CityName, P.ProvinceName, DimCountry.CountrName
[0104]FROM FactSession S INNER JOIN DimCity C ON S.CityKey=C.CityKey
[0105]INNER JOIN DimProvince P ON C.provinceKey=P.ProvinceKey
[0106]INNER JOIN DimCountry ON DimCountry.CountryKey=P.CountryKey。
[0107]需要說明的是,該視圖可以為虛擬視圖,不需要對其進行物理存儲,只是在Olap時,通過動態(tài)連表抽取相應的待分析數(shù)據(jù)。而通過視圖抽取數(shù)據(jù)并進行動態(tài)計算,消耗的只是計算時的CPU,與需要邏輯讀取以及維度處理的數(shù)據(jù)寫入方式相比,該CPU耗時基本可以忽略不計,而創(chuàng)建視圖只需要消耗較低的成本,因此可以通過花費較低的成本換取星型模型的轉換。
[0108]其中,在數(shù)據(jù)倉庫中創(chuàng)建第二關聯(lián)模型的視圖之后,在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支可以包括:查找第一關聯(lián)模型中的多維度分支的事實表;根據(jù)事實表得到其對應的視圖;基于該視圖在分析數(shù)據(jù)庫中將第一關聯(lián)模型中的多維度分支轉換成第二關聯(lián)模型分支,優(yōu)選地,可以將所有的多維度分支全部轉換成單維度分支。
[0109]由此可見,通過視圖中的連表關系,可以直接選取任意雪花型關聯(lián)關系中的維度表,從而得到一個星型關聯(lián)模型結構的視圖,再應用此星型關聯(lián)模型結構的視圖做后續(xù)處理,最后用做Olap里相關聯(lián)的事實表和維度表。這樣,便實現(xiàn)了雪花型關聯(lián)關系到星型關聯(lián)模型的轉換。
[0110]優(yōu)選地,在數(shù)據(jù)倉庫中創(chuàng)建視圖之后,該數(shù)據(jù)處理方法還可以包括:根據(jù)連表關系創(chuàng)建連表關系的索引。這樣,可以通過索引中所示的連表關系創(chuàng)建相應的第二關聯(lián)模型,從而提高了建模(即創(chuàng)建第二關聯(lián)模型)效率。
[0111]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0112]顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
[0113]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理方法,其特征在于,包括: 獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型,其中,所述第一關聯(lián)模型包括事實表、維度表和所述事實表與所述維度表的第一關聯(lián)關系,所述第一關聯(lián)模型包括多個第一關聯(lián)模型分支,每個所述第一關聯(lián)模型分支包括所述事實表和所述維度表,并且所述多個第一關聯(lián)模型分支具有相同的所述事實表,至少有一個所述第一關聯(lián)模型分支為多維度分支,所述多維度分支包括一個所述事實表和多個所述維度表; 從所述第一關聯(lián)模型中獲取所述多維度分支; 在分析數(shù)據(jù)庫中將所述第一關聯(lián)模型中的所述多維度分支轉換成第二關聯(lián)模型分支,其中,所述第二關聯(lián)模型分支中所述維度表的數(shù)目小于所述多維度分支中所述維度表的數(shù)目;以及 根據(jù)所述第一關聯(lián)模型分支和所述第二關聯(lián)模型分支,在所述分析數(shù)據(jù)庫中構建第二關聯(lián)模型。
2.根據(jù)權利要求1所述的數(shù)據(jù)處理方法,其特征在于,在從所述第一關聯(lián)模型中獲取所述多維度分支之前,所述數(shù)據(jù)處理方法還包括: 判斷所述第一關聯(lián)模型中的所述第一關聯(lián)模型分支是否為所述多維度分支, 其中,如果判斷出所述第一關聯(lián)模型中的所述第一關聯(lián)模型分支為所述多維度分支,則從所述第一關聯(lián)模型中獲取所述多維度分支包括:獲取所述第一關聯(lián)模型分支;將所述第一關聯(lián)模型分支作為所述多維度分支。
3.根據(jù)權利要求1所述的數(shù)據(jù)處理方法,其特征在于,在所述分析數(shù)據(jù)庫中構建第二關聯(lián)模型之后,所述數(shù)據(jù)處理方法還包括: 判斷所述第二關聯(lián)模型中是否存在具有多個所述維度的關聯(lián)模型分支; 如果判斷出所述第二關聯(lián)模型中存在具有多個所述維度的關聯(lián)模型分支,則將所述具有多個所述維度的關聯(lián)模型分支轉換為多個具有一個所述維度表的關聯(lián)模型分支;以及 根據(jù)所述多個具有一個所述維度表的關聯(lián)模型分支創(chuàng)建星型關聯(lián)模型。
4.根據(jù)權利要求1至3任一項所述的數(shù)據(jù)處理方法,其特征在于, 在獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型之后,所述數(shù)據(jù)處理方法還包括:在所述數(shù)據(jù)倉庫中創(chuàng)建所述第二關聯(lián)模型的視圖,其中,所述視圖用于表示所述事實表與所述維度表之間的連表關系;將所述事實表指向所述視圖, 在分析數(shù)據(jù)庫中將所述第一關聯(lián)模型中的所述多維度分支轉換成第二關聯(lián)模型分支包括:查找所述第一關聯(lián)模型中的所述多維度分支的所述事實表;根據(jù)所述事實表得到所述視圖;基于所述視圖在分析數(shù)據(jù)庫中將所述第一關聯(lián)模型中的所述多維度分支轉換成第二關聯(lián)模型分支。
5.根據(jù)權利要求4所述的數(shù)據(jù)處理方法,其特征在于,在所述數(shù)據(jù)倉庫中創(chuàng)建視圖之后,所述數(shù)據(jù)處理方法還包括:根據(jù)所述連表關系創(chuàng)建所述連表關系的索引。
6.一種用于聯(lián)機分析處理中關聯(lián)關系的數(shù)據(jù)處理裝置,其特征在于,包括: 第一獲取單元,用于獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型,其中,所述第一關聯(lián)模型包括事實表、維度表和所述事實表與所述維度表的第一關聯(lián)關系,所述第一關聯(lián)模型包括多個第一關聯(lián)模型分支,每個所述第一關聯(lián)模型分支包括所述事實表和所述維度表,并且所述多個第一關聯(lián)模型分支具有相同的所述事實表,至少有一個所述第一關聯(lián)模型分支為多維度分支,所述多維度分支包括一個所述事實表和多個所述維度表; 第二獲取單元,用于從所述第一關聯(lián)模型中獲取所述多維度分支; 第一轉換單元 ,用于在分析數(shù)據(jù)庫中將所述第一關聯(lián)模型中的所述多維度分支轉換成第二關聯(lián)模型分支,其中,所述第二關聯(lián)模型分支中所述維度表的數(shù)目小于所述多維度分支中所述維度表的數(shù)目;以及 第一構建單元,用于根據(jù)所述第一關聯(lián)模型分支和所述第二關聯(lián)模型分支,在所述分析數(shù)據(jù)庫中構建第二關聯(lián)模型。
7.根據(jù)權利要求6所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置還包括: 第一判斷單元,用于在從所述第一關聯(lián)模型中獲取所述多維度分支之前,判斷所述第一關聯(lián)模型中的所述第一關聯(lián)模型分支是否為所述多維度分支, 其中,所述第二獲取單元包括:獲取模塊,用于如果判斷出所述第一關聯(lián)模型中的所述第一關聯(lián)模型分支為所述多維度分支,則獲取所述第一關聯(lián)模型分支;第一確定模塊,用于將所述第一關聯(lián)模型分支作為所述多維度分支。
8.根據(jù)權利要求6所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置還包括: 第二判斷單元,用于在所述分析數(shù)據(jù)庫中構建第二關聯(lián)模型之后,判斷所述第二關聯(lián)模型中是否存具有多個所述維度表的關聯(lián)模型分支; 第二轉換單元,用于在判斷出所述第二關聯(lián)模型中存在具有多個所述維度表的關聯(lián)模型分支時,將所述具有多個所述維度表的關聯(lián)模型分支轉換為多個具有一個所述維度表的關聯(lián)模型分支;以及 第二構建單元,用于根據(jù)所述多個具有一個所述維度表的關聯(lián)模型分支構建星型關聯(lián)模型。
9.根據(jù)權利要求6至8任一項所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置還包括: 視圖創(chuàng)建單元,用于在獲取數(shù)據(jù)倉庫中的第一關聯(lián)模型之后,在所述數(shù)據(jù)倉庫中創(chuàng)建所述第二關聯(lián)模型的視圖,其中,所述視圖用于表示所述事實表與所述維度表之間的連表關系; 指向單元,用于將所述事實表指向所述視圖, 其中,所述第一轉換單元包括:查找模塊,用于查找所述第一關聯(lián)模型中的所述多維度分支的所述事實表;第二確定模塊,用于根據(jù)所述事實表得到所述視圖;轉換模塊,用于基于所述視圖在分析數(shù)據(jù)庫中將所述第一關聯(lián)模型中的所述多維度分支轉換成第二關聯(lián)模型分支。
10.根據(jù)權利要求9所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置還包括:索引創(chuàng)建單元,用于在所述數(shù)據(jù)倉庫中創(chuàng)建視圖之后,根據(jù)所述連表關系創(chuàng)建所述連表關系的索引。
【文檔編號】G06F17/30GK103927337SQ201410116940
【公開日】2014年7月16日 申請日期:2014年3月26日 優(yōu)先權日:2014年3月26日
【發(fā)明者】洪超 申請人:北京國雙科技有限公司