更新時間:2019-11-05 來源:傳智播客 瀏覽量:
數(shù)據(jù)倉庫的目的是構(gòu)建面向分析的集成化數(shù)據(jù)環(huán)境,為企業(yè)提供決策支持(Decision
Support)。其實數(shù)據(jù)倉庫本身并不“生產(chǎn)”任何數(shù)據(jù),同時自身也不需要“消費”任何的數(shù)據(jù),數(shù)據(jù)來源于外部,并且開放給外部應(yīng)用,這也是為什么叫“倉庫”,而不叫“工廠”的原因。因此數(shù)據(jù)倉庫的基本架構(gòu)主要包含的是數(shù)據(jù)流入流出的過程,可以分為三層——源數(shù)據(jù)、數(shù)據(jù)倉庫、數(shù)據(jù)應(yīng)用:
從圖中可以看出數(shù)據(jù)倉庫的數(shù)據(jù)來源于不同的源數(shù)據(jù),并提供多樣的數(shù)據(jù)應(yīng)用,數(shù)據(jù)自上而下流入數(shù)據(jù)倉庫后向上層開放應(yīng)用,而數(shù)據(jù)倉庫只是中間集成化數(shù)據(jù)管理的一個平臺。
數(shù)據(jù)倉庫從各數(shù)據(jù)源獲取數(shù)據(jù)及在數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)轉(zhuǎn)換和流動都可以認(rèn)為是ETL(抽取Extra, 轉(zhuǎn)化Transfer, 裝載Load)的過程,ETL是數(shù)據(jù)倉庫的流水線,也可以認(rèn)為是數(shù)據(jù)倉庫的血液,它維系著數(shù)據(jù)倉庫中數(shù)據(jù)的新陳代謝,而數(shù)據(jù)倉庫日常的管理和維護工作的大部分精力就是保持ETL的正常和穩(wěn)定。
下面主要簡單介紹下數(shù)據(jù)倉庫架構(gòu)中的各個模塊,當(dāng)然這里所介紹的數(shù)據(jù)倉庫主要是指網(wǎng)站數(shù)據(jù)倉庫。
數(shù)據(jù)倉庫的數(shù)據(jù)來源
對于網(wǎng)站數(shù)據(jù)倉庫而言,點擊流日志是一塊主要的數(shù)據(jù)來源,它是網(wǎng)站分析的基礎(chǔ)數(shù)據(jù);當(dāng)然網(wǎng)站的數(shù)據(jù)庫數(shù)據(jù)也并不可少,其記錄這網(wǎng)站運營的數(shù)據(jù)及各種用戶操作的結(jié)果,對于分析網(wǎng)站Outcome這類數(shù)據(jù)更加精準(zhǔn);其他是網(wǎng)站內(nèi)外部可能產(chǎn)生的文檔及其它各類對于公司決策有用的數(shù)據(jù)。
數(shù)據(jù)倉庫的數(shù)據(jù)存儲
源數(shù)據(jù)通過ETL的日常任務(wù)調(diào)度導(dǎo)出,并經(jīng)過轉(zhuǎn)換后以特性的形式存入數(shù)據(jù)倉庫。其實這個過程一直有很大的爭議,就是到底數(shù)據(jù)倉庫需不需要儲存細(xì)節(jié)數(shù)據(jù),一方的觀點是數(shù)據(jù)倉庫面向分析,所以只要存儲特定需求的多維分析模型;另一方的觀點是數(shù)據(jù)倉庫先要建立和維護細(xì)節(jié)數(shù)據(jù),再根據(jù)需求聚合和處理細(xì)節(jié)數(shù)據(jù)生成特定的分析模型。我比較偏向后面一個觀點:數(shù)據(jù)倉庫并不需要儲存所有的原始數(shù)據(jù),但數(shù)據(jù)倉庫需要儲存細(xì)節(jié)數(shù)據(jù),并且導(dǎo)入的數(shù)據(jù)必須經(jīng)過整理和轉(zhuǎn)換使其面向主題。簡單地解釋下:
(1)為什么不需要所有原始數(shù)據(jù)?數(shù)據(jù)倉庫面向分析處理,但是某些源數(shù)據(jù)對于分析而言沒有價值或者其可能產(chǎn)生的價值遠(yuǎn)低于儲存這些數(shù)據(jù)所需要的數(shù)據(jù)倉庫的實現(xiàn)和性能上的成本。比如我們知道用戶的省份、城市足夠,至于用戶究竟住哪里可能只是物流商關(guān)心的事,或者用戶在博客的評論內(nèi)容可能只是文本挖掘會有需要,但將這些冗長的評論文本存在數(shù)據(jù)倉庫就得不償失;
(2)為什么要存細(xì)節(jié)數(shù)據(jù)?細(xì)節(jié)數(shù)據(jù)是必需的,數(shù)據(jù)倉庫的分析需求會時刻變化,而有了細(xì)節(jié)數(shù)據(jù)就可以做到以不變應(yīng)萬變,但如果我們只存儲根據(jù)某些需求搭建起來的數(shù)據(jù)模型,那么顯然對于頻繁變動的需求會手足無措;
(3)為什么要面向主題?面向主題是數(shù)據(jù)倉庫的第一特性,主要是指合理地組織數(shù)據(jù)以方面實現(xiàn)分析。對于源數(shù)據(jù)而言,其數(shù)據(jù)組織形式是多樣的,像點擊流的數(shù)據(jù)格式是未經(jīng)優(yōu)化的,前臺數(shù)據(jù)庫的數(shù)據(jù)是基于OLTP操作組織優(yōu)化的,這些可能都不適合分析,而整理成面向主題的組織形式才是真正地利于分析的,比如將點擊流日志整理成頁面(Page)、訪問(Visit或Session)、用戶(Visitor)三個主題,這樣可以明顯提升分析的效率。
數(shù)據(jù)倉庫基于維護細(xì)節(jié)數(shù)據(jù)的基礎(chǔ)上在對數(shù)據(jù)進行處理,使其真正地能夠應(yīng)用于分析。主要包括三個方面:
·數(shù)據(jù)的聚合
這里的聚合數(shù)據(jù)指的是基于特定需求的簡單聚合(基于多維數(shù)據(jù)的聚合體現(xiàn)在多維數(shù)據(jù)模型中),簡單聚合可以是網(wǎng)站的總Pageviews、Visits、Unique
Visitors等匯總數(shù)據(jù),也可以是Avg. time on page、Avg. time on site等平均數(shù)據(jù),這些數(shù)據(jù)可以直接地展示于報表上。
·多維數(shù)據(jù)模型
多維數(shù)據(jù)模型提供了多角度多層次的分析應(yīng)用,比如基于時間維、地域維等構(gòu)建的銷售星形模型、雪花模型,可以實現(xiàn)在各時間維度和地域維度的交叉查詢,以及基于時間維和地域維的細(xì)分。所以多維數(shù)據(jù)模型的應(yīng)用一般都是基于聯(lián)機分析處理(Online
Analytical Process, OLAP)的,而面向特定需求群體的數(shù)據(jù)集市也會基于多維數(shù)據(jù)模型進行構(gòu)建。
·業(yè)務(wù)模型
這里的業(yè)務(wù)模型指的是基于某些數(shù)據(jù)分析和決策支持而建立起來的數(shù)據(jù)模型,比如我之前介紹過的用戶評價模型、關(guān)聯(lián)推薦模型、RFM分析模型等,或者是決策支持的線性規(guī)劃模型、庫存模型等;同時,數(shù)據(jù)挖掘中前期數(shù)據(jù)的處理也可以在這里完成。
數(shù)據(jù)倉庫的數(shù)據(jù)應(yīng)用
·報表展示
報表幾乎是每個數(shù)據(jù)倉庫的必不可少的一類數(shù)據(jù)應(yīng)用,將聚合數(shù)據(jù)和多維分析數(shù)據(jù)展示到報表,提供了最為簡單和直觀的數(shù)據(jù)。
·即席查詢
理論上數(shù)據(jù)倉庫的所有數(shù)據(jù)(包括細(xì)節(jié)數(shù)據(jù)、聚合數(shù)據(jù)、多維數(shù)據(jù)和分析數(shù)據(jù))都應(yīng)該開放即席查詢,即席查詢提供了足夠靈活的數(shù)據(jù)獲取方式,用戶可以根據(jù)自己的需要查詢獲取數(shù)據(jù),并提供導(dǎo)出到Excel等外部文件的功能。
·數(shù)據(jù)分析
數(shù)據(jù)分析大部分可以基于構(gòu)建的業(yè)務(wù)模型展開,當(dāng)然也可以使用聚合的數(shù)據(jù)進行趨勢分析、比較分析、相關(guān)分析等,而多維數(shù)據(jù)模型提供了多維分析的數(shù)據(jù)基礎(chǔ);同時從細(xì)節(jié)數(shù)據(jù)中獲取一些樣本數(shù)據(jù)進行特定的分析也是較為常見的一種途徑。
·數(shù)據(jù)挖掘
數(shù)據(jù)挖掘用一些高級的算法可以讓數(shù)據(jù)展現(xiàn)出各種令人驚訝的結(jié)果。數(shù)據(jù)挖掘可以基于數(shù)據(jù)倉庫中已經(jīng)構(gòu)建起來的業(yè)務(wù)模型展開,但大多數(shù)時候數(shù)據(jù)挖掘會直接從細(xì)節(jié)數(shù)據(jù)上入手,而數(shù)據(jù)倉庫為挖掘工具諸如SAS、SPSS等提供數(shù)據(jù)接口。【推薦了解:黑馬大數(shù)據(jù)培訓(xùn)課程】
元數(shù)據(jù)管理
元數(shù)據(jù)(Meta
Date),其實應(yīng)該叫做解釋性數(shù)據(jù),即描述數(shù)據(jù)的數(shù)據(jù)。主要記錄數(shù)據(jù)倉庫中模型的定義、各層級間的映射關(guān)系、監(jiān)控數(shù)據(jù)倉庫的數(shù)據(jù)狀態(tài)及ETL的任務(wù)運行狀態(tài)。一般會通過元數(shù)據(jù)資料庫(Metadata
Repository)來統(tǒng)一地存儲和管理元數(shù)據(jù),其主要目的是使數(shù)據(jù)倉庫的設(shè)計、部署、操作和管理能達(dá)成協(xié)同和一致。
最后做個Ending,數(shù)據(jù)倉庫本身既不生產(chǎn)數(shù)據(jù)也不消費數(shù)據(jù),只是作為一個中間平臺集成化地存儲數(shù)據(jù);數(shù)據(jù)倉庫實現(xiàn)的難度在于整體架構(gòu)的構(gòu)建及ETL的設(shè)計,這也是日常管理維護中的重頭;而數(shù)據(jù)倉庫的真正價值體現(xiàn)在于基于其的數(shù)據(jù)應(yīng)用上,如果沒有有效的數(shù)據(jù)應(yīng)用也就失去了構(gòu)建數(shù)據(jù)倉庫的意義。
本文來自:黑馬程序員 大數(shù)據(jù)學(xué)院 cloud.itheima.com