資料倉儲中的概念

miguelmin發表於2009-08-28

ODS:
ODS的資料具有面向主題、整合的、可變的和資料是當前的或是接近當前的4個基本特徵。同樣也可以看出ODS是介於DB和DW 之間的一種資料儲存技術,和原來面向應用的分散的DB相比,ODS中的資料組織方式和資料倉儲(DW)一樣也是面向主題的和整合的,所以對進入ODS的資料也象進入資料倉儲的資料一樣進行整合處理。另外ODS只是存放當前或接近當前的資料,如果需要的話還可以對ODS中的資料進行增、刪和更新等操 作,雖然DW中的資料也是面向主題和整合的,但這些資料一般不進行修改,所以ODS和DW的區別主要體現資料的可變性、當前性、穩定性、彙總度上。

[@more@]

資料倉儲:
資料倉儲是一個支援管理決策的資料集合。資料是面向主題的(Subject-oriented)、整合的(Integrated)、相對穩定(Non-volatile)的且是記錄歷史的(Time-variant)。Z與其他資料庫應用不同的是,資料倉儲更像一種過程,對分佈在企業內部各處的業務資料的整合、加工和分析的過程。而不是一種可以購買的產品。
“主題”是一個較為抽象的概念,是指使用者使用資料倉儲進行決策時所關心的重點方面。從資訊管理的角度看,主題是在一個較高的管理層次上對資料進行綜合、歸類所形成的分析物件;從資料組織的角度看,主題就是一些資料集合,這些資料集合對分析物件作了比較完整的、一致的描述,這種描述不僅涉及到資料本身,還涉及到資料之間的關係。
“面向主題”則表明了資料倉儲中資料組織的基本原則,是指資料倉儲內的資訊是按主題進行組織的,而不像傳統事物處理系統那樣單一地按照業務功能及效能要求進行組織。
“整合”是指資料倉儲中的資訊並不是對各個資料來源簡單的選擇、抽取,而是首先進行一系列的加工、整理和轉換等來消除源資料中的不一致;同時按照本行業的邏輯模型設計便於查詢及分析的資料倉儲。然後按照組織或企業的需求,針對不同的主題對資料進行某種程度的綜合、概括和聚集,將源資料載入進資料倉儲。經過這樣的處理,資料就具有了整合性,可以用於決策分析。
“反映歷史變化”是指資料倉儲內的資訊並不只是反映企業當前的狀態,而是記錄了從過去某一時點到當前各個階段的資訊。透過這些資訊,可以對企業的發展歷程和未來趨勢做出定量分析和預測。而資訊本身相對穩定,是指一旦某個資料進入資料倉儲以後,一般很少進行修改,更多的是對資訊進行查詢操作。
“相對穩定”是指資料一旦進入資料倉儲,一般情況下會被長期保留,所涉及的資料操作也主要是查詢、分析,很少會被修改或刪除,通常也只需要定期地載入和重新整理。相對穩定性保證了資料倉儲中的資料能夠真實地反映歷史變化。

資料集市:
他主要面向部門級業務,並且只面向某個特定的主題。資料集市可以在一定程度上緩解訪問資料倉儲的瓶頸。資料集市可以依賴於資料倉儲,也可以和資料倉儲沒有關聯。

OLAP(OLAP Online Analytical Processing ):
聯機分析處理(OLAP)的概念最早是由關聯式資料庫之父E.F.Codd於1993年提出的。當時,Codd認為聯機事務處理(OLTP)已不能滿足終端使用者對資料庫查詢分析的需要,SQL對大資料庫進行的簡單查詢也不能滿足使用者分析的需求。使用者的決策分析需要對關聯式資料庫進行大量計算才能得到結果,而查詢的結果並不能滿足決策者提出的需求。因此Codd提出了多維資料庫和多維分析的概念,即OLAP。

Codd提出OLAP的12條準則來描述OLAP系統:
準則1 OLAP模型必須提供多維概念檢視
準則2 透明性準則
準則3 存取能力推測
準則4 穩定的報表能力
準則5 客戶/伺服器體系結構
準則6 維的等同性準則
準則7 動態的稀疏矩陣處理準則
準則8 多使用者支援能力準則
準則9 非受限的跨維操作
準則10 直觀的資料操縱
準則11 靈活的報表生成
準則12 不受限的維與聚集層次ROLAP

