数据仓库基本概念
?什么叫數據倉庫?
數據倉庫是一個面向主題的(Subject Oriented)、集成的(Integrate)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,它用于支持企業或組織的決策分析處理。
數據倉庫是為了便于多維分析和多角度展現而將數據按特定的模式進行存儲所建立起來的關系型數據庫,它的數據基于OLTP源系統。
首先,用于支持決策,面向分析型數據處理,它不同于企業現有的操作型數據庫;
其次,對多個異構的數據源有效集成,集成后按照主題進行了重組,并包含歷史數據,而且存放在數據倉庫中的數據一般不再修改
?
數據倉庫的基本架構是什么?(數據源,ETL,datastage,ODS,data warehouse,datamart,OLAP等等)
數據倉庫系統體系結構
1.數據源-> 2.ETL -> 3.數據倉庫存儲與管理-> 4.OLAP -> 5.BI工具
?
數據源:是數據倉庫系統的數據源泉,通常包括企業各類信息,包括存放于RDBMS中的各種業務處理數據和各類文檔數據;各類法律法規、市場信息和競爭對手的信息等等;
?
數據的存儲與管理:數據的存儲和管理是整個數據倉庫的核心,是關鍵。數據倉庫的組織管理方式決定了它有別于傳統數據庫,同時也決定了其對外部數據的表現形式。從數據倉庫的技術特點著手分析,來決定采用什么產品和技術來建立數據倉庫,然后針對現有各業務系統的數據,進行抽取、清理,并有效集成,按照主題進行組織。數據倉庫按照數據的覆蓋范圍可以分為企業級數據倉庫和部門級數據倉庫(通常稱為數據集市)。
?
OLAP服務器:
對需要的數據進行有效集成,按多維模型予以組織,以便進行多角度、多層次的分析,并發現趨勢。其具體實現可以分為:ROLAP(關系型在線分析處理)、MOLAP(多維在線分析處理)和HOLAP(混合型線上分析處理)。ROLAP基本數據和聚合數據均存放在RDBMS之中;MOLAP基本數據和聚合數據均存放于多維數據庫中;HOLAP基本數據存放于RDBMS之中,聚合數據存放于多維數據庫中。
?
前端工具:主要包括各查詢工具、數據分析工具、數據挖掘工具、種報表工具以及各種基于數據倉庫或數據集市的應用開發工具。
數據分析工具主要針對OLAP服務器。報表工具、數據挖掘工具主要針對數據倉庫。
?
數據庫和數據倉庫有什么區別?
1.數據是面向事務處的,數據是由日常的業務產生的,常更新;數據倉庫是面向主題的,數據來源于數據庫或文件,經過一定的規則轉換得到,用來分析的。
2.數據庫一般是用來存儲當前交易數據,數據倉庫存儲一般存儲的是歷史數據。
3.數據庫的設計一般是符合三范式的,有最大的精確度和最小的冗余度,有利于數據的插入; .數據倉庫的設計一般是星型的,有利于查詢。
?
構建企業級數據倉庫五步法:
一、 確定主題
即確定數據分析或前端展現的主題(例:某年某月某地區的啤酒銷售情況)。主題要體現出某一方面的各分析角度(維度)和統計數值型數據(量度)之間的關系,確定主題時要綜合考慮.
二、 確定量度
確定主題后,需要考慮分析的技術指標(例:年銷售額等等)。它們一般為數據值型數據,其中有些度量值不可以匯總;些可以匯總起來,以便為分析者提供有用的信息。量度是要統計的指標,必須事先選擇恰當,基于不同的量度可以進行復雜關鍵性指標(KPI)的設計和計算。
三、 確定事實數據粒度
確定量度之后,需要考慮該量度的匯總情況和不同維度下量度的聚合情況.例如在業務系統中數據最小記錄到秒,而在將來分析需求中,時間只要精確到天就可以了,在ETL處理過程中,按天來匯總數據,些時數據倉庫中量度的粒度就是”天”。如果不能確認將來的分析需求中是否要精確的秒,那么,我們要遵循”最小粒度原則”,在數據倉庫中的事實表中保留每一秒的數據,從而在后續建立多維分析模型(CUBE)的時候,會對數據提前進行匯總,保障產生分析結果的效率。
四、 確定維度
維度是分析的各個角度.例:我們希望按照時間,或者按照地區,或者按照產品進行分析。那么這里的時間,地區,產品就是相應的維度。基于不同的維度,可以看到各個量度匯總的情況,也可以基于所有的維度進行交叉分析。
維度的層次(Hierarchy)和級別(Level)。例:在時間維度上,按照”度-季度-月”形成了一個層次,其中”年” ,”季度” ,”月”成為了這個層次的3個級別。我們可以將“產品大類-產品子類-產品”劃為一個層次,其中包含“產品大類”、“產品子類”、“產品”三個級別。
我們可以將3個級別設置成一張數據表中的3個字段,比如時間維度;我們也可以使用三張表,分別保存產品大類,產品子類,產品三部分數據,比如產品維度。
建立維度表時要充分使用代理鍵.代理鍵是數據值型的ID號碼(每張表的第一個字段),它唯一標識了第一維度成員。在聚合時,數值型字段的匹配和比較,join效率高。同時代理鍵在緩慢變化維中,起到了對新數據與歷史數據的標識作用。
五、 創建事實表
在確定好事實數據和維度后,將考慮加載事實表。業務系統的的一筆筆生產,交易記錄就是將要建立的事實表的原始數據.
我們的做法是將原始表與維度表進行關聯,生成事實表。關聯時有為空的數據時(數據源臟),需要使用外連接,連接后將各維度的代理鍵取出放于事實表中,事實表除了各維度代理鍵外,還有各度量數據,不應該存在描述性信息。
事實表中的記錄條數據都比較多,要為其設置復合主鍵各蛇引,以實現數據的完整性和基于數據倉庫的查詢性能優化。
元數據:
描述數據及其環境的數據。兩方面用途:
首先,元數據能提供基于用戶的信息,如記錄數據項的業務描述信息的元數據能幫助用戶使用數據。
其次,元數據能支持系統對數據的管理和維護,如關于數據項存儲方法的元數據能支持系統以最有效的方式訪問數據。
元數據機制主要支持以下五類系統管理功能:
(1)描述哪些數據在數據倉庫中;
(2)定義要進入數據倉庫中的數據和從數據倉庫中產生的數據;
(3)記錄根據業務事件發生而隨之進行的數據抽取工作時間安排;
(4)記錄并檢測系統數據一致性的要求和執行情況;
(5)衡量數據質量。
?
ODS: Operational Data Store
ODS為企業提供即時的,操作型的,集成的數據集合,具有面向主題性,集成性,動態性,即時性,明細性等特點
ODS作為數據庫到數據倉庫的一種過渡形式,與數據倉庫在物理結構上不同,能提供高性能的響應時間,ODS設計采用混合設計方式。
ODS中的數據是"實時值",而數據倉庫的數據卻是"歷史值",一般ODS中儲存的數據不超過一個月,而數據倉庫為10年或更多.
?
Data Mart
為了特定的應用目的或應用范圍,而從數據倉庫中獨立出來的一部分數據,也可稱為部門數據或主題數據(subjectarea)。在數據倉庫的實施過程中往往可以從一個部門的數據集市著手,以后再用幾個數據集市組成一個完整的數據倉庫。需要注意的就是在實施不同的數據集市時,同一含義的字段定義一定要相容,這樣再以后實施數據倉庫時才不會造成×××煩。
?
DDS(decision-support system)決策支持系統:
用于支持管理決策的系統。通常,DSS包括以啟發的方式對大量的數據單元進行的分析,通常不涉及數據更新。
?
三.什么叫OLAP?用途是什么?
聯機分析處理,On-Line Analysis Processing 即從數據倉庫中抽取詳細數據的一個子集并經過必要的聚集,存儲到OLAP存儲器中供前端分析工具讀取。
OLAP系統按照數據存儲格式可以分為關系OLAP(RelationalOLAP,簡稱ROLAP)、多維OLAP(MultidimensionalOLAP,簡稱MOLAP)和混合型OLAP(HybridOLAP,簡稱HOLAP)三種類型。
ROLAP將分析要用的多維數據存儲在關系數據庫中,并根據應用的需要有選擇的定義一批實視圖也存儲在關系數據庫中
MOLAP將OLAP分析所要用到的多維數據物理上存儲為多維數組的形式,形成“立方體”的結構。
HOLAP能把MOLAP和ROLAP兩種結構的優點有機的結合起來,能滿足用戶各種復雜的分析請求。
?
OLTP與OLAP的區別
?
OLTP OLAP
用戶 操作人員 決策人員
?
功能 日常操作 分析決策
?
DB設計 面積應用 面向主題
?
數據 當前,最新,細節,二維 歷史,概括,多維集成的,統一
存取及規模 讀取少 大規模讀
?
事實表
事實表是包含大量數據值的一種結構。事實數據表可能代表某次銀行交易,包含一個顧客的來訪次數,并且這些數字信息可以匯總,以提供給有關單位作為歷史的數據。
每個數據倉庫都包含一個或者多個事實數據表。事實數據表只能包含數字度量字段和使事實表與維度表中對應項的相關索引字段.,該索引包含作為外鍵的所有相關性維度表的主鍵。
事實數據表中的“度量值”有兩中:一種是可以累計的度量值,另一種是非累計的度量值。用戶可以通過累計度量值獲得匯總信息。
?
維度表
用來描述事實表的某個重要方面,維度表中包含事實表中事實記錄的特性:有些特性提供描述性信息,有些特性指定如何匯總事實數據表數據,以便為分析者提供有用的信息,維度表包含幫助匯總數據的特性的層次結構
?
緩慢變化維:在實際情況下,維度的屬性并不是靜態的,它會隨著時間的流失發生緩慢的變化。
處理方法:?
1新信息直接覆蓋舊信息
2,保存多條記錄,并添加字段加以區分(用y,n;0,1,2或用時間來區別新舊記錄)
3.保存多條記錄,并添加字段加以區分
4.另外建表保存歷史記錄.
5混合模式
退化維
般來說事實表中的外鍵都對應一個維表,維的信息主要存放在維表中。但是退化維僅僅是事實表中的一列,這個維的相關信息都在這一列中,沒有維表與之相關聯。比如:發票號,序列號等等。
那么退化維有什么作用呢?
1、退化維具有普通維的各種操作,比如:上卷,切片,切塊等
(上卷匯總,下鉆明細;切片,切塊:對二維數據進行切片,三維數據進行切塊,,可得到所需要的數據)
2、如果存在退化維,那么在ETL的過程將會變得容易。
3、它可以讓group by等操作變得更快
粒度:(granularity)
是指數據倉庫的數據單位中保存數據的細化或綜合程度的級別,細化程度越高,粒度就越小。
?
鉆取:
首先從某一個匯總數據出發,查看組成該數據的各個成員數據。
?
KPI(Key Performance Indication)關鍵業績指標用來衡量業績好壞比如銷售這個主題,銷售增長率、銷售凈利潤就是一個KPI
?
E T L
extract/transformation/load尋找數據,整合數據,并將它們裝入數據倉庫的過程。
ETL是將業務系統的數據經過抽取、清洗轉換之后加載到數據倉庫的過程,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析的依據。
工作流 抽取à清洗,轉換à加載 數據流 業務系統àODSà數據倉庫
一.抽取
方法有三種:1.利用工具,例如datastage,informatic,OWB,DTS,SISS. 2,利用存儲過程. 3,前兩種工具結合.
抽取前的調研準備工作:1.弄清數據是從哪幾個業務系統中來,各個業務系統的數據庫服務器運行什么DBMS. 2.是否存在手工數據,手工數據量有多大。3.是否存在非結構化的數據。
抽取中的數據處理方法:
1. 業務系統服務器與DW的DBMS相同時,在DW數據倉庫服務器與原業條系統之間建立直接的鏈接關系就可以寫select語句直接訪問.
2. 業務系統服務器與DW的DBMS不同時,對不能建立直接鏈接的話,可以將源數據導入.txt文件,在導入ODS中,或通過程序接口來完成.
3. 對于文件類型數據源(.txt.xls)利用數據庫工程將這個數據導入指定的數據庫,如(oracle的SQL*LOADER,db2的import)
如何實現增量抽取
業務系統會記錄業務發生的時間,我們可以用來做增量的標志,每次抽取之前首先判斷ODS中記錄最大的時間,然后根據這個時間去業務系統取大于這個時間所有的記錄。
二.清洗與轉換
清洗
數據清洗的任務是過濾那些不符合要求的數據,將過濾的結果交給業務主管部門,確認是否過濾掉還是由業務單位修正之后再進行抽取。
清洗的數據種類: 1,不完整數據,2,錯誤數據,3重復的數據.
轉換
1.不一致數據轉換:編碼轉換(m,f;男女);字段轉換(balance,bal);度量單位的轉換(cm,m)
2.數據粒度的轉換;業務系統數據存儲非常明細的數據,而數據倉庫中數據是用分析的,不需要非常明細,會將業務系統數據按照數據倉庫粒度進行聚合.
3.商務規則的計算.不同企業有不同的業務規則,不同的數據指標,在ETL過程,將這些數據計算好之后存儲在數據倉庫中,供分析使用(比如KPI)
三.加載經過前兩步處理后的數據可直接加載入數據倉庫
?
用過什么ETL工具(informatica,ssis,owb,datastage),以及該工具簡單講述特點。
DataStage是一套專門對多種操作數據源的數據抽取、轉換和維護過程進行簡化和自動化,并將其輸入數據集市或數據倉庫目標數據庫的集成工具。
它有四個組件:Administrator:用來管理project和環境變量。Manager:用于job,表定義,的引導,引出。Designer:用來設計job。Direct:用運查看job運行日志。
?
星形模型與雪花模型的區別?
1.星星的中心是一個大的事實表,發散出來的是維度表,每一個維度表用一個PK-FK連接到事實表,維度表之間彼此并不關聯。一個事實表又包括一些度量值和維度。
2.雪花模型通過規范維度表來減少冗余度,也就是說,維度表數據已經被分組成一個個的表而不是使用一個大表。例如產品表被分成了產品大類和產品小類兩個表。盡管這樣做可以節省了空間,但是卻增加了維度表的數量和關聯的外鍵的個數。這就導致了更復雜的查詢并降低了數據庫的效率
?
維度建模(dimensional modeling):
是數據倉庫建設中的一種數據建模方法。按照事實表,維表來構建數據倉庫,數據集市。這種方法最被人廣泛知曉的名字就是星型模式(Star-schema)。
?
?
什么叫查找表,為什么使用替代鍵?(其實目的和上面一樣,從基礎表到緩慢維度表的過程中的一種實現途徑)
替代鍵(alternate key)可以是數據表內不作為主鍵的其他任何列,只要該鍵對該數據表唯一即可。換句話說,在唯一列內不允許出現數據重復的現象。
?
?
數據倉庫項目最重要或需要注意的是什么,以及如何處理?
數據質量,主要是數據源數據質量分析,數據清洗轉換,當然也可以定量分析
數據倉庫有兩個重要目的,一是數據集成,二是服務BI
數據準確性是數據倉庫的基本要求,而效率是項目事實的前提,數據質量、運行效率和擴展性是數據倉庫項目設計、實施高明與否的三大標志;
?
代理鍵:
在關系型數據庫設計中,是在當資料表中的候選鍵都不適合當主鍵時,例如資料太長,或是意義層面太多,就會用一個attribute來當代理主鍵,此主鍵可能是用流水號,來代替可辨識唯一值的主鍵
在數據倉庫領域有一個概念叫Surrogate key,中文一般翻譯為“代理關鍵字”。代理關鍵字一般是指維度表中使用順序分配的整數值作為主鍵,也稱為“代理鍵”。代理關鍵字用于維度表和事實表的連接。可以避免通過主鍵的值就可以了解一些業務信息。
----------------------------------------------------------------------------------------------------------------------
另一種來源:
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應用程序而優化的非格式化結構。
轉載于:https://blog.51cto.com/suexiukjung/1126200
總結
- 上一篇: Good Technology 产品特色
- 下一篇: OSPF 多进程实验(1)