天天看點

資料倉庫面試資料(基本概念)

什麼叫資料倉庫?

資料倉庫是一個面向主題的(Subject Oriented)、內建的(Integrate)、相對穩定的(Non-Volatile)、反映曆史變化(Time Variant)的資料集合,它用于支援企業或組織的決策分析處理。

資料倉庫是為了便于多元分析和多角度展現而将資料按特定的模式進行存儲所建立起來的關系型資料庫,它的資料基于OLTP源系統。

首先,用于支援決策,面向分析型資料處理,它不同于企業現有的操作型資料庫;

其次,對多個異構的資料源有效內建,內建後按照主題進行了重組,并包含曆史資料,而且存放在資料倉庫中的資料一般不再修改

資料倉庫的基本架構是什麼?(資料源,ETL,data stage,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,中文一般翻譯為“代理關鍵字”。代理關鍵字一般是指次元表中使用順序配置設定的整數值作為主鍵,也稱為“代理鍵”。代理關鍵字用于次元表和事實表的連接配接。可以避免通過主鍵的值就可以了解一些業務資訊