




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)導(dǎo)入與預(yù)處理-第六章構(gòu)建數(shù)據(jù)倉庫目錄010203數(shù)據(jù)倉庫介紹構(gòu)建維度表構(gòu)建事實(shí)表01數(shù)據(jù)倉庫介紹數(shù)據(jù)倉庫介紹階段1:數(shù)據(jù)倉庫概念數(shù)據(jù)庫的定義及特征數(shù)據(jù)倉庫和數(shù)據(jù)庫區(qū)別階段2:數(shù)據(jù)倉庫的重要組成數(shù)據(jù)倉庫事實(shí)表數(shù)據(jù)倉庫維度表數(shù)據(jù)倉庫的定義及特征 數(shù)據(jù)倉庫理論的創(chuàng)始人W.H.Inmon在其Building the Data Warehouse一書中,給出了數(shù)據(jù)倉庫的四個(gè)基本特征:面向主題,數(shù)據(jù)是集成的,數(shù)據(jù)是不可更新的,數(shù)據(jù)是隨時(shí)間不斷變化的。ETL工具數(shù)據(jù)倉庫數(shù)據(jù)庫數(shù)據(jù)文件其他 綜合數(shù)據(jù) 當(dāng)前數(shù)據(jù) 歷史數(shù)據(jù) 元數(shù)據(jù) 抽取、轉(zhuǎn)換、裝載統(tǒng)計(jì)分析機(jī)器學(xué)習(xí) 報(bào)表查詢應(yīng)用領(lǐng)域個(gè)性化推薦 數(shù)據(jù)庫和數(shù)據(jù)倉庫
2、區(qū)別數(shù)據(jù)庫: 主要處理基本的、日常的、實(shí)時(shí)性要求非常高的事務(wù)處理,例如在線購物。數(shù)據(jù)倉庫: 主要解決復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。數(shù)據(jù)項(xiàng)目數(shù)據(jù)庫數(shù)據(jù)倉庫數(shù)據(jù)范圍當(dāng)前狀態(tài)數(shù)據(jù)歷史的、完整的、反應(yīng)歷史變化數(shù)據(jù)變化支持頻繁的增、刪、改、查添加為主、無刪除、無變更的、反應(yīng)歷史變化應(yīng)用場(chǎng)景面向業(yè)務(wù)交易流程面向分析、支持戰(zhàn)略決策數(shù)據(jù)結(jié)構(gòu)高度結(jié)構(gòu)化、適合操作、計(jì)算簡單、適合分析設(shè)計(jì)理論遵照第一、二、三范式違反范式、適當(dāng)冗余處理量頻繁、小批次、高并發(fā)、低延遲非頻繁、大批量、高吞吐、有延遲響應(yīng)時(shí)間計(jì)時(shí)單位小,如秒計(jì)時(shí)單位多種多樣,分、小時(shí)、天、月等數(shù)據(jù)倉庫重要組成事實(shí)表主要存放各種業(yè)
3、務(wù)數(shù)據(jù)。事實(shí)數(shù)據(jù)表包含特定業(yè)務(wù)事件的數(shù)據(jù)。比如考試成績、圖書借閱、課程安排,這些都是實(shí)際發(fā)生的業(yè)務(wù)事件,都是事實(shí)表記錄的信息學(xué)生成績事實(shí)表高數(shù)成績英語成績毛概成績鄧論成績數(shù)據(jù)倉庫重要組成維度表主要存放基礎(chǔ)屬性。維度表是各種屬性的集合,是人們分析問題的角度。比如學(xué)生、時(shí)間、班級(jí)、學(xué)院、學(xué)校,這些都是不同的維度學(xué)生維時(shí)間維班級(jí)維課程維學(xué)生成績事實(shí)表時(shí)間ID學(xué)生ID課程ID班級(jí)ID考試成績02構(gòu)建維度表構(gòu)建維度表階段1:管理各種鍵業(yè)務(wù)鍵的管理代理鍵的管理階段2:維度表的加載階段3:緩慢變更維度星型模型雪花模型常見緩慢變化維表分類類型1緩慢變化維更新類型2緩慢變化維更新類型3緩慢變化維更新其他類型介紹
4、管理各種鍵 在構(gòu)建維度表中,主要涉及兩種鍵:1、業(yè)務(wù)鍵:來源于源系統(tǒng)的業(yè)務(wù)主鍵,是業(yè)務(wù)實(shí)體的唯一標(biāo)識(shí)。2、業(yè)務(wù)代理鍵:簡稱代理鍵,為了確定維度表中唯一的行而增加的鍵。 管理這兩種鍵,需要做如下工作: (1)確定業(yè)務(wù)主體對(duì)象,確保業(yè)務(wù)主鍵的唯一性。 (2)判斷當(dāng)前維度表是否存在該業(yè)務(wù)鍵,根據(jù)業(yè)務(wù)主鍵更新維表或者插入維表數(shù)據(jù)。 (3)為新插入的維表行數(shù)據(jù)生成新的代理鍵。管理各種鍵管理業(yè)務(wù)鍵 業(yè)務(wù)鍵的主要作用是區(qū)分業(yè)務(wù)實(shí)體,必須來源于源表。為方便進(jìn)行管理,業(yè)務(wù)鍵和代理鍵一起存儲(chǔ)在維度表中。業(yè)務(wù)鍵的管理要注意幾點(diǎn):1.確保業(yè)務(wù)鍵要唯一同一個(gè)業(yè)務(wù)主體不能有多個(gè)業(yè)務(wù)鍵,一個(gè)業(yè)務(wù)鍵也不能對(duì)應(yīng)多個(gè)業(yè)務(wù)主體。比
5、如一個(gè)學(xué)生不能有多個(gè)學(xué)號(hào),一個(gè)學(xué)號(hào)也不能對(duì)應(yīng)多個(gè)學(xué)生。2.業(yè)務(wù)主鍵合并處理 如果存在一個(gè)業(yè)務(wù)主體,存在多個(gè)業(yè)務(wù)主鍵,應(yīng)進(jìn)行合并處理,主要有兩種情況: (1)數(shù)據(jù)來源不同:業(yè)務(wù)鍵可能來源于多個(gè)源系統(tǒng),同一個(gè)業(yè)務(wù)主體在不同的源系統(tǒng)業(yè)務(wù)鍵可能不同,此種情況我們需要對(duì)業(yè)務(wù)主鍵進(jìn)行合并處理 (2)歷史遺留數(shù)據(jù):同一業(yè)務(wù)主體,存在新、舊業(yè)務(wù)主鍵同時(shí)存在的情況管理各種鍵管理代理鍵 最佳實(shí)踐表明,原則上,在維表中應(yīng)有代理鍵,一般用自動(dòng)生成無意義的整形數(shù)值做為代理鍵。項(xiàng)目中我們可以通過數(shù)據(jù)庫生成代理鍵,也可以通過etl 工具生成代理鍵。在kettle中用“增加序列”步驟生成代理鍵。增加序列”步驟控件提供了兩種方
6、式來生成序列:第一種,使用數(shù)據(jù)庫生成序列,取值范圍在數(shù)據(jù)庫的序列中定義,計(jì)數(shù)器超過最大值后從起始值重新開始。這種方法需要在數(shù)據(jù)庫中先定義一個(gè)序列,接著在增加序列”步驟中引用CREATE SEQUENCE seq_value INCREMENT BY 1 - 每次加幾個(gè) START WITH 1 - 從1開始計(jì)數(shù) NOMAXVALUE - 不設(shè)置最大值 NOCYCLE -一直累加,不循環(huán) CACHE 10;管理各種鍵管理代理鍵 第二種,使用轉(zhuǎn)換計(jì)數(shù)器生成序列,取值范圍在用戶界面直接定義,計(jì)數(shù)器超過最大值后從起始值重新開始。因這種方法每次重新運(yùn)行時(shí),會(huì)從初始值開始取數(shù),不能直接當(dāng)代理鍵使用,通常需
7、要進(jìn)行特殊處理。select max(id) from test_sequencesequence_valuemax(id)+sequence_value具體辦法1:管理各種鍵管理代理鍵 第二種,使用轉(zhuǎn)換計(jì)數(shù)器生成序列,取值范圍在用戶界面直接定義,計(jì)數(shù)器超過最大值后從起始值重新開始。因這種方法每次重新運(yùn)行時(shí),會(huì)從初始值開始取數(shù),不能直接當(dāng)代理鍵使用,通常需要進(jìn)行特殊處理。具體辦法2(1):(2):(3):維度表的加載維度的加載需要掌握一定的技巧,下面是兩個(gè)典型的場(chǎng)景:1.加載雪花維度表2.加載反正規(guī)化的星型維度表加載維表時(shí),要根據(jù)維表的特點(diǎn),選擇合適的加載順序。維度表的加載星型模型加載星型模型
8、的特點(diǎn): 在星型模型,顧名思義事實(shí)表和維表形成星型的樣式,即:以事實(shí)表為中心,外圍是若干張維度表,維表通過主鍵和事實(shí)表的外鍵關(guān)聯(lián)星型模型的加載辦法: 該模型中,每個(gè)維度表之間沒有依賴關(guān)系,加載不分先后順序。維度表的加載加載雪花模型雪花模型的特點(diǎn):雪花模型是在基于星型模型之上拓展來的,每一個(gè)維度可以再擴(kuò)散出更多的維度,根據(jù)維度的層級(jí)拆分成顆粒度不同的多張表雪花模型的加載辦法:雪花模型中,city和country、country和region 是N:1的關(guān)系,幾個(gè)層級(jí)間相互依賴,加載時(shí)需從頂向下加載,即: 按region country city 順序加載緩慢變更維度“緩慢變化維”,即: “ Sl
9、owly Changing Dimensions”,一般簡寫為SCD,是數(shù)據(jù)倉庫重要概念?!熬徛兓S”,顧名思義,即:維度信息會(huì)隨著時(shí)間的流失發(fā)生緩慢變化,因?yàn)楝F(xiàn)實(shí)中事物的屬性并不是不變的,它會(huì)隨著時(shí)間的變化而發(fā)生緩慢的變化。常見緩慢變化維主要有如下三種: 類型1: 業(yè)務(wù)主體數(shù)據(jù)發(fā)生變化時(shí),用當(dāng)前最新數(shù)據(jù)覆蓋舊數(shù)據(jù),只保留最 新版本數(shù)據(jù)。類型2:業(yè)務(wù)主體數(shù)據(jù)發(fā)生變化時(shí),用當(dāng)前最新數(shù)據(jù)生成新的數(shù)據(jù)行,保存多 個(gè)歷史版本。類型3:業(yè)務(wù)主體數(shù)據(jù)發(fā)生變化時(shí),用當(dāng)前最新數(shù)據(jù)生成新的記錄,并且在該行記錄中記錄上一個(gè)版本部分關(guān)鍵信息。緩慢變更維度類型1緩慢變化維更新特點(diǎn):直接覆蓋,不記錄歷史版本,只需要保
10、存當(dāng)前最新的記錄。如果字段有更新直接覆蓋,否則新增類型1緩慢變化維示意圖緩慢變更維度類型1緩慢變化維更新特點(diǎn):直接覆蓋,不記錄歷史版本,只需要保存當(dāng)前最新的記錄。如果字段有更新直接覆蓋,否則新增類型1緩慢變化維,kettle實(shí)現(xiàn)示意圖緩慢變更維度類型2緩慢變化維更新特點(diǎn):區(qū)分歷史,每次更新會(huì)生成新的記錄,通過這種方式保存了各個(gè)歷史版本,每個(gè)歷史版本有不同的代理鍵,但每個(gè)版本有相同的業(yè)務(wù)主鍵。類型2緩慢變化維示意圖緩慢變更維度類型2緩慢變化維更新特點(diǎn):區(qū)分歷史,每次更新會(huì)生成新的記錄,通過這種方式保存了各個(gè)歷史版本,每個(gè)歷史版本有不同的代理鍵,但每個(gè)版本有相同的業(yè)務(wù)主鍵。類型2緩慢變化維,ket
11、tle實(shí)現(xiàn)示意圖緩慢變更維度類型3緩慢變化維更新特點(diǎn):交替實(shí)體,保留部分上一個(gè)版,部分字段值.緩慢變更維度其他類型介紹特點(diǎn):混合多種維度,不同的字段采用不同的處理辦法緩慢變更維度其他類型介紹生成維度:有些維度,其中的值是可以預(yù)知的,比如時(shí)間、日期,數(shù)量固定,而且不做變更,可以一次性預(yù)先生成,避免多次加載。 緩慢變更維度其他類型介紹雜項(xiàng)維度: 這類維度表包含了很多類型、很多不相關(guān)的屬性,這些屬性對(duì)分析會(huì)有一些幫助,但還不能把這些維度進(jìn)行分類。這類雜項(xiàng)維度的組合非常多,不能提前確定,無法像生成維度一樣提前生成。實(shí)際開發(fā)中,一般用kettle的“聯(lián)合查詢/更新”步驟實(shí)現(xiàn),設(shè)置方法和“插入/更新”步驟
12、相似,但也不同,主要卻區(qū)別在于:“聯(lián)合查詢/更新”不分關(guān)鍵字段和查詢字段,“查詢”、“更新”字段合并在一起設(shè)置。 03構(gòu)建事實(shí)表構(gòu)建事實(shí)表階段1:批量加載批量加載背景批量加載辦法階段2:查找維度階段3:事實(shí)表的處理維護(hù)數(shù)據(jù)完整性查找維表代理鍵數(shù)據(jù)延遲處理常見事實(shí)表類型事務(wù)型事實(shí)表周期快照事實(shí)表累積快照事實(shí)表批量加載批量加載背景 事實(shí)表是業(yè)務(wù)數(shù)據(jù)的集合,其數(shù)據(jù)量大,往往有幾個(gè)GB、幾十個(gè)GB、幾個(gè)TB,某些行業(yè)甚至有幾個(gè)PB的數(shù)據(jù)。通常,在數(shù)據(jù)量不大的情況下,我們可以采用“表輸出”步驟實(shí)現(xiàn),但在數(shù)據(jù)量巨大的情況下,此方法是不適合的,原因在于:“表輸出”步驟,對(duì)數(shù)據(jù)庫操作是基于dml語句實(shí)現(xiàn)的,對(duì)
13、數(shù)據(jù)庫進(jìn)行dml操作會(huì)帶來兩個(gè)問題:1、執(zhí)行insert 、update、delete等操作時(shí),數(shù)據(jù)庫管理系統(tǒng)會(huì)往日志文件寫日志,dml語句操作的數(shù)據(jù)量越大,對(duì)應(yīng)的日志文件就越大。2、執(zhí)行insert 、update、delete等操作時(shí),數(shù)據(jù)庫管理系統(tǒng)會(huì)進(jìn)行約束性檢查,比如主鍵約束、外鍵約束、唯一性約束、檢查約束等。約束性檢查,是一項(xiàng)費(fèi)時(shí)的工作,通常比操作數(shù)據(jù)耗費(fèi)更多的時(shí)間。大量的寫日志和約束性檢查,會(huì)嚴(yán)重影響數(shù)據(jù)庫數(shù)據(jù)性能,顯然不適用于大量數(shù)據(jù)加載的情況批量加載批量加載辦法從數(shù)據(jù)源加載到數(shù)據(jù)倉庫,需要更快速、更高效的加載方法kettle批量加載控件原理:各數(shù)據(jù)廠家為解決批量加載問題,專門開
14、發(fā)了批量加載接口kettle為充分利用各個(gè)數(shù)據(jù)庫批量加載特性,專門提供了批量加載控件批量加載批量加載控件MySQL批量加載Oracle批量加載查找維度加載事實(shí)表時(shí),在維度表中正確地查找代理鍵,是我們工作的重要一環(huán)。1、正確維護(hù)數(shù)據(jù)完整性2、正確地查找維表代理鍵3、正確地處理數(shù)據(jù)延遲情況查找維度維護(hù)數(shù)據(jù)完整性維護(hù)數(shù)據(jù)完整性:參照完整性,這里指的是事實(shí)表和維度表之間建立的外鍵約束。在數(shù)據(jù)倉庫中,事實(shí)表的外鍵指向維度表的主鍵。有些設(shè)計(jì)者通過外鍵約束,來防止維度表的信息被誤刪的情況。其實(shí),在數(shù)據(jù)倉庫中外鍵約束不是必須的,如果存在外鍵約束,加載數(shù)據(jù)時(shí)每加載一條數(shù)據(jù),數(shù)據(jù)庫會(huì)逐條檢查是否違反約束,所以加載
15、速度會(huì)非常慢。如果有這種情況,通常加載事實(shí)表前先讓外鍵失效,加載完成后再恢復(fù)外鍵。查找維度獲取代理鍵獲取維度代理鍵:是構(gòu)建事實(shí)表最重要的環(huán)節(jié)之一。在kettle中,我們一般通過“數(shù)據(jù)庫查詢”步驟或“維度查詢/更新”步驟實(shí)現(xiàn)查找維度數(shù)據(jù)延遲處理 在數(shù)據(jù)加載中,正常的加載順序應(yīng)是:先加載維度表,接著加載事實(shí)表。但現(xiàn)實(shí)情況中,卻存在不少數(shù)據(jù)延遲的現(xiàn)象(1)事實(shí)表延遲事實(shí)表延遲,指交易數(shù)據(jù)發(fā)生后,未及時(shí)按約定時(shí)間傳送給ETL過程處理。辦法:結(jié)合維表開始時(shí)間、終止時(shí)間取對(duì)應(yīng)的代理鍵。(2)維度表延遲維度表延遲,指的是事實(shí)表處理完成,而維度表未處理完成。辦法:維度表加載完成才接著加載事實(shí)表。事實(shí)表的處理常
16、見事實(shí)表類型 常見的三種不同類型的事實(shí)表,主要有如下三種:1、事務(wù)型事實(shí)表:即“Transaction fact table”,是事務(wù)粒度的,以單個(gè)事務(wù)、單個(gè)事件為單位,每次事務(wù)作為事實(shí)表的1行數(shù)據(jù),如刷卡一次,會(huì)有一條刷卡記錄。2、周期快照事實(shí)表:即“Periodic snapshot fact table”,是時(shí)間周期粒度的,以固定時(shí)間周期為單位,每一個(gè)時(shí)間周期1行數(shù)據(jù),如每一天、每一個(gè)月的話費(fèi)支出。3、累積快照事實(shí)表:即“Accumulating snapshot fact table” ,當(dāng)新的事實(shí)到達(dá)后,更新事實(shí)表的里記錄。例如訂單處理過程,有多個(gè)日期:下單日期、發(fā)貨日期、簽收日期、退款日期等。在這個(gè)訂單的處理過程中,隨著訂單的狀態(tài)改變,事實(shí)表的相應(yīng)日期也在改變。事實(shí)表的處理事務(wù)型事實(shí)表 事務(wù)事實(shí)表記錄的是事務(wù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 墩身安全施工方案
- 永年冷庫施工方案
- 基礎(chǔ)回填土施工方案
- 化工廠施工方案
- 二零二五年度環(huán)保科技單位解除勞動(dòng)合同及綠色技術(shù)轉(zhuǎn)移協(xié)議
- 2025年度超市超市商品防損員勞動(dòng)合同范本
- 二零二五年度蘇州市全日制勞動(dòng)合同員工休息與休假規(guī)定合同
- 二零二五年度農(nóng)村土地占用與農(nóng)村文化傳承合同協(xié)議
- 二零二五年度婚姻忠誠保證協(xié)議:男方出軌責(zé)任書
- 二零二五年度個(gè)人車輛抵押汽車貸款合同續(xù)簽合同
- 2024年批次杭州市教育局所屬事業(yè)單位招聘筆試真題
- 2024年海東市第二人民醫(yī)院自主招聘專業(yè)技術(shù)人員考試真題
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫及答案一套
- 14 文言文二則 學(xué)弈 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語文六年級(jí)下冊(cè)統(tǒng)編版
- Unit 4 Eat Well(大單元教學(xué)設(shè)計(jì))2024-2025學(xué)年七年級(jí)英語下冊(cè)同步備課系列(人教版2024)
- 2024-2030年中國游戲直播行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 統(tǒng)編版小學(xué)語文六年級(jí)下冊(cè)第四單元《理想和信念》作業(yè)設(shè)計(jì)
- 2025年春季學(xué)期學(xué)校工作計(jì)劃及安排表
- 化驗(yàn)班組安全培訓(xùn)
- 英語-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 丹佛斯變頻器培訓(xùn)經(jīng)典課件
評(píng)論
0/150
提交評(píng)論