天天看點

資料倉庫架構設計

資料倉庫架構,是IT架構的一個分支,随着資料在企業的核心作用的增強,資料倉庫的架構日益重要。資料倉庫架構由于其技術選擇非常廣泛,看上去複雜,不過背後有一套比較穩定的思路,這也是資料倉庫架構設計的一個要點,穩定中蘊含變化,變化中蘊含穩定。

總體來說,資料倉庫架構分成兩大塊,一是硬體架構,二是軟體架構。硬軟架構又可以分成封閉式和開放式。封閉式硬體架構代表廠商有teradata,其硬體是專屬的,必須使用特殊的硬體才能運作。開放式硬體架構的代表有oracle,可以運作在各種硬體上,不過開放和封閉之間的界限也逐漸的融合,oracle也開始打包hp的專屬硬體來推廣其dw的方案,而teradata也開始用基于suse的os可運作的硬體上提供其dw産品。封閉式硬體好處是開箱即用,經過廠商的嚴格測試,保障性比較高,開放式硬體則需要企業具備很強大的技術實力,能夠有一支具備硬體,存儲,作業系統綜合知識和能力的團隊,在組合成一套可以運作dw軟體的基礎平台,并且在發現問題的時候要能很快速的定位問題的原因并解決。

資料倉庫的軟體架構選擇更加豐富。從資料庫軟體,etl軟體,展現軟體,資料挖掘軟體,每一種類型裡面都具備非常多的選擇。

這些軟體的選擇是架構設計的一部分,架構設計的重要核心一部分是綜合這些軟體的一套思路,在一套dw架構設計的思路下,軟體可以很靈活的進行選擇。

資料倉庫架構設計的出發點是什麼?需要解決哪些問題?

所謂架構,好比大廈,好的設計大廈具備很好的抗震,抗自然災害能力,架構式建築能夠重新打造内部結構。而資料倉庫架構也是解決類似的問題,其實很多資料倉庫在開始起步的時候是不談架構的,本來就是小作坊,無須談到架構這個高度。但是如果要考慮建設一個能支撐容納5-10年業務的時候,架構的好壞就展現出來了。

一個好的架構其實就是經驗的沉澱物,架構是在理清楚資料倉庫的基本的任務,并能讓這些任務高效低成本的實作。舉個簡單的例子來了解一下,資料倉庫中同步資料和彙總資料的依賴子產品非常之多,如果其中若幹子產品出錯,該如何處理?如果架構設計不好,就會陷入維護人員不斷的尋找問題,清理現場,手工排程等問題出現,場面應該十分混亂。好的架構首先是子產品化,子產品内部具備自動清理現場功能,而子產品間則具備自動斷點重新啟動功能,在子產品正常出錯的時候,能依靠系統自助解決問題,同時能把處理問題的過程記錄下來供後續分析。這樣的架構能夠極大的提升維護的效率,減輕維護人員的維護量。整個dw系統也具備了抗異常能力。

資料倉庫的架構設計,有時候一個好的架構設計的出發點往往來源于目前系統的缺陷。如何面對目前系統的缺陷是架構能否持續發展的一個關鍵點之一。業界存在很多對商業,開源etl工具的評測,那麼這些評測要點應該從哪些方面進行才能甄别出适合企業的工具呢?

1.成本。成本永遠是企業關心的一個核心問題,特别在如今經濟寒冬,更是如此。

2.效率。能否高效的處理海量的資料是一個基礎要素,搞資料倉庫的都知道,資料量永遠是一個經常被拿出來讨論的話題。

3.線性擴充。能支援線性擴充的系統在計劃支撐多年的系統中特别重要,可以非常友善的做出年度預算。

4.協同工作。解決多人協同開發問題。

5.排程。能否很友善的一目了然的看到整體排程,站在一個非常高的高度來管理各種資料流。

6.相容性。能否相容各種異構資料。

7.準确的監控系統。

8.高效的開發架構。

資料倉庫的實體架構,包含硬體實體架構和軟體實體架構。硬體實體架構包含集中式和分布式2中,在企業裡面都有運用。

集中式硬體實體架構偏向于使用非常power的小型機或者大型機,非常高端的海量存儲,管理簡單,在不計投入的情況下性能也能滿足企業需求。

分布式硬體實體架構目前非常流行,特征是采用價格低廉的中低端機器組成計算叢集,不同的技術驅動下,在share nothing的架構下可以采用本機的硬碟, 在share everything的架構下偏向使用集中存儲,分布式叢集在網絡上的要求比較高,擴充性比較好,配合好的軟體可以達到線性擴充的要求。

軟體實體架構主要特征差別就是行存儲和列存儲。這個也是曾經很多廠商津津樂道的地方,根據需求的不同,2種方式可以靈活采用。

大部分db軟體都是采用行存儲,而列存儲的特征在于高效的單列值壓縮,在選擇列比較少的時候需要io要求很低,速度很快,不過行存儲的db目前在壓縮效率上也在迅速提升,大部分需求還是選擇行資料進行觀察,行存儲也更加便于表的按記錄拆分進行并行化。