OLAP系統按照其儲存器的資料儲存格式可以分為關係OLAP(RelationalOLAP,簡稱ROLAP)、多維OLAP(MultidimensionalOLAP,簡稱MOLAP)和混合型OLAP(HybridOLAP,簡稱HOLAP)三種型別。
  a.ROLAP
  ROLAP將分析用的多維資料儲存在關聯式資料庫中並根據應用的需要有選擇的定義一批實檢視作為表也儲存在關聯式資料庫中。不必要將每一個SQL查詢都作為實檢視儲存,只定義那些應用頻率比較高、計算工作量比較大的查詢作為實檢視。對每個針對OLAP伺服器的查詢,優先利用已經計算好的實檢視來生成查詢結果以提高查詢效率。同時用作ROLAP儲存器的RDBMS也針對OLAP作相應的最佳化,比如並行儲存、並行查詢、並行資料管理、基於成本的查詢最佳化、點陣圖索引、SQL的OLAP擴充套件(cube,rollup)等等。
  b.MOLAP
  MOLAP將OLAP分析所用到的多維資料物理上儲存為多維陣列的形式,形成“立方體”的結構。維的屬性值被對映成多維陣列的下標值或下標的範圍,而總結資料作為多維陣列的值儲存在陣列的單元中。由於MOLAP採用了新的儲存結構,從物理層實現起,因此又稱為物理OLAP(PhysicalOLAP);而ROLAP主要透過一些軟體工具或中間軟體實現,物理層仍採用關聯式資料庫的儲存結構,因此稱為虛擬OLAP(VirtualOLAP)。
  c.HOLAP
  由於MOLAP和ROLAP有著各自的優點和缺點(如下表所示),且它們的結構迥然不同,這給分析人員設計OLAP結構提出了難題。為此一個新的OLAP結構——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP兩種結構的優點結合起來。迄今為止,對HOLAP還沒有一個正式的定義。但很明顯,HOLAP結構不應該是MOLAP與ROLAP結構的簡單組合,而是這兩種結構技術優點的有機結合,能滿足使用者各種複雜的分析請求。

DSS:
決策支援系統(Decision Support System),相當於基於資料倉儲的應用。決策支援就是在收集所有有關資料和資訊,經過加工整理,來為企業決策管理層提供資訊,為決策者的決策提供依據。

