數據集市

倉庫的主要區別:數據倉庫是企業級的,能爲整個企業各個部門的運行提供決策支持手段;而數據集市則是一種微型的數據倉庫,它一般有更少的數據,更少的主題區域,以及更少的歷史數據,所以是部門級的,通常只能爲某個局部範圍內的管理人員服務,所以也稱之爲部門級數據倉庫。數據庫

 

數據倉庫數據結構

數據集市工具

數據的來源性能

生產系統、外部數據等優化

數據倉庫spa

範圍規模設計

企業級orm

部門級或工做組級htm

主題索引

以企業爲主題

以部門或特殊的分析爲主題

數據粒度

最細的粒度

較粗的粒度

數據結構

第三範式,規範化結構

星型模型、雪花模型、星座模型

歷史數據

大量的歷史數據

適度的歷史數據

優化

處理海量數據、數據探索

便於訪問和分析、快速查詢

索引

高度索引

高度索引

       數據集市能夠分爲兩種類型——獨立型數據集市和從屬型數據集市。獨立型數據集市直接從操做型環境獲取數據,從屬型數據集市從企業級數據倉庫獲取數據,帶有從屬型數據集市的體系結構如圖2所示。

       數據倉庫規模大、週期長,一些規模比較小的企業用戶難以承擔。所以,做爲快速解決企業當前存在的實際問題的一種有效方法,獨立型數據集市成爲一種既成事實。獨立型數據集市是爲知足特定用戶(通常是部門級別的)的需求而創建的一種分析型環境,它可以快速地解決某些具體的問題,並且投資規模也比數據倉庫小不少。

       獨立型數據集市的存在會給人形成一種錯覺,彷佛能夠先獨立地構建數據集市,當數據集市達到必定的規模再直接轉換爲數據倉庫。有些銷售人員會推銷這種觀點,其實質卻經常是由於創建企業級數據倉庫的銷售週期太長以致於很差操做。

       多個獨立的數據集市的累積,是不能造成一個企業級的數據倉庫的,這是由數據倉庫和數據集市自己的特色決定的——數據集市爲各個部門或工做組所用,各個集市之間存在不一致性是不免的。由於脫離數據倉庫的緣故,當多個獨立型數據集市增加到必定規模以後,因爲沒有統一的數據倉庫協調,企業只會又增長一些信息孤島,仍然不能以整個企業的視圖分析數據。借用Inmon的比喻:咱們不可能將大海里的小魚堆在一塊兒就構成一頭大鯨魚,這也說明了數據倉庫和數據集市有本質的不一樣。

若是企業最終想建設一個全企業統一的數據倉庫,想要以整個企業的視圖分析數據,獨立型數據集市恐怕不是合適的選擇;也就是說「先獨立地構建數據集市,當數據集市達到必定的規模再直接轉換爲數據倉庫」是不合適的。從長遠的角度看,從屬型數據集市在體系結構上比獨立型數據集市更穩定,能夠說是數據集市將來建設的主要方向。

2.  爲何要有數據集市?良好的數據集市有什麼特色?

       雖然 OLTP 和遺留系統擁有寶貴的信息,可是可能難以從這些系統中提取有意義的信息而且速度也較慢。並且這些系統雖然通常可支持預先定義操做的報表,但卻常常沒法支持一個組織對於歷史的、聯合的、智能的或易於訪問的信息的需求。由於數據分佈在許多跨系統和平臺的表中,並且一般是「髒的」,包含了不一致的和無效的值,使得難於分析。

       數據集市將合併不一樣系統的數據源來知足業務信息需求。若能有效地得以實現,數據集市將能夠快速且方便地訪問簡單信息以及系統的和歷史的視圖。一個設計良好的數據集市有以下特色(有些特色數據倉庫也具備,有些特色是相對於數據倉庫來說的):

       (1) 特定用戶羣體所需的信息,一般是一個部門或者一個特定組織的用戶,且無需受制於源系統的大量需求和操做性危機(相對於數據倉庫)。

       (2) 支持訪問非易變(nonvolatile)的業務信息。(非易變的信息是以預約的時間間隔進行更新的,而且不受 OLTP 系統進行中的更新的影響。)

       (3) 調和來自於組織裏多個運行系統的信息,好比帳目、銷售、庫存和客戶管理以及組織外部的行業數據。

       (4) 經過默認有效值、使各系統的值保持一致以及添加描述以使隱含代碼有意義,從而提供淨化的(cleansed)數據。

       (5) 爲即席分析和預約義報表提供合理的查詢響應時間(因爲數據集市是部門級的,相對於龐大的數據倉庫來說,其查詢和分析的響應時間會大大縮短)。

