1. 程式人生 > >資料倉庫的基本架構

資料倉庫的基本架構

資料倉庫的目的是構建面向分析的整合化資料環境,為企業提供決策支援(Decision Support)。其實資料倉庫本身並不“生產”任何資料,同時自身也不需要“消費”任何的資料,資料來源於外部,並且開放給外部應用,這也是為什麼叫“倉庫”,而不叫“工廠”的原因。因此資料倉庫的基本架構主要包含的是資料流入流出的過程,可以分為三層——源資料、資料倉庫、資料應用:
在這裡插入圖片描述

從圖中可以看出資料倉庫的資料來源於不同的源資料,並提供多樣的資料應用,資料自上而下流入資料倉庫後向上層開放應用,而資料倉庫只是中間整合化資料管理的一個平臺。

資料倉庫從各資料來源獲取資料及在資料倉庫內的資料轉換和流動都可以認為是ETL(抽取Extra, 轉化Transfer, 裝載Load)的過程,ETL是資料倉庫的流水線,也可以認為是資料倉庫的血液,它維繫著資料倉庫中資料的新陳代謝,而資料倉庫日常的管理和維護工作的大部分精力就是保持ETL的正常和穩定。

下面主要簡單介紹下資料倉庫架構中的各個模組,當然這裡所介紹的資料倉庫主要是指網站資料倉庫。

資料倉庫的資料來源

https://blog.csdn.net/Megustas_JJC/article/details/85259697

資料倉庫的資料儲存

源資料通過ETL的日常任務排程匯出,並經過轉換後以特性的形式存入資料倉庫。其實這個過程一直有很大的爭議,就是到底資料倉庫需不需要儲存細節資料,一方的觀點是資料倉庫面向分析,所以只要儲存特定需求的多維分析模型;另一方的觀點是資料倉庫先要建立和維護細節資料,再根據需求聚合和處理細節資料生成特定的分析模型。我比較偏向後面一個觀點:資料倉庫並不需要儲存所有的原始資料,但資料倉庫需要儲存細節資料,並且匯入的資料必須經過整理和轉換使其面向主題。簡單地解釋下:

(1).為什麼不需要所有原始資料?資料倉庫面向分析處理,但是某些源資料對於分析而言沒有價值或者其可能產生的價值遠低於儲存這些資料所需要的資料倉庫的實現和效能上的成本。比如我們知道使用者的省份、城市足夠,至於使用者究竟住哪裡可能只是物流商關心的事,或者使用者在部落格的評論內容可能只是文字挖掘會有需要,但將這些冗長的評論文字存在資料倉庫就得不償失;

(2).為什麼要存細節資料?細節資料是必需的,資料倉庫的分析需求會時刻變化,而有了細節資料就可以做到以不變應萬變,但如果我們只儲存根據某些需求搭建起來的資料模型,那麼顯然對於頻繁變動的需求會手足無措;

(3).為什麼要面向主題?面向主題是資料倉庫的第一特性,主要是指合理地組織資料以方面實現分析。對於源資料而言,其資料組織形式是多樣的,像點選流的資料格式是未經優化的,前臺資料庫的資料是基於OLTP操作組織優化的,這些可能都不適合分析,而整理成面向主題的組織形式才是真正地利於分析的,比如將點選流日誌整理成頁面(Page)、訪問(Visit或Session)、使用者(Visitor)三個主題,這樣可以明顯提升分析的效率。

資料倉庫基於維護細節資料的基礎上在對資料進行處理,使其真正地能夠應用於分析。主要包括三個方面:

資料的聚合
  這裡的聚合資料指的是基於特定需求的簡單聚合(基於多維資料的聚合體現在多維資料模型中),簡單聚合可以是網站的總Pageviews、Visits、Unique Visitors等彙總資料,也可以是Avg. time on page、Avg. time on site等平均資料,這些資料可以直接地展示於報表上。

多維資料模型
  多維資料模型提供了多角度多層次的分析應用,比如基於時間維、地域維等構建的銷售星形模型、雪花模型,可以實現在各時間維度和地域維度的交叉查詢,以及基於時間維和地域維的細分。所以多維資料模型的應用一般都是基於聯機分析處理(Online Analytical Process, OLAP)的,而面向特定需求群體的資料集市也會基於多維資料模型進行構建。

業務模型
  這裡的業務模型指的是基於某些資料分析和決策支援而建立起來的資料模型,比如我之前介紹過的使用者評價模型、關聯推薦模型、RFM分析模型等,或者是決策支援的線性規劃模型、庫存模型等;同時,資料探勘中前期資料的處理也可以在這裡完成。

資料倉庫的資料應用

報表展示
  報表幾乎是每個資料倉庫的必不可少的一類資料應用,將聚合資料和多維分析資料展示到報表,提供了最為簡單和直觀的資料。

即席查詢
  理論上資料倉庫的所有資料(包括細節資料、聚合資料、多維資料和分析資料)都應該開放即席查詢,即席查詢提供了足夠靈活的資料獲取方式,使用者可以根據自己的需要查詢獲取資料,並提供匯出到Excel等外部檔案的功能。

資料分析
  資料分析大部分可以基於構建的業務模型展開,當然也可以使用聚合的資料進行趨勢分析、比較分析、相關分析等,而多維資料模型提供了多維分析的資料基礎;同時從細節資料中獲取一些樣本資料進行特定的分析也是較為常見的一種途徑。

資料探勘
  資料探勘用一些高階的演算法可以讓資料展現出各種令人驚訝的結果。資料探勘可以基於資料倉庫中已經構建起來的業務模型展開,但大多數時候資料探勘會直接從細節資料上入手,而資料倉庫為挖掘工具諸如SAS、SPSS等提供資料介面。

元資料管理
  元資料(Meta Date),其實應該叫做解釋性資料,即資料的資料。主要記錄資料倉庫中模型的定義、各層級間的對映關係、監控資料倉庫的資料狀態及ETL的任務執行狀態。一般會通過元資料資料庫(Metadata Repository)來統一地儲存和管理元資料,其主要目的是使資料倉庫的設計、部署、操作和管理能達成協同和一致。

最後做個Ending,資料倉庫本身既不生產資料也不消費資料,只是作為一箇中間平臺整合化地儲存資料;資料倉庫實現的難度在於整體架構的構建及ETL的設計,這也是日常管理維護中的重頭;而資料倉庫的真正價值體現在於基於其的資料應用上,如果沒有有效的資料應用也就失去了構建資料倉庫的意義。