資料倉儲設計指南

來源:互聯網
上載者:User
在資料倉儲的設計指導思想中,資料倉儲的概念定義是非常重要的,資料倉儲概念規定了資料倉儲所具有的幾個基本特性,這些特性也正是對資料倉儲設計結果進行檢驗的重要依據。

在一般的資料倉儲應用系統中,根據系統體繫結構的不同,資料倉儲設計的內容和範圍不盡相同,並且設計方法也不盡相同,下面的兩幅圖示分別表示帶有ODS的資料倉儲應用系統體繫結構和不帶ODS的資料倉儲應用系統體繫結構。本文將說明兩個體繫結構上的差異以及這種差異造成的設計方法的不同,並且重點介紹帶有ODS的體繫結構中資料倉儲的設計方法。

    在資料倉儲的設計指導思想中,資料倉儲的概念定義是非常重要的,資料倉儲概念規定了資料倉儲所具有的幾個基本特性,這些特性也正是對資料倉儲設計結果進行檢驗的重要依據。

    根據Bill.Inmon的定義,“資料倉儲是面向主題的、整合的、穩定的、隨時間變化的,主要用於決策支援的資料庫系統”。

    ODS(Operational Data Store)是資料倉儲體繫結構中的一個可選部分,ODS具備資料倉儲的部分特徵和OLTP系統的部分特徵,它是“面向主題的、整合的、當前或接近當前的、不斷變化的”資料。

    一般在帶有ODS的系統體繫結構中,ODS都設計為如下幾個作用:

1)  在業務系統和資料倉儲之間形成一個隔離層

一般的資料倉儲應用系統都具有非常複雜的資料來源,這些資料存放在不同的地理位置、不同的資料庫、不同的應用之中,從這些業務系統對資料進行抽取並不是一件容易的事。因此,ODS用於存放從業務系統直接抽取出來的資料,這些資料從資料結構、資料之間的邏輯關係上都與業務系統基本保持一致,因此在抽取過程中極大降低了資料轉化的複雜性,而主要關注資料幫浦的介面、資料量大小、抽取方式等方面的問題。

2)  轉移一部分業務系統細節查詢的功能

在資料倉儲建立之前,大量的報表、分析是由業務系統直接支援的,在一些比較複雜的報表產生過程中,對業務系統的運行產生相當大的壓力。ODS的資料從粒度、組織方式等各個方面都保持了與業務系統的一致,那麼原來由業務系統產生的報表、細節資料的查詢自然能夠從ODS中進行,從而降低業務系統的查詢壓力。

3)  完成資料倉儲中不能完成的一些功能

一般來說,帶有ODS的資料倉儲體繫結構中,DW層所儲存的資料都是進行匯總過的資料,並不儲存每筆交易產生的細節資料,但是在某些特殊的應用中,可能需要對交易細節資料進行查詢,這時就需要把細節資料查詢的功能轉移到ODS來完成,而且ODS的資料模型按照面向主題的方式進行儲存,可以方便地支援多維分析等查詢功能。

    在一個沒有ODS層的資料倉儲應用系統體繫結構中,資料倉儲中儲存的資料粒度是根據需要而確定的,但一般來說,最為細節的業務資料也是需要保留的,實際上也就相當於ODS,但與ODS所不同的是,這時的細節資料不是“當前、不斷變化的”資料,而是“曆史的,不再變化的”資料。

設計方法

    在資料倉儲設計方法和資訊模型建模方法中,前人的著作對各種思路和方法都做過大量的研究和對比,重點集中在ER模型和維模型的比較和應用上。根據我們的實踐經驗,ER模型和維模型在資料倉儲設計中並非絕對對立,尤其在ODS設計上,從宏觀的角度來看資料之間的關係,以ER模型最為清晰,但從實現出來的資料結構上看,用維模型更加符合實際的需要。因此孤立地看ER模型或者維模型都缺乏科學客觀的精神,需要從具體應用上去考慮如何應用不同的設計方法,但目標是一定的,就是要能夠把企業的資料從宏觀到微觀能夠清晰表達,並且能夠實現出來。

    本文中重點介紹維模型的應用。

