數據倉庫初體驗前端
數據庫倉庫架構之前弄的很簡單:將各類源的數據統一匯聚到DW中,DW沒有設計,只是將全部數據匯聚起來;數據庫
ETL也很簡單,只是將數據同步到DW中,只是遇到BUG時,處理一些錯誤數據,例如:字符串中有分隔符,有回車等等。後端
仔細看了一些概念後,發現DW是須要通過仔細的設計架構的,下面仍是紀錄,其中不少架構設計部分仍是不理解,ETL中的Transform也須要研究,後續其餘帖子詳細記錄。設計模式
---------------------------------------------------------------------------------------------------------------------------性能優化
構建企業級數據倉庫五步法:數據結構
1、 肯定主題架構
即肯定數據分析或前端展示的主題(例:某年某月某地區的啤酒銷售狀況)。主題要體現出某一方面的各分析角度(維度)和統計數值型數據(量度)之間的關係,肯定主題時要綜合考慮.工具
2、 肯定量度post
肯定主題後,須要考慮分析的技術指標(例:年銷售額等等)。它們通常爲數據值型數據,其中有些度量值不能夠彙總;些能夠彙總起來,以便爲分析者提供有用的信息。量度是要統計的指標,必須事先選擇恰當,基於不一樣的量度能夠進行復雜關鍵性指標(KPI)的設計和計算。性能
3、 肯定事實數據粒度
肯定量度以後,須要考慮該量度的彙總狀況和不一樣維度下量度的聚合狀況.例如在業務系統中數據最小記錄到秒,而在未來分析需求中,時間只要精確到天就能夠了,在ETL處理過程當中,按天來彙總數據,些時數據倉庫中量度的粒度就是」天」。若是不能確認未來的分析需求中是否要精確的秒,那麼,咱們要遵循」最小粒度原則」,在數據倉庫中的事實表中保留每一秒的數據,從而在後續創建多維分析模型(CUBE)的時候,會對數據提早進行彙總,保障產生分析結果的效率。
4、 肯定維度
維度是分析的各個角度.例:咱們但願按照時間,或者按照地區,或者按照產品進行分析。那麼這裏的時間,地區,產品就是相應的維度。基於不一樣的維度,能夠看到各個量度彙總的狀況,也能夠基於全部的維度進行交叉分析。
維度的層次(Hierarchy)和級別(Level)。例:在時間維度上,按照」度-季度-月」造成了一個層次,其中」年」 ,」季度」 ,」月」成爲了這個層次的3個級別。咱們能夠將「產品大類-產品子類-產品」劃爲一個層次,其中包含「產品大類」、「產品子類」、「產品」三個級別。
咱們能夠將3個級別設置成一張數據表中的3個字段,好比時間維度;咱們也可使用三張表,分別保存產品大類,產品子類,產品三部分數據,好比產品維度。
創建維度表時要充分使用代理鍵.代理鍵是數據值型的ID號碼(每張表的第一個字段),它惟一標識了第一維度成員。在聚合時,數值型字段的匹配和比較,join效率高。同時代理鍵在緩慢變化維中,起到了對新數據與歷史數據的標識做用。
5、 建立事實表
在肯定好事實數據和維度後,將考慮加載事實表。業務系統的的一筆筆生產,交易記錄就是將要創建的事實表的原始數據.
咱們的作法是將原始表與維度表進行關聯,生成事實表。關聯時有爲空的數據時(數據源髒),須要使用外鏈接,鏈接後將各維度的代理鍵取出放於事實表中,事實表除了各維度代理鍵外,還有各度量數據,不該該存在描述性信息。
事實表中的記錄條數據都比較多,要爲其設置複合主鍵各蛇引,以實現數據的完整性和基於數據倉庫的查詢性能優化。
元數據:
描述數據及其環境的數據。兩方面用途:
首先,元數據能提供基於用戶的信息,如記錄數據項的業務描述信息的元數據能幫助用戶使用數據。
其次,元數據能支持系統對數據的管理和維護,如關於數據項存儲方法的元數據能支持系統以最有效的方式訪問數據。
元數據機制主要支持如下五類系統管理功能:
(1)描述哪些數據在數據倉庫中;
(2)定義要進入數據倉庫中的數據和從數據倉庫中產生的數據;
(3)記錄根據業務事件發生而隨之進行的數據抽取工做時間安排;
(4)記錄並檢測系統數據一致性的要求和執行狀況;
(5)衡量數據質量。
1. 維度(Dimension)
維度是用來反映業務的一類屬性,這類屬性的集合構成一個維度。如時間、地理位置或產品,
2.粒度
粒度將直接決定所構建倉庫系統可以提供決策支持的細節級別。粒度越高表示倉庫中的數據較粗,反之,較細。粒度是與具體指標相關的,具體表如今描述此指標的某些可分層次維的維值上。例如,時間維度,時間能夠分紅年、季、月、周、日等。
3. 指標(Measure)
指標也稱關鍵性能指標、事實或關鍵事務指標,是沿維度衡量商務信息的工具。每個指標表明瞭業務對象所固有的一個可供分析的屬性。指標是典型的數量、容量或將經過同標準的比較查明的款項。這些數據點可用於商務性能的定量的比較。
4. 指標組(Relation Measures)
實際上每一組用於分析的業務對象會有若干相互關聯的指標,如營業額、納稅額。這些指標之間存在計算關係,每每是做爲一個總體用於分析的,這個總體稱之爲指標組。
5. 元數據(Metadata)
關於數據的數據。元數據用於描述數據倉庫中的數據的結構、內容和數據源。
6. 元數據庫(Metadata Repository)
一種提供數據詳細狀況的詞典。這些詳細的信息包括數據源的目錄和它們相關的標準。該數據目錄描述的是數據捕捉和數據訪問兩種環境中可用的數據。該目錄還應說明數據最後一次更新的時間和計劃將要更新的時間—最起碼,要說明數據維護的調度。數據目錄還應說明數據的物理屬性;也就是說,數據是如何存儲的。數據目錄幫助數據用戶弄清楚「從哪裏」可得到「什麼樣」的數據。
7. 中央數據庫(Center Database)
數據倉庫中用於存儲原始數據的存儲介質。此處的原始數據指從業務系統中採集後通過清洗、轉換的數據。
8. 指標數據庫(Indicator Databases)
數據倉庫中用於存放指標數據的存儲介質。指標數據庫根據數據倉庫系統的使用對象劃分,一般分紅多個。
9. 數據清洗(Data Cleaning)
對數據倉庫系統無用的或者不符合數據格式規範的數據稱之爲髒數據。清洗的過程就是清除髒數據的過程。
10. 數據採集(Data Collection)
數據倉庫系統中後端處理的一部分。數據採集過程是指從業務系統中收集與數據倉庫各指標有關的數據。
11.數據轉換(Data Transformation)
解釋業務數據並修改其內容,使之符合數據倉庫數據格式規範,並放入數據倉庫的數據存儲介質中。數據轉換包括數據存儲格式的轉換以及數據表示符的轉換(如產品代碼到產品名稱的轉換)。
12.聯機分析處理(OLAP Online Analytical Processing )
在線事務處理(on-line transaction processing,簡稱OLTP)可以提供一些記錄級查詢功能,如今分析人員要求從各個角度去觀察一些統計指標,會對多張表千萬條中的數據進行分析和信息綜合。這是操做型應用力不從心的。1993年,關係數據庫之父E.F.Codd將這類技術定義爲在線分析處理(on-line analytical processing,簡稱OLAP)。
OLAP是一種多維分析技術,用來知足決策用戶在大量的業務數據中,從多角度探索業務活動的規律性、市場的運做趨勢的分析需求,並輔助他們進行戰略發展決策的制定。按照數據的存儲方式分OLAP又分爲ROLAP、MOLAP和HOLAP。
在客戶信息數據倉庫CCDW的數據環境下,OLAP提供上鑽、下鑽、切片、旋轉等在線分析機制。完成的功能包括多角度實時查詢、簡單的數據分析,並輔之於各類圖形展現分析結果。
13. 星形圖(Star-Schema)
是數據倉庫應用程序的最佳設計模式。它的命名是因其在物理上表現爲中心實體,典型內容包括指標數據、輻射數據,一般是有助於瀏覽和彙集指標數據的維度。星形圖模型獲得的結果經常是查詢式數據結構,可以爲快速響應用戶的查詢要求提供最優的數據結構。星形圖還經常產生一種包含維度數據和指標數據的兩層模型。14.雪花圖(Snowflake-Schema) 指一種擴展的星形圖。星形圖一般生成一個兩層結構,即只有維度和指標,雪花圖生成了附加層。實際數據倉庫系統建設過程當中,一般只擴展三層:維度(維度實體)、指標(指標實體)和相關的描述數據(類目細節實體)超過三層的雪花圖模型在數據倉庫系統中應該避免。由於它們開始像更傾向於支持OLTP 應用程序的規格化結構,而不是爲數據倉庫和OLAP應用程序而優化的非格式化結構。