仲介交易 SEO診斷 淘寶客 雲主機 技術大廳
資料倉儲的目的是構建面向分析的集成化資料環境,為企業提供決策支援(Decision Support)。 其實資料倉儲本身並不「生產」任何資料,同時自身也不需要「消費」任何的資料,資料來源於外部,並且開放給外部應用,這也是為什麼叫「倉庫」,而不叫「工廠」的原因。 因此資料倉儲的基本架構主要包含的是資料流程入流出的過程,可以分為三層——來源資料、資料倉儲、資料應用:
從圖中可以看出資料倉儲的資料來源於不同的來源資料,並提供多樣的資料應用,資料自上而下流入資料倉儲後向上層開放應用,而資料倉儲只是中間集成化資料管理的一個平臺。
資料倉儲從各資料來源獲取資料及在資料倉儲內的資料轉換和流動都可以認為是ETL(抽取Extra, 轉化Transfer, 裝載Load)的過程,ETL是資料倉儲的流水線,也可以認為是資料倉儲的血液, 它維繫著資料倉儲中資料的新陳代謝,而資料倉儲日常的管理和維護工作的大部分精力就是保持ETL的正常和穩定。
下面主要簡單介紹下資料倉儲架構中的各個模組,當然這裡所介紹的資料倉儲主要是指網站資料倉儲。
資料倉儲的資料來源
其實之前的一篇文章已經介紹過資料倉儲各種來源資料的類型——資料倉儲的源資料類型,所以這裡不再詳細介紹。
對於網站資料倉儲而言,點擊流日誌是一塊主要的資料來源,它是網站分析的基礎資料;當然網站的資料庫資料也並不可少,其記錄這網站運營的資料及各種使用者操作的結果,對於分析網站Outcome這類資料更加精准; 其他是網站內外部可能產生的文檔及其它各類對於公司決策有用的資料。
資料倉儲的資料存儲
來源資料通過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的設計,這也是日常管理維護中的重頭; 而資料倉儲的真正價值體現在於基於其的資料應用上,如果沒有有效的資料應用也就失去了構建資料倉儲的意義。
» 本文采用 BY-NC-SA 協定,轉載請注明來源:網站資料分析 » 《資料倉儲的基本架構》