ODS設計指南

    在ODS的概念定義中,已經描述了ODS的功能和特點,實際上ODS設計的目標就是以這些特點作為依據的。ODS設計與DW設計在著眼點上有所不同,ODS重點考慮業務系統資料是什麼樣子的,關係如何,在商務程序處理的哪個環節,以及資料幫浦介面等問題。

    第零步:資料調研

    有關資料調研的內容和要求,在《調研規範》文檔中做了詳細定義,此處不再重複。

    第一步:確定資料範圍

    確定資料範圍實際上是對ODS進行主題劃分的過程,這種劃分是基於對業務系統的調研的基礎上而進行的,並不十分關心整個資料倉儲系統上端應用需求,但是需要把上端應用需求與ODS資料範圍進行驗證,以確保應用所需的資料都已經從業務系統中抽取出來,並且得到了很好的組織。一般來講,主題的劃分是以業務系統的資訊模型為依據的,設計者需要綜合各種業務系統的資訊模型,並進行宏觀的歸併,得到企業範圍內的高層資料檢視,並加以抽象,劃定幾個邏輯的資料主題範圍。在這個階段,以ER模型表示資料主題關係最為恰當。

    第二步:根據資料範圍進行進一步的資料分析和主題定義

    在第一步中定義出來了企業範圍內的高層資料檢視,以及所收集到的各種業務系統的資料,在這一步中,需要對大的資料主題進行分解,並進行主題定義,直到每個主題能夠直接對應一個主題資料模型為止。在這個階段,將把第一步產生的每個ER圖中的實體進行分解,分解的結果仍以ER表示為佳。

    第三步:定義主題元素

    定義維、度量、主題、粒度、儲存期限

    定義維的概念特性:
    維名稱,名稱應該能夠清晰表示出這個維的業務含義。
    維成員,也就是這個維所代表的具體的資料,
    維層次,維成員之間的隸屬與包含的層次關係,每個層次需要定義名稱

    定義度量的概念特性:
    度量名稱,名稱應該能夠清晰標書這個度量的業務含義

    定義主題的概念特性:
    主題名稱和含義,說明該主題主要包含哪些資料,用於什麼分析;

主題所包含的維和度量;
    主題的事實表,以及事實表的資料。

    定義粒度:
    主題中事實表的資料粒度說明,這種粒度可以通過對維的層次限制加以說明,也可以通過對事實表資料的業務細節程度進行說明。   

    定義儲存期限:
    主題中事實表中的資料存放區周期。

    第四步:迭代,歸併維、度量的定義
    在ODS中,因資料來自於多個系統,資料主題劃分時雖然對資料概念進行了一定程度上的歸併,但具體的業務代碼所形成的各個維、以及維成員等還需要進一步進行歸併,把概念統一的維定義成一個維,不允許同一個維存在不同的實體表示(象不同的業務系統中一樣)。

    第五步:物理實現
    定義每個主題的資料幫浦周期、抽取時間、抽取方式、資料介面,抽取流程和規則。
    實體設計不僅僅是ODS部分的資料庫物理實現,設計資料庫參數、作業系統參數、資料存放區設計之外,有關資料幫浦介面等問題必須清晰定義。

DW設計指南

    儘管我們看到過很多關於“不考慮應用,先建立資料平台”的說法,但建立一個“萬能的”東西是不可能的,所以資料倉儲的設計必須參照應用範圍、應用類型,例如要考慮到系統用於報表、OLAP、資料採礦的哪些模型等等,不同的應用對資料倉儲的設計有不同的要求。

    資料倉儲是面向主題的、整合的、穩定的、隨時間變化的資料,資料倉儲的這幾個特徵的含義在這裡不具體多介紹,但本人要說明如何?這些特性。

    在資料倉儲的設計中時刻不能忘記的幾個問題列舉如下:

1、  資料粒度和資料群組織
在資料倉儲的每個主題,都必須知道這個主題所限定的維的層次、事實資料的粒度;事實資料存放區的期限,“到期”的資料的處理方法。

2、  維和度量的唯一性和公用性
千萬不要在不同的主題中定義多個表示同一內容的維,尤其對於業務代碼類型的維,如果一個業務代碼形成了多個維表,那麼在中繼資料維護過程中將困難重重。在整個系統範圍內,要不斷檢視維定義是否唯一,如果有可能,一個維表要盡量被多個主題引用。

