什麼叫資料倉儲?
資料倉儲是一個面向主題的(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)可以是資料表內不作為主鍵的其他任何列,只要該鍵對該資料表唯一即可。換句話說,在唯一列內不允許出現資料重複的現象。
資料倉儲項目最重要或需要注意的是什麼,以及如何處理?
資料品質,主要是資料來源資料品質分析,資料清洗轉換,當然也可以定量分析
資料倉儲有兩個重要目的,一是Data Integration,二是服務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應用程式而最佳化的非格式化結構。