ETL:
資料抽取(Extract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過程。構建資料倉儲的重要一環,使用者從資料來源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料倉儲模型,將資料載入到資料倉儲中去。

EIS:
領導資訊系統(Executive Information System),指為了滿足無法專注於計算機技術的領導人員的資訊查詢需求,而特意制定的以簡單的圖形介面訪問資料倉儲的一種應用。

BPR:
業務流程重整(Business Process Reengineering),指利用資料倉儲技術,發現並糾正企業業務流程中的弊端的一項工作,資料倉儲的重要作用之一。

BI:
商業智慧(Business Intelligence),指資料倉儲相關技術與應用的通稱。指利用各種智慧技術,來提升企業的商業競爭力。

CRM:
客戶關係管理(Customer Relationship Management),資料倉儲是以資料庫技術為基礎但又與傳統的資料庫應用有著本質區別的新技術,CRM就是基於資料倉儲技術的一種新應用。但是,從商業運作的角度來講,CRM其實應該算是一個古老的"應用"了。比如,酒店對客人資訊的管理,如果某個客人是某酒店的老主顧,那麼該酒店很自然地會知道這位客人的某些習慣和喜好,如是否喜歡靠路邊,是否吸菸,是否喜歡大床,喜歡什麼樣的早餐,等等。當客人再次光臨時,不用客人自己提出來,酒店就會提供客人所喜歡的房間和服務。這就是一種CRM。

Meta Data:
後設資料,關於資料倉儲的資料,指在資料倉儲建設過程中所產生的有關資料來源定義,目標定義,轉換規則等相關的關鍵資料。同時後設資料還包含關於資料含義的商業資訊,所有這些資訊都應當妥善儲存,並很好地管理。為資料倉儲的發展和使用提供方便。

體系架構:
資料倉儲的方法學,資料倉儲體系架構可以分為五個層次。這五個層次反映了應用執行的基本邏輯結構和過程。每層都具有自己的技術實現方式及相應的評價準則。這五個應用層次是:
設計建模層:該層次是整個分析應用系統的起點,主要完成對現有業務系統資料來源的分析,按照資料倉儲建模理論完成資料倉儲結構設計。
資料獲取層:確定專案實施所需的資料清洗工具,定義出資料從原業務系統到資料倉儲系統的ETL技術方案,最終完成資料清洗、轉換、載入的工作
資料儲存層:透過對資料倉儲資料量的估計,和客戶訪問數的估計對資料倉儲主平臺所需的軟體和硬體作出評估,確定主平臺的系統配置情況。
資料展現層:主要根據客戶需求選定前端資料展現的軟體,同時根據客戶需求決定資料展現方式,進行資料展現的開發。
後設資料管理層:主要完成對整個資料倉儲實施中的後設資料進行管理的功能,包括:邏輯到物理模型的對映、資料訪問的授權、使用者安全控制等等。


事實:
事實是資料倉儲中的資訊單元,也是多維空間中的一個單元,受分析單元的限制。事實儲存於一張表中(當使用關聯式資料庫時)或者是多維資料庫中的一個單元。每個事實包括關於事實(銷售額,銷售量,成本,毛利,毛利率等)的基本資訊,並且與維度相關。在某些情況下,當所有的必要資訊都儲存於維度中時,單純的事實出現就是對於資料倉儲足夠的資訊。

維度:
維度是用來反映業務的一類屬性,這類屬性的集合構成一個維度。例如,某個地理維度可能包括國家、地區、省以及城市的級別。一個時間維度可能包括年、季、月、周、日的級別。

級別:
維度層次結構的一個元素。級別描述了資料的層次結構,從資料的最高(彙總程度最大)級別直到最低(最詳細)級別(如大分類-中分類-小分類-細分類)。級別僅存在於維度內。級別基於維度表中的列或維度中的成員屬性。

資料清洗:
對資料倉儲系統無用的或者不符合資料格式規範的資料稱之為髒資料。清洗的過程就是清除髒資料的過程。

資料採集(資料抽取):
資料倉儲系統中後端處理的一部分。資料採集過程是指從業務系統中收集與資料倉儲各指標有關的資料。

資料轉換:
解釋業務資料並修改其內容,使之符合資料倉儲資料格式規範,並放入資料倉儲的資料儲存介質中。資料轉換包括資料儲存格式的轉換以及資料表示符的轉換(如產品程式碼到產品名稱的轉換)。

Data Mining:
資料探勘,Data Mining是一種決策支援過程,它主要基於AI、機器學習、統計學等技術,高度自動化地分析企業原有的資料,做出歸納性的推理,從中挖掘出潛在的模式,預測客戶的行為,幫助企業的決策者調整市場策略,減少風險,做出正確的決策

切片:
一種用來在資料倉儲中將一個維度中的分析空間限制為資料子集的技術。

切塊:
一種用來在資料倉儲中將多個維度中的分析空間限制為資料子集的技術。

星型模式:
是資料倉儲應用程式的最佳設計模式。它的命名是因其在物理上表現為中心實體,典型內容包括指標資料、輻射資料,通常是有助於瀏覽和聚集指標資料的維度。星形圖模型得到的結果常常是查詢式資料結構,能夠為快速響應使用者的查詢要求提供最優的資料結構。星形圖還常常產生一種包含維度資料和指標資料的兩層模型。

雪花模式:
指一種擴充套件的星形圖。星形圖通常生成一個兩層結構,即只有維度和指標,雪花圖生成了附加層。實際資料倉儲系統建設過程中,通常只擴充套件三層:維度(維度實體)、指標(指標實體)和相關的描述資料(類目細節實體)超過三層的雪花圖模型在資料倉儲系統中應該避免。因為它們開始像更傾向於支援OLTP 應用程式的規格化結構,而不是為資料倉儲和OLAP應用程式而最佳化的非格式化結構。

粒度:
粒度將直接決定所構建倉庫系統能夠提供決策支援的細節級別。粒度越高表示倉庫中的資料較粗,反之,較細。粒度是與具體指標相關的,具體表現在描述此指標的某些可分層次維的維值上。例如,時間維度,時間可以分成年、季、月、周、日等。資料倉儲模型中所儲存的資料的粒度將對資訊系統的多方面產生影響。事實表中以各種維度的什麼層次作為最細粒度,將決定儲存的資料能否滿足資訊分析的功能需求,而粒度的層次劃分、以及聚合表中粒度的選擇將直接影響查詢的響應時間。

度量值:
在多維資料集中,度量值是一組值,這些值基於多維資料集的事實資料表中的一列,而且通常為數字。此外,度量值是所分析的多維資料集的中心值。即,度量值是終端使用者瀏覽多維資料集時重點檢視的數字資料(如銷售、毛利、成本)。所選擇的度量值取決於終端使用者所請求的資訊型別。

Iceberg query:
中文一般翻譯為“冰山查詢”,冰山查詢在一個屬性或屬性集上計算一個聚集函式,以找出大於某個指定閾值的聚集值。
以銷售資料為例,你想產生這樣的一個顧客-商品對的列表,這些顧客購買商品的數量達到3件或更多。
這可以用下面的冰山查詢表示:
Select P.cust_ID, P.item_ID, SUM(P.qty)
From Purchase P
Group by P.cust_ID, P.item_ID
Having SUM(P.qty)>=3
這種在給出大量輸入資料元組的情況下,使用having字句中的閾值來進行過濾的查詢方法就叫做冰山查詢。輸出結果可以看作“冰山頂”,而“冰山”是輸入資料。
這種冰山查詢在資料倉儲的資料概況分析階段、資料質量檢查階段和資料探勘的購物籃分析中都經常使用。而且,冰山查詢也是面試中出現頻率非常高的一道題,經常用來檢測SQL能力。

Oper Mart:
中文一般翻譯為“操作集市”,操作集市是為了企業戰術性的分析提供支援,它的資料來源是運算元據儲存(ODS)。它是ODS在分析功能上的擴充套件,使使用者可以對操作型資料進行多維分析。
一個操作集市應該有如下特徵:
1.操作集市是ODS的子集,資料來源於ODS,用於戰略分析和報表。
2.操作集市中的資料和ODS中的資料同步更新。
3.操作集市以多維技術進行建模,即星型結構。
4.操作集市是一個臨時的結構,當不在需要時會清掉所有資料,即不儲存歷史資料。
操作集市和資料集市很相似,但是它不能用來取代用於戰略性分析的資料集市。由於操作集市的資料來源於ODS,所以它的資料比資料集市的資料要新。但是出於容量的考慮,操作集市中不儲存歷史資料,是一個臨時的結構。

Surrogate key:
中文一般翻譯為“代理關鍵字”。代理關鍵字一般是指維度表中使用順序分配的整數值作為主鍵,也稱為“代理鍵”。代理關鍵字用於維表和事實表的連線。代理關鍵字的稱呼有surrogate keys,meaningless keys,integer keys,nonnatural keys,artificial keys,synthetic keys等。與之相對的自然關鍵字的稱呼有natural keys,samat keys等。

在Kimball的維度建模領域裡,是強烈推薦使用代理關鍵字的。在維度表和事實表的每一個聯接中都應該使用代理關鍵字,而不應該使用自然關鍵字或者智慧關鍵字(Smart Keys)。資料倉儲中的主鍵不應該是智慧的,也就是說,要避免透過主鍵的值就可以瞭解一些業務資訊。當然,退化維度作為事實表的複合主鍵之一時例外。

使用代理關鍵字,有很多優點。
1.使用代理關鍵字能夠使資料倉儲環境對操作型環境的變化進行緩衝。也就是說,當資料倉儲需要對來在多個操作型系統的資料進行整合時,這些系統中的資料有可能缺乏一致的關鍵字編碼,即有可能出現重複,這時代理關鍵字可以解決這個問題。
2.使用代理關鍵字可以帶來效能上的優勢。和自然關鍵字相比,代理關鍵字很小,是整型的,可以減小事實表中記錄的長度。這樣,同樣的IO就可以讀取更多的事實表記錄。另外,整型欄位作為外來鍵聯接的效率也很高。
3.使用代理關鍵字可以建立一些不存在的維度記錄,例如“不在促銷之列”,“日期待定”,“日期不可用”等維度記錄。
4.使用代理關鍵字可以用來處理緩慢變化維。維度表資料的歷史變化資訊的儲存是資料倉儲設計的實施中非常重要的一部分。Kimball的緩慢變化維處理策略的核心就是使用代理關鍵字。

當然,使用代理關鍵字也有它的缺點,代理關鍵字的使用使資料載入變得非常複雜。使用代理關鍵字是一個從長遠考慮的策略。

multivalue dimension:
中文一般翻譯為“多值維度”,多值維度有兩種情況,第一種情況是指維度表中的某個屬性欄位同時有多個值。舉例來說,一個帳戶維度表中,帳戶持有人姓名,可能會有多個顧客。這樣,一個帳戶對應多個顧客姓名,一個顧客也可以有多個帳戶,它們之間是多對多的關係。正因為一個帳戶可能會有多個對應的顧客,所以不能直接將顧客ID放入帳戶維度表中。而帳戶維度表中的這種情況就叫做多值維度。

多值維度的第二種情況是事實表在某個維度表中有多條對應記錄。舉例來說,對於一個健康護理單分列項事實表來說,它的粒度是一個健康護理單,但是該護理單卻有可能有多次診斷,即該事實表與診斷維度的是一對多的關係。這個與事實表粒度不匹配的診斷維度也稱之為多值維度。

處理多值維度最好的辦法是降低事實表的粒度。如第二種情況中,將健康護理單分列項事實表的粒度降低到具體的診斷粒度上,這樣就避免了多值維度的出現。這種處理方式也是維度建模的一個原則,即事實表應該建立在最細粒度上。這樣的處理,需要對事實表的事實進行分攤。

但是有些時候,事實表的粒度是不能降低的,多值維度的出現是無法避免的。如第一種情況中,事實表是月帳戶快照事實表,這張事實表與顧客維度沒有直接的關係,不能將資料粒度進行細分,即使細分的話帳戶餘額也很難分攤。這時,可以採用橋接表技術進行處理。在帳戶維度表和顧客維度表之間建立個帳戶-顧客橋接表。這個橋接表可以解決掉帳戶維度和顧客維度之間的多對多關係,也解決掉的帳戶維度表的多值維度問題。

總之,多值維度是應該儘量避免的,它給資料處理帶來了很大的麻煩。如果多值維度不能避免的話,應該建立橋接表來進行處理。

Factless Fact Table:
中文一般翻譯為“非事實型事實表”。在事實表中,通常會儲存十個左右的維度外來鍵和多個度量事實,度量事實是事實表的關鍵所在。在非事實型事實表中沒有這些度量事實,只有多個維度外來鍵。非事實型事實表通常用來跟蹤一些事件或者說明某些活動的範圍。下面舉例來進行說明。

第一類非事實型事實表是用來跟蹤事件的事實表。例如:學生註冊事件,學校需要對學生按學期進行跟蹤。維度表包括學期維度、課程維度、系維度、學生維度、註冊專業維度和取得學分維度,而事實表是由這些維度的主鍵組成,事實只有註冊數,並且恆為1。這樣的事實表可以回答大量關於大學開課註冊方面的問題,主要是回答各種情況下的註冊數。

第二類非事實型事實表是用來說明某些活動範圍的事實表。例如:促銷範圍事實表。通常銷售事實表可以回答如促銷商品的銷售情況,但是對於那些沒有銷售出去的促銷商品沒法回答。這時,透過建立促銷範圍事實表,將商場需要促銷的商品單獨建立事實表儲存。然後,透過這個促銷範圍事實表和銷售事實表即可得出哪些促銷商品沒有銷售出去。這樣的促銷範圍事實表只是用來說明促銷活動的範圍,其中沒有任何事實度量。

merged fact table:
也做consolidated fact table,中文一般都翻譯為“合併事實表”。合併事實表是將不同事實表的事實合併到同一張事實表的建模方法,合併的事實要保證在相同的粒度。
這種建模方法通常被用來橫跨多個業務主題域來建立資料集市,Kimball將這樣的資料集市稱為第二級的資料集市。使用合併事實表技術,可以避免效能較差的交叉探察操作。但是,這種合併事實表和使用交叉探察操作還有著細微的不同,在一些基礎表中沒有記錄的時候,合併事實表中可能會儲存一條記錄,欄位值儲存為零。
合併事實表可以給資料倉儲帶來很大的效能提升,提供的跨主題的事實資料也給使用者帶來了很大的方便。但是,合併事實表給ETL工作帶來了較大的麻煩。對於合併事實表中涉及到的維度,需要在資料準備區保證它們是一致性維度。

Slowly Changing Dimensions:
中文一般翻譯成“緩慢變化維”,經常被簡寫為SCD。緩慢變化維的提出是因為在現實世界中,維度的屬性並不是靜態的,它會隨著時間的流失發生緩慢的變化。這種隨時間發生變化的維度我們一般稱之為緩慢變化維,並且把處理維度錶的歷史變化資訊的問題稱為處理緩慢變化維的問題,有時也簡稱為處理SCD的問題。

處理緩慢變化維的方法通常分為三種方式。
第一種方式是直接覆蓋原值。這樣處理,最容易實現,但是沒有保留歷史資料,無法分析歷史變化資訊。第一種方式通常簡稱為“TYPE 1”。
第二種方式是新增維度行。這樣處理,需要代理鍵的支援。實現方式是當有維度屬性發生變化時,生成一條新的維度記錄,主鍵是新分配的代理鍵,透過自然鍵可以和原維度記錄保持關聯。第二種方式通常簡稱為“TYPE 2”。
第三種方式是新增屬性列。這種處理的實現方式是對於需要分析歷史資訊的屬性新增一列,來記錄該屬性變化前的值,而本屬性欄位使用TYPE 1來直接覆蓋。這種方式的優點是可以同時分析當前及前一次變化的屬性值,缺點是隻保留了最後一次變化資訊。第三種方式通常簡稱為“TYPE 3”。

在實際建模中,我們可以聯合使用三種方式,也可以對一個維度表中的不同屬性使用不同的方式,這些,都需要根據實際情況來決定,但目的都是一樣的,就是能夠支援方便的分析歷史變化情況。

Ad hoc queries:
中文一般翻譯為“即席查詢”。即席查詢是指那些使用者在使用系統時,根據自己當時的需求定義的查詢。

即席查詢生成的方式很多,最常見的就是使用即席查詢工具。一般的資料展現工具都會提供即席查詢的功能。通常的方式是,將資料倉儲中的維度表和事實表對映到語義層,使用者可以透過語義層選擇表,建立表間的關聯,最終生成SQL語句。

即席查詢與通常查詢從SQL語句上來說,並沒有本質的差別。它們之間的差別在於,通常的查詢在系統設計和實施時是已知的,所有我們可以在系統實施時透過建立索引、分割槽等技術來最佳化這些查詢,使這些查詢的效率很高。而即席查詢是使用者在使用時臨時生產的,系統無法預先最佳化這些查詢,所以即席查詢也是評估資料倉儲的一個重要指標。

即席查詢的位置通常是在關係型的資料倉儲中,即在EDW或者ROLAP中。多維資料庫有自己的儲存方式,對即席查詢和通常查詢沒有區別。

在一個資料倉儲系統中,即席查詢使用的越多,對資料倉儲的要求就越高,對資料模型的對稱性的要求也越高。對稱性的資料模型對所有的查詢都是相同的,這也是維度建模的一個優點。

以星型模型和雪花模型為例,星型模型中,一個事實表周圍有十個左右的維度表與之關聯。這些維度表都是直接於事實表關聯,對這個事實表的資料進行查詢時,不管是用什麼條件來進行約束,都可以一步聯接到該約束的維度表,這樣查詢SQL關聯的表少,效率高,維度表是對稱的,可以建索引等進行最佳化。
假如將其中的一個維度表進行雪花處理,那麼查詢的約束條件在這個維度表中的話,就需要多關聯一個表,效率要差,這個維度表與其他的維度表就不是對稱的。
以此類推,3NF建模的資料倉儲沒有這種對稱關係,模型表示的是資料關係,如果不預先知道查詢SQL的話,很難預先最佳化。

Drill Across:
中文一般翻譯為“交叉探查”。在基於匯流排架構(Bus Architecture)的維度建模中,大部分的維度表是由事實表共有的。比如“營銷事務事實表”和“庫存快照事實表”就會有相同的維度表,“日期維度”、“產品維度”和“商場維度”。這時,如果有個需求是想按共有維度來對比檢視銷售和庫存的事實,這時就需要發出兩個SQL,分別查出按維度統計出的銷售資料和庫存資料。然後再基於共有的維度進行外連線,將資料合併。這種發出多路SQL再進行合併的操作就是交叉探查。
當這種交叉探查的需求很常用時,有一種建模方法可以避免交叉探查,就是合併事實表(Consolidated Fact Table)。合併事實表是指將位於不同事實表中處於相同粒度的事實進行組合的一種建模方法。即新建立一個事實表,它的維度是兩個或多個事實表的相同維度的集合,事實是幾個事實表中感興趣的事實。這個事實表的資料和其他事實表的資料一樣來自Staging Area。
合併事實表在效能和易用性上都比交叉探查要好,但是被組合的事實表必須處於相同的粒度和維度層次上。

Role-playing dimensions:
中文一般翻譯為“角色模仿維度”。角色模仿維度是為了處理一個維度在一個事實表中同時出現多次而使用的一種技術處理手段。
在建立了角色模仿維度以後,在底層只有一個物理表存在,但是針對這個物理表會建立多個角色提供給資料訪問工具,而且對資料訪問工具來說這多個角色是不同的。例如對與累計快照事實表中會出現多個日期欄位聯接到日期維度。這時就可以針對日期維度建立多個角色模仿維度。
角色模仿維度的建立方法通常是使用檢視來完成。例如訂單日期維度表如下所示:
CREATE VIEW order_date(order_date_key, order_day_of_week, order_month, … )
AS SELECT data_key, day_of_week, month, … FROM DATA
使用同樣的方式還可以建立多個不同日期的角色模仿維度。

需要補充的一點是,目前市場上的大部分展現工具,都提供了對一個表選擇多次的功能。也就是說,角色模仿維度的功能展現工具自己就可以實現。這樣,就不需要我們在資料庫中建立角色模仿維度的檢視了,而直接使用展現工具完成即可。

Degenerate Dimension:
中文一般翻譯為“退化維度”。這種退化維度一般都是事務的編號,如訂單編號、發票編號等。這類編號需要儲存到事實表中,但是不需要對應的維度表,所以稱為退化維度。
退化維度是維度建模領域中的一個非常重要的概念,它對理解維度建模有著非常重要的作用,尤其是對維度建模的入門者。
退化維度經常會和其他一些維度一起組合成事實表的主鍵。在Kimball提出的維度建模中,事實表應該儲存最細粒度的資料。所以對於象銷售單這樣的事實表來說,需要銷售單編號和產品來共同作為主鍵,而不能用銷售日期、商場、產品等用來分析的維度共同作為主鍵。
退化維度在分析中可以用來做分組使用。它可以將同一個事務中銷售的產品集中在一起。

Bus Architecture:(即一致性維度架構)
中文一般翻譯為“匯流排架構”。匯流排架構是Kimball的多維體系結構(MD)中的三個關鍵性概念之一,另兩個是一致性維度(Conformed Dimension)和一致性事實(Conformed Fact)。
在多維體系結構(MD)的資料倉儲架構中,主導思想是分步建立資料倉儲,由資料集市組合成企業的資料倉儲。但是,在建立第一個資料集市前,架構師首先要做的就是設計出在整個企業內具有統一解釋的標準化的維度和事實,即一致性維度和一致性事實。而開發團隊必須嚴格的按照這個體系結構來進行資料集市的迭代開發。
一致性維度就好比企業範圍內的一組匯流排,不同資料集市的事實的就好比插在這組匯流排上的元件。這也是稱之為匯流排架構的原因。
實際設計過程中,我們通常把匯流排架構列表成矩陣的形式,其中列為一致性維度,行為不同的業務處理過程,即事實,在交叉點上打上標記表示該業務處理過程與該維度相關。這個矩陣也稱為匯流排矩陣(Bus Matrix)。
匯流排架構和一致性維度、一致性事實共同組成了Kimball的多維體系結構的基礎,也建立了一套可以逐步建立資料倉儲的方法論。由於匯流排架構是多維體系結構的核心,所以我們有時就把多維體系結構直接稱為匯流排架構。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16723161/viewspace-1026464/,如需轉載,請註明出處,否則將追究法律責任。

相關文章