柚子快報邀請碼778899分享:大數(shù)據(jù)開發(fā)-數(shù)據(jù)倉庫簡介
柚子快報邀請碼778899分享:大數(shù)據(jù)開發(fā)-數(shù)據(jù)倉庫簡介
文章目錄
什么是數(shù)據(jù)倉庫數(shù)據(jù)倉庫基礎(chǔ)知識數(shù)據(jù)倉庫的建模方式數(shù)據(jù)倉庫分層數(shù)據(jù)倉庫的命名規(guī)范典型數(shù)倉系統(tǒng)架構(gòu)
什么是數(shù)據(jù)倉庫
數(shù)據(jù)倉庫(Data Warehouse)是一個面向主題的、集成的、穩(wěn)定的且隨時間變化的數(shù)據(jù)集合,用于支持管理人員的決策
面向主題:類型或者分類的意思,比如說農(nóng)貿(mào)市場和超市,農(nóng)貿(mào)市場針對里面的一個商販,有蘿卜白菜以及水果,都放在一個攤位上;在超市蔬菜和水果是分開的,在蔬菜里面還會進(jìn)行細(xì)致的分類。農(nóng)貿(mào)市場是按照商販來分類的,而超市是按照商品也就是同一個主題來分類。集成:對于傳統(tǒng)的數(shù)據(jù)庫而言,一般數(shù)據(jù)庫之間是相互獨立的,而數(shù)據(jù)倉庫中的數(shù)據(jù)是在對原有分散的數(shù)據(jù)庫的數(shù)據(jù)抽取清洗的基礎(chǔ)上,經(jīng)過系統(tǒng)加工匯總整理得到的,必須消除原數(shù)據(jù)中的不一致性,保證數(shù)據(jù)倉庫內(nèi)的信息是關(guān)于整個企業(yè)的一致的全局信息穩(wěn)定:相對穩(wěn)定,傳統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)通常是實時更新的,用戶做不同的操作,數(shù)據(jù)會做不同的變化;數(shù)據(jù)倉庫主要供企業(yè)決策而指定的,所設(shè)計的數(shù)據(jù)操作主要是數(shù)據(jù)查詢,修改和刪除操作很少,像Hive根本就不支持,對于數(shù)據(jù)倉庫而言只需要定時的刷新和加載數(shù)據(jù)變化:反應(yīng)數(shù)據(jù)歷史的變化,傳統(tǒng)的數(shù)據(jù)庫主要關(guān)心當(dāng)前某一個時間段內(nèi)的數(shù)據(jù),數(shù)據(jù)倉庫通常包含歷史信息,包含某個數(shù)據(jù)從剛開始到現(xiàn)在的歷史信息,通過這些信息可以對企業(yè)的發(fā)展歷程和未來的趨勢作出一些分析和預(yù)測
數(shù)據(jù)倉庫的建設(shè)是以企業(yè)業(yè)務(wù)系統(tǒng)和大量業(yè)務(wù)數(shù)據(jù)的積累為基礎(chǔ)的,數(shù)據(jù)倉庫不是靜態(tài)的概念,只有把信息及時交給需要這些信息的使用者,供他們作出改善業(yè)務(wù)經(jīng)營的決策,才能發(fā)揮出最大的價值。把信息加以整理歸納重組,并及時提供給相應(yīng)的管理決策人員就是數(shù)據(jù)倉庫的一個根本任務(wù)!
數(shù)據(jù)倉庫基礎(chǔ)知識
事實表、維度表:事實表指保存了大量業(yè)務(wù)數(shù)據(jù)的表或者是保存用戶真實行為的表,比如銷售商品的時候產(chǎn)生的一些訂單數(shù)據(jù);維度表指的是一個對象的屬性或者特征(時間維度、地理區(qū)域維度、年齡維度等等)
數(shù)據(jù)庫三范式
? 第一范式:數(shù)據(jù)庫的每一列都是不可分割的原子數(shù)據(jù)項第二范式:在第一范式的基礎(chǔ)上,數(shù)據(jù)庫表中的每一列都和主鍵相關(guān),不能只和主鍵的某一部分相關(guān)(針對聯(lián)合主鍵而言)第三范式:要求在數(shù)據(jù)庫表中不包含已在其它表中包含的非主鍵字段
數(shù)據(jù)倉庫的建模方式
ER實體模型,這種模型就是滿足了數(shù)據(jù)庫第三范式的模型,是數(shù)據(jù)庫設(shè)計的一個理論基礎(chǔ),幾乎所有的OLTP系統(tǒng)設(shè)計都采用這種方式 維度建模模型:雪花模型、星型模型 Data Vault模型:是在ER模型上衍生而來的,初衷是有效的組織基礎(chǔ)數(shù)據(jù)層,能靈活、易擴展對業(yè)務(wù)的變化,同時強調(diào)歷史性,可追溯性和原子性 Anchor模型:設(shè)計高度擴展的模型,K-V結(jié)構(gòu)的模型
數(shù)據(jù)倉庫主要是采用維度建模模型:
星型模型
雪花模型(滿足第三范式)
兩種模型總結(jié):
冗余:雪花模型符合業(yè)務(wù)邏輯設(shè)計,采用第三范式設(shè)計,有效降低數(shù)據(jù)冗余;星型模型的維度表設(shè)計不符合第三范式,反規(guī)范化,維度表之間不會直接關(guān)聯(lián),犧牲部分存儲空間性能:雪花模型由于存在維度間的關(guān)聯(lián),采用第三范式降低冗余,通常在使用過程中,需要關(guān)聯(lián)更多的維度表,導(dǎo)致性能偏低;星型模型采用降維的操作將維度整合,以存儲空間為代價有效降低維度表的連接數(shù),性能相對較高
數(shù)據(jù)倉庫分層
為什么要分層
數(shù)據(jù)倉庫在構(gòu)建的過程當(dāng)中,通常都是需要分層處理,業(yè)務(wù)不同,分層的技術(shù)手段也是不同的,對數(shù)據(jù)進(jìn)行分層的主要原因是希望在管理數(shù)據(jù)的時候能對數(shù)據(jù)有更加清晰的掌控,主要有以下原因:
清晰的數(shù)據(jù)結(jié)構(gòu),每一個分層的數(shù)據(jù)都有它的作用域,如此,在使用表的時候能更加方便的定位和理解數(shù)據(jù)血緣關(guān)系的追蹤,我們最終給業(yè)務(wù)方呈現(xiàn)的是一個能夠直接使用的最終的一個業(yè)務(wù)表,但是這個業(yè)務(wù)表是由很多其它表計算出來的,如果有一張來源表出問題了,我們希望能夠快速準(zhǔn)備的定位到問題,并且清楚設(shè)計范圍,分層之后就可以很好的定位問題減少重復(fù)開發(fā),分層之后可以開發(fā)一些通用的中間層數(shù)據(jù),減少重復(fù)計算復(fù)雜問題簡單化,分層之后可以將一個復(fù)雜任務(wù)分解成多個步驟來完成,每一層值處理單一的步驟,也便于維護(hù)數(shù)據(jù)的準(zhǔn)確性屏蔽業(yè)務(wù)的影響,分層之后減少因為業(yè)務(wù)的改動而重新接入數(shù)據(jù)
數(shù)據(jù)倉庫的分層設(shè)計
基礎(chǔ)層:原始數(shù)據(jù),數(shù)據(jù)原樣保存 明細(xì)層:對基礎(chǔ)層進(jìn)行清洗,解決數(shù)據(jù)質(zhì)量以及完整性的問題 主題層:數(shù)據(jù)的匯總層,對明細(xì)層的數(shù)據(jù)進(jìn)行輕度聚合匯總,生成一系列的公共表。提升公共指標(biāo)的復(fù)用性 專題層:根據(jù)業(yè)務(wù)的需要,統(tǒng)計前三層的數(shù)據(jù),進(jìn)行業(yè)務(wù)展示,一般會把這層的數(shù)據(jù)導(dǎo)出到MYSQL中 ,供線上的系統(tǒng)查詢使用
在DWD層會進(jìn)行數(shù)據(jù)的清洗,數(shù)據(jù)清洗的原則:
數(shù)據(jù)的唯一性校驗數(shù)據(jù)的完整性校驗,采集的數(shù)據(jù)可能會缺失字段,針對缺失數(shù)據(jù)的數(shù)據(jù),建議直接丟掉;如果可以確定缺失是哪一列,也可以進(jìn)行補全,可以是默認(rèn)值,也可以拿前一條數(shù)據(jù)的列值數(shù)據(jù)合法性校驗:針對數(shù)字列里面出現(xiàn)的null或者-之類的異常值,把這些值全部替換為一個特殊的值(比如0,-1)
數(shù)據(jù)倉庫的命名規(guī)范
數(shù)據(jù)倉庫分為4層,我們可以讓它包含每一層的標(biāo)識符,比如針對ODS層我們可以在Hive中去創(chuàng)建一個數(shù)據(jù)庫,以ods_開頭跟具體的業(yè)務(wù)名稱,把同一層的這些表都放到這個數(shù)據(jù)庫里面,對應(yīng)四層就是四個數(shù)據(jù)庫。
ODS層命名為ods_DWD層命名為dwd_DWS層命名dws_ADS層命名為ads_臨時表命名為_temp備份表 _bak
典型數(shù)倉系統(tǒng)架構(gòu)
通過上圖可以看到,建立一個數(shù)倉需要這么幾個功能模塊:
數(shù)據(jù)采集平臺(采集各種數(shù)據(jù)源)構(gòu)建數(shù)據(jù)倉庫(數(shù)據(jù)的存儲和管理)數(shù)據(jù)報表(數(shù)據(jù)可視化)
柚子快報邀請碼778899分享:大數(shù)據(jù)開發(fā)-數(shù)據(jù)倉庫簡介
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。