3.    數據集市的數據結構

       數據集市中數據的結構一般被描述爲星型結構或雪花結構。一個星型結構包含兩個基本部分——一個事實表和各類支持維表。

(1)    事實表

       事實表描述數據集市中最密集的數據。在電話公司中,用於呼叫的數據是典型的最密集數據;在銀行中,與帳目覈對和自動櫃員機有關的數據是典型的最密集數據。對於零售業而言,銷售和庫存數 據是最密集的數據等等。

       事實表是預先被鏈接到一塊兒的多種類型數據的組合體,它包括:一個反映事實表創建目的的實體的主鍵,如一張訂單、一次銷售、一個電話等等,主鍵信息,鏈接事實表與維表的外鍵,外鍵攜帶的非鍵值外部數據。若是這種非鍵外部數據常常用於事實表中的數據分析,它就會被包括在事實表的範圍內。事實表是高度索引化的。事實表中出現30到40條索引很是常見。有時實事表的每列都建了索引,這樣做的結果是使事實表中的數據很是容易讀取。可是,導入索引所需的資源數量必須爲等式提供因數。一般,事實表的數據不能更改,但能夠輸入數據,一旦正確輸入一個記錄,就不能更改此記錄的任何內容了。

(2)    維表

       維表是圍繞事實表創建的。維表包含非密集型數據,它經過外鍵與事實表相連。典型的維表創建在數據集市的基礎上,包括產品目錄、客戶名單、廠商列表等等。

       數據集市中的數據來源於企業數據倉庫。全部數據,除了一個例外,在導入到數據集市以前都應該通過企業數據倉庫。這個例外就是用於數據集市的特定數據,它不能用於數據倉庫的其餘地方。外部數據一般屬於這類範疇。若是狀況不是這樣,數據就會用於決策支持系統的其餘地方,那麼這些數據就必須通過企業數據倉庫。

       數據集市包含兩種類型的數據,一般是詳細數據和彙總數據。

(3)    詳細數據

       數據集市中的詳細數據包含在星型結構中。當數據經過企業數據倉庫時,星型結構就會很好的彙總。在這種狀況下,企業數據倉庫包含必需的基本數據,而數據集市則包含更高間隔尺寸的數據。可是,在數據集市使用者的心目中,星型結構的數據和數據獲取時同樣詳細。

(4)    彙總數據

       數據集市包含的第二種類型數據是彙總數據。分析人員一般從星型結構中的數據建立各類彙總數據。典型的彙總多是銷售區域的月銷售總額。由於彙總的基礎不斷髮展變化,因此歷史數據就在數據集市中。可是這些歷史數據優點在於它存儲的歸納水平。星型結構中保存的歷史數據很是少。

       數據集市以企業數據倉庫爲基礎進行更新。對於數據集市來講大約每週更新一次很是日常。可是,數據集市的更新時間能夠少於一週也能夠多於一週,這主要是由數據集市所屬部門的需求來決定的。

4.  如何創建數據集市?

       數據倉庫(集市)的設計能夠採用迭代式的方法。在迭代式開發中,每一個迭代爲上一次的結果增長了新的功能。功能增長的順序要考慮到迭代平衡以及儘早發現重大風險。通俗地說,就是在正式交貨以前屢次給客戶交付不完善的中間產品「試用」。這些中間產品會有一些功能尚未添加進去、還不穩定,可是客戶提出修改意見之後,開發人員可以更好地理解客戶的需求。如此反覆,使得產品在質量上可以逐漸逼近客戶的要求。這種開發方法週期長、成本高,可是它可以避免整個項目推倒重來的風險,比較適合大項目、高風險項目。

       理論上講,應該有一個總的數據倉庫的概念,而後纔有數據集市。實際建設數據倉庫(集市)的時候,國內不多這麼作。國內通常會先從數據集市入手,就某一個特定的主題(好比企業的客戶信息)先作數據集市,再建設數據倉庫。數據倉庫和數據集市創建的前後次序之分,是和設計方法緊密相關的。而數據倉庫做爲工程學科,並無對錯之分,主要判別方式應該是可否解決目前存在的實際問題,併爲從此可能發生的問題保持必定的可伸縮性。