3、  資料粒度一旦變粗,就要考慮多個主題的融合匯總
在資料倉儲中,我們出於資料群組織的規則、業務的要求、效能的要求,都可能對一個主題的事實資料進行匯總,形成粒度較粗的事實資料,但這時候我們往往忘記了粒度變粗的事實資料為最終的使用者提供了更宏觀的資料檢視,這種宏觀的資料檢視當然需要進行跨主題的資料融合才能更加具有應用的價值。

4、  不論如何歸併,需要保持資料之間的聯絡
在資料倉儲中,不同主題的資料之間的物理約束或許不再存在,但無論這些資料如何變化,要知道必須有一些“鍵”在邏輯上保持著不同資料之間的聯絡,這樣就可以保證有聯絡的主題資料之間可以進行匯總以支援未知的應用,否則資料倉儲的資料是一潭死水,不可能靈活支援各種應用的。

    資料倉儲設計可以自底向上地進行,也就是說從匯總ODS資料入手,逐漸過渡到應用主題上面去(也就是說,ODS裡面的資料主題域與DW中的分析主題完全不是一回事)。我們仍然按部就班地逐項設計,這樣並不是完全限定設計思路和步驟,但可以有效地提醒設計者有哪些事情要做。

    第一步:對ODS中的各個主題的事實資料進行時間上的匯總
    ODS的事實資料是純細節的交易資料,進入ODS的第一步就是要按照時間維進行匯總,以實現初步的資訊沉澱。這種匯總不是只進行一次,而是要制定下來匯總的層級,比如日匯總資訊保留3個月,月匯總資訊保留2年,年匯總資訊長期儲存(當然在時間粒紋變粗的同時一般都伴隨著其他維粒度的變粗或者捨棄),我們最終一定要定義到何種程度的資料可以在資料倉儲中永久儲存為止的地步。

    第二步:按照商務邏輯的規則,對資料進行歸併
把ODS中不同主題中的表示相同業務的資料(來自不同的業務系統)進行歸併,例如一般企業的客服系統(Call Center)都受理一部分業務,而這些業務受理與在營業廳或銷售店的受理是一樣的,因此這類資料要歸併到一起。

    第三步:把包含細節過多的交易記錄進行拆分
    事實上,一個交易記錄所包含的資訊內容非常豐富,往往超越了某個人或部門的分析需求,但不同的人有不同的關注點,因此為提高效能起見,我們需要把一個長記錄包含的資訊進行分析、分解、匯總。例如在電信企業中,經過二次批價後的通話詳單包含多種資訊,經過分析,它包括網路資訊、業務類型資訊、時間資訊、地理資訊、費用資訊這樣幾個類別的資訊,而每一類資訊都由幾個欄位來進行記錄。這些不同類別的資訊是很少有人都同時關心的,一般來說網管部門關心網路資訊,市場部門關心業務類型資訊,而時間資訊和地理資訊恰是所有部門都需要的。按照這樣的情況,我們把一條話單按照資訊內容進行拆分,拆分後進行匯總歸併,以支援不同部門的分析要求。當然,對於資料採礦應用,可能同時關心所有的資訊以發掘不同資訊之間的關係,但這種情況一則很少,二則真正的資料採礦更多的時候依賴於交易細節資料,也就是說,對於專題問題的研究可以從ODS中進行資料的再次處理。

    第四步:匯總、再匯總
    匯總的問題決不僅僅是為了提高效能而做的事情(當然匯總能夠有效提高效能),但匯總同時意味著更高程度的綜合,在這個過程中,我們會發現與ODS系統設計過程相反,我們從細節走向了宏觀,在ODS中我們初步確定了公司資訊模型,對公司資訊模型進行初步分解,再分解、再分解,得到了一個個的主題;在資料倉儲中,我們從一個個的主題開始,綜合、再綜合,我們沿著與ODS相反的方向,走向了企業的宏觀資料檢視。事實上在DW設計中,匯總、綜合的終極目標,是要在最後把多個主題匯總成為一個大的主題,而這個主題所包含的維度和度量就是這個企業啟動並執行命脈指標,是企業老闆所最為關注的那幾個指標。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.