5.  數據倉庫建模與數據集市建模

       數據只是全部業務活動、資源以及企業結果的記錄。數據模型是對那些數據的組織良好的抽象,所以數據模型成爲理解和管理企業業務的最佳方法是極其天然的。數據模型起到了指導或計劃數據倉庫的實現的做用。在真正的實現開始以前,聯合每一個業務領域的數據模型能夠幫助確保其結果是有效的數據倉庫,而且能夠幫助減小實現的成本。

(1)數據倉庫的建模

       數據倉庫數據的建模是將需求轉換成圖畫以及支持表示那些需求的元數據的過程。出於易讀性目的,本文將關於需求和建模的討論相分離,但實際上這些步驟一般是重疊的。一旦在文檔中記錄一些初始需求,初始模型就開始成型。隨着需求變得更加完整,模型也會如此。

最重要的是向終端用戶提供良好集成並易於解釋的數據倉庫的邏輯模型。這些邏輯模型是數據倉庫元數據的核心之一。爲終端用戶提供的簡單性以及歷史數據的集成和聯合是建模方法應該幫助提供的關鍵原則。

(2)數據集市的數據建模

       由於倉庫終端用戶直接與數據集市進行交互,因此數據集市的建模是捕獲終端用戶業務需求的最有效工具之一。數據集市的建模過程取決於許多因素。下面描述了三個最重要的:

       數據集市的建模是終端用戶驅動的。終端用戶必須參與數據集市的建模過程,由於他們顯然是要使用該數據集市的人。由於您應指望終端用戶徹底不熟悉複雜的數據模型,因此應該將建模技術和建模過程做爲總體進行組織,以便使複雜性對終端用戶透明。

       數據集市的建模是由業務需求驅動的。數據集市模型對於捕獲業務需求十分有用,由於它們一般由終端用戶直接使用,且易於理解。

       數據集市的建模極大地受到了數據分析技術的影響。數據分析技術能夠影響所選擇的數據模型的類型及其內容。目前,有幾種經常使用的數據分析技術:查詢和報表製做、多維分析以及數據挖掘。

       若是僅僅意圖提供查詢和報表製做功能,那麼帶有正規(normalized)或非正規(denormalized)數據結構的 ER 模型就是最合適的。維度數據模型也多是較好的選擇,由於它是用戶友好的,並具備更好的性能。若是其目標是執行多維數據分析,那麼維度數據模型就是這裏的唯一選擇。然而,數據挖掘一般在可用的最低細節級(level of detail)工做得最好。所以,若是數據倉庫是用於數據挖掘的,就應該在模型中包含較低細節級(level of detail)的數據。

6.  數據集市常見的誤區:

       誤區1:數據集市是比較小的。用大小來判斷一個企業是在實施數據倉庫仍是數據集市的作法是很天真的。一種定義認爲數據量小於50GB 的數據庫是數據集市,大於50GB 的是數據倉庫。事實上, 數據集市集中解決的是某一種業務功能的特殊須要,而且維持數據和數據模型來知足這種要求。尺寸大小不是數據集市的本質特徵,由於它一樣能夠有幾百GB 的描述更多細節的數據。數據集市也能夠只有幾個GB 的綜合數據就能夠知足面向應用的執行信息系統的須要。真正的問題在於,數據集市(它多是一個數據倉庫的子集)的數據模型必定是知足應用的特定需求的。

       誤區2:數據集市容易創建,能夠更快地投入運行。一個單一的數據集市的確比數據倉庫的複雜性程度低一些,由於它只針對某一須要解決的特定的商業問題,可是圍繞數據獲取的不少複雜問題並無減小。數據獲取包括從可使用的數據源中提取、確認和集成數據, 把它們輸送到數據集市和數據倉庫中。 

相關文章
相關標籤/搜索