十問(wèn)十答,帶你了解數(shù)據(jù)倉(cāng)庫(kù)
此篇內(nèi)容主要以數(shù)據(jù)倉(cāng)庫(kù)的介紹說(shuō)明為主,并展開(kāi)了10個(gè)基礎(chǔ)問(wèn)題與關(guān)鍵問(wèn)題的問(wèn)答分析。
寫(xiě)此篇的原因是因?yàn)殛P(guān)于數(shù)據(jù)倉(cāng)庫(kù)這方面的單個(gè)書(shū)籍翻譯不夠友好,書(shū)寫(xiě)結(jié)構(gòu)不夠清晰以及當(dāng)前現(xiàn)實(shí)環(huán)境的數(shù)據(jù)倉(cāng)庫(kù)搭建并非僅來(lái)自某個(gè)架構(gòu)思想。
同時(shí)單單看一本書(shū)很難對(duì)數(shù)據(jù)倉(cāng)庫(kù)方面的知識(shí)進(jìn)行全面的理解吸收。因此我想通過(guò)主動(dòng)提問(wèn)的方式從多本書(shū)籍結(jié)合自身經(jīng)驗(yàn)以及與數(shù)倉(cāng)專(zhuān)業(yè)人員的咨詢(xún)請(qǐng)教中獲取的知識(shí)進(jìn)行理解、思考,最終得出結(jié)論來(lái),并且一一回答數(shù)據(jù)倉(cāng)庫(kù)方面的知識(shí)內(nèi)容。
此篇內(nèi)容主要以數(shù)據(jù)倉(cāng)庫(kù)的介紹說(shuō)明為主。也可以理解為語(yǔ)文中的說(shuō)明文,幾乎不涉及具體數(shù)據(jù)倉(cāng)庫(kù)搭建的方法論和技術(shù)細(xì)節(jié)。并且本篇文章為數(shù)據(jù)倉(cāng)庫(kù)方面知識(shí)的一個(gè)開(kāi)始,后續(xù)遵循循序漸進(jìn),由淺入深的原則,對(duì)數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行深入了解和掌握。
此篇文章的撰寫(xiě)視角定位在對(duì)數(shù)據(jù)倉(cāng)庫(kù)客觀的描述和說(shuō)明,不涉及面向特定群體的說(shuō)服而展開(kāi)。
問(wèn)題一: 數(shù)據(jù)倉(cāng)庫(kù)是什么?
數(shù)據(jù)倉(cāng)庫(kù)是對(duì)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)進(jìn)行同步接入、歷史存儲(chǔ)、清洗加工、關(guān)聯(lián)打通、有效管理、分層建設(shè)、貼合需求;最終以提供滿(mǎn)足業(yè)務(wù)場(chǎng)景數(shù)據(jù)使用需求的一種數(shù)據(jù)庫(kù)。
參見(jiàn)數(shù)據(jù)倉(cāng)庫(kù)整個(gè)作業(yè)圖便可進(jìn)一步理解:
以下為每個(gè)環(huán)節(jié)的概述:
1. 同步接入
同步接入是指從各個(gè)業(yè)務(wù)系統(tǒng)抽取數(shù)據(jù)存入數(shù)倉(cāng)。
一般分為離線抽取和實(shí)時(shí)抽取。抽取的數(shù)據(jù)來(lái)自多個(gè)業(yè)務(wù)系統(tǒng)和多種數(shù)據(jù)類(lèi)型,關(guān)系型數(shù)據(jù)用sqoop來(lái)抽取,非關(guān)系型用kafka來(lái)抽取。
比如:一家金融公司的業(yè)務(wù)流程有 用戶(hù)注冊(cè)、貸款申請(qǐng)、風(fēng)控審核、放款、貸后還款、催收等,這些業(yè)務(wù)環(huán)節(jié)的事務(wù)會(huì)在不同的系統(tǒng)完成;催收有催收系統(tǒng),貸款申請(qǐng)有CRM系統(tǒng)等;這些圍繞業(yè)務(wù)主線,涉及用戶(hù),內(nèi)部員工,三方機(jī)構(gòu)從而產(chǎn)生的業(yè)務(wù)數(shù)據(jù),行為數(shù)據(jù)等都會(huì)通過(guò)每天定時(shí)或者實(shí)時(shí)存入數(shù)倉(cāng)系統(tǒng)。
2. 歷史存儲(chǔ)
歷史存儲(chǔ)是指數(shù)倉(cāng)會(huì)存儲(chǔ)公司內(nèi)所有保存的歷史數(shù)據(jù)(前提是數(shù)據(jù)有接入數(shù)倉(cāng)且之前有保存歷史),可方便商業(yè)分析應(yīng)用和其他業(yè)務(wù)訴求對(duì)歷史數(shù)據(jù)的洞察。
比如:電商的物流數(shù)據(jù),從下單到收貨期間的運(yùn)輸狀態(tài)可能每天都會(huì)不一樣,那么數(shù)倉(cāng)就會(huì)保存該訂單物流每天的狀態(tài)數(shù)據(jù)。
3. 清洗加工
清洗加工是指數(shù)倉(cāng)會(huì)通過(guò)ETL(抽取、轉(zhuǎn)換、加載)操作對(duì)業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)進(jìn)行清洗,根據(jù)數(shù)據(jù)使用的便捷,干凈,和業(yè)務(wù)訴求通過(guò)去重亂碼,填補(bǔ)空值,維度拆分,行列轉(zhuǎn)換等一系列操作。
比如:“地址”這個(gè)字段的值可能會(huì)拆分出多個(gè)維度來(lái),國(guó)家、省、市、區(qū)、路、小區(qū)等等。 “身份證號(hào)”可以拆分出 出生年、月、日、性別等。
4. 關(guān)聯(lián)打通
關(guān)聯(lián)打通是指圍繞業(yè)務(wù)主線及用戶(hù)唯一識(shí)別,將不同業(yè)務(wù)系統(tǒng)的數(shù)據(jù)進(jìn)行打通關(guān)聯(lián),將業(yè)務(wù)數(shù)據(jù)和行為數(shù)據(jù)進(jìn)行關(guān)聯(lián)打通;最終可形成完整的用戶(hù)生命周期數(shù)據(jù)鏈路追蹤。
5. 有效管理
有效管理是指對(duì)數(shù)據(jù)的在整個(gè)數(shù)倉(cāng)內(nèi)作業(yè)生命周期內(nèi)的管理,包括對(duì)元數(shù)據(jù)的管理,對(duì)數(shù)據(jù)本身的作業(yè)管理,對(duì)數(shù)據(jù)關(guān)聯(lián)角色人員的管理等。
比如:元數(shù)據(jù)管理這塊,因?yàn)闃I(yè)務(wù)開(kāi)發(fā)的人員流動(dòng),就會(huì)存在某些字段沒(méi)有注釋?zhuān)瑳](méi)有明確的釋義,當(dāng)人員離開(kāi)又加上需要了解該數(shù)據(jù)時(shí)就會(huì)遇到無(wú)人可問(wèn)的情況,需要耗費(fèi)較大的精力去想辦法了解。
6. 分層建設(shè)
分層建設(shè)是指對(duì)進(jìn)入數(shù)倉(cāng)的數(shù)據(jù)進(jìn)行層次劃分(ODS 操作數(shù)據(jù)層、DWD明細(xì)數(shù)據(jù)層、DWS匯總數(shù)據(jù)層、ADS應(yīng)用數(shù)據(jù)層),以滿(mǎn)足數(shù)據(jù)使用便捷,高效,不耦合、符合業(yè)務(wù)需求等問(wèn)題。(此處關(guān)于各個(gè)層次的細(xì)節(jié)介紹先不做說(shuō)明,因?yàn)椴辉谶@個(gè)問(wèn)題的討論范圍內(nèi))
7. 貼合需求
貼合需求是指所有的最終都需要業(yè)務(wù)化,為業(yè)務(wù)的分析決策,事務(wù)應(yīng)用提供支持,而并非僅僅數(shù)據(jù)資產(chǎn)化;那么這就需要了解業(yè)務(wù)的數(shù)據(jù)需求來(lái)進(jìn)行數(shù)據(jù)的加工開(kāi)發(fā),最終實(shí)現(xiàn)數(shù)據(jù)價(jià)值最大化。
問(wèn)題二:數(shù)據(jù)倉(cāng)庫(kù)解決什么問(wèn)題?
1. 數(shù)據(jù)打通提升數(shù)據(jù)價(jià)值
試想,現(xiàn)在某一電商產(chǎn)品做了一個(gè)版本迭代后,發(fā)現(xiàn)成交額有所下滑;目前知道成交額這種業(yè)務(wù)數(shù)據(jù)下滑,也知道都改了什么一系列功能,但并不清楚用戶(hù)是在哪個(gè)環(huán)節(jié)流失的,他們操作了什么?停留了多少時(shí)間? 是產(chǎn)品Bug還是用戶(hù)不會(huì)用?在這種場(chǎng)景下如果沒(méi)有行為數(shù)據(jù)做支撐,則很難定位到原因進(jìn)行精準(zhǔn)優(yōu)化。
再試想下,同樣是某一金融產(chǎn)品用戶(hù)張三,其在該金融產(chǎn)品APP申請(qǐng)了一筆貸款,又在該金融產(chǎn)品的三方合作入口申請(qǐng)了一筆貸款;按照規(guī)定是不能進(jìn)行單用戶(hù)兩筆貸款的,但因?yàn)橄到y(tǒng)數(shù)據(jù)沒(méi)有打通,導(dǎo)致這樣的風(fēng)險(xiǎn)問(wèn)題存在。同時(shí)不得不說(shuō)的是數(shù)據(jù)打通不是只有數(shù)據(jù)倉(cāng)庫(kù)可以解決,業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)交換也可以解決,只不過(guò)這種方式效率更低,更容易導(dǎo)致煙囪式開(kāi)發(fā)。
2. 數(shù)據(jù)分層和維度建模提升數(shù)據(jù)使用效率
先說(shuō)數(shù)據(jù)分層如何提升數(shù)據(jù)的使用效率;
如果我們不進(jìn)行數(shù)據(jù)分層(直接ODS或源系統(tǒng)?。┑那闆r下,在加工某一張報(bào)表,需要取一組數(shù)據(jù)的話,那么將會(huì)及其的復(fù)雜,繁瑣。取一組數(shù)據(jù)需要關(guān)聯(lián)N多表,并且還要了解清楚字段的意思,這種復(fù)雜的操作一般只能依賴(lài)BI開(kāi)發(fā),業(yè)務(wù)人員很難有能力提取,或者說(shuō)即使有能力,也沒(méi)有那些時(shí)間精力用來(lái)做這些事項(xiàng);
如果我們進(jìn)行數(shù)倉(cāng)分層(ODS/DWD/DWS/ADS)的情況下,在加工一張應(yīng)用層的表或者臨時(shí)取一組數(shù)的話,僅僅是對(duì)兩張報(bào)表進(jìn)行關(guān)聯(lián);幾乎不需要開(kāi)發(fā)進(jìn)行操作,直接在BI工具層即可實(shí)現(xiàn)。
用時(shí)間來(lái)量化衡量的話,沒(méi)有數(shù)倉(cāng)分層在對(duì)數(shù)據(jù)有所了解的情況下取數(shù)可能要1-2小時(shí),有數(shù)倉(cāng)分層分鐘級(jí)即可搞定。
以下圖為例,結(jié)合上邊的論述和下邊的圖片可視化效果,以此來(lái)感受不分層與分層的區(qū)別:
再說(shuō)維度建模提升數(shù)據(jù)使用效率;
?由于維度模型的設(shè)計(jì)簡(jiǎn)單,基本遵照星型模型的設(shè)計(jì)規(guī)范,而大多數(shù)關(guān)系數(shù)據(jù)庫(kù)的優(yōu)化器是為星型模型設(shè)計(jì)的,這樣就帶來(lái)了維度建模的數(shù)據(jù)查詢(xún)效率很高;此處待舉例說(shuō)明維度建模比雪花的能快多少;需要找開(kāi)發(fā)求證
?3. 降低運(yùn)營(yíng)成本
不搭建數(shù)倉(cāng)(前提是企業(yè)業(yè)務(wù)驗(yàn)證成功,進(jìn)入增長(zhǎng)期有搭建數(shù)倉(cāng)的必要)的情況下,數(shù)據(jù)報(bào)表的加工,臨時(shí)數(shù)據(jù)的提取,數(shù)據(jù)接口封裝對(duì)外輸出都是需要不斷的重復(fù)開(kāi)發(fā),并且耦合嚴(yán)重,這就導(dǎo)致了人力成本的上升;
比如: 數(shù)據(jù)報(bào)表的加工,每次類(lèi)似需求都需要涉及業(yè)務(wù)人員,BI開(kāi)發(fā),測(cè)試,產(chǎn)品等,產(chǎn)品需要了解業(yè)務(wù)的數(shù)據(jù)需求目的,使用的場(chǎng)景,產(chǎn)生的價(jià)值,衡量的指標(biāo)等針對(duì)這些問(wèn)題與業(yè)務(wù)展開(kāi)討論,開(kāi)發(fā)需要梳理數(shù)據(jù)來(lái)自哪些表,怎么取,怎么加工等。 一個(gè)報(bào)表的開(kāi)發(fā)隨便也要4個(gè)角色參與,7天+的工時(shí);
而這些在數(shù)倉(cāng)里可能只是根據(jù)業(yè)務(wù)通過(guò)BI進(jìn)行表關(guān)聯(lián)或者數(shù)倉(cāng)開(kāi)發(fā)根據(jù)業(yè)務(wù)應(yīng)用數(shù)據(jù)從匯總層大寬表進(jìn)行加工即可,人數(shù)縮減為2人參與,時(shí)間縮短為10分鐘至1天。
問(wèn)題三:數(shù)據(jù)倉(cāng)庫(kù)與業(yè)務(wù)源系統(tǒng)數(shù)據(jù)庫(kù)有什么區(qū)別?
數(shù)據(jù)倉(cāng)庫(kù)主要是面向分析決策與業(yè)務(wù)應(yīng)用支持的。
比如:從數(shù)據(jù)中分析用戶(hù)為什么流失,交易量為什么下降,近些天的交易趨勢(shì)是怎樣的;從而滿(mǎn)足分析性質(zhì)的需求
比如:講數(shù)倉(cāng)的數(shù)據(jù)推給CRM系統(tǒng)供客服進(jìn)行電話營(yíng)銷(xiāo)或者短信營(yíng)銷(xiāo);趣頭條那種根據(jù)用戶(hù)激勵(lì)模式,對(duì)用戶(hù)的關(guān)鍵數(shù)據(jù)進(jìn)行排名,展示等,也可從數(shù)倉(cāng)輸出原始數(shù)據(jù),業(yè)務(wù)端再根據(jù)業(yè)務(wù)規(guī)則進(jìn)行加工
源系統(tǒng)數(shù)據(jù)庫(kù)是面向事務(wù)處理的,針對(duì)具體的業(yè)務(wù)操作進(jìn)行數(shù)據(jù)的查詢(xún)修改。
比如:電商用戶(hù)選了一個(gè)衣服支付購(gòu)買(mǎi),那么訂單系統(tǒng)就會(huì)插入一條該訂單事務(wù)的數(shù)據(jù)。
更多區(qū)別如下所示:
?問(wèn)題四:數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)都有哪些?它們之間的區(qū)別、優(yōu)缺點(diǎn)、應(yīng)用場(chǎng)景都是什么?
1. 數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)目前主要分為
- 以Kimball集團(tuán)為代表的一致性維度的企業(yè)總線架構(gòu)
- 獨(dú)立數(shù)據(jù)集市架構(gòu)
- 以Inmon為代表的規(guī)范化建模Inmon架構(gòu)
2. 它們之間的主要區(qū)別
?Kimball?
采用自下而上的建設(shè)思路;先選擇業(yè)務(wù)主線需要使用的數(shù)據(jù),再向上獲取數(shù)據(jù),形成數(shù)據(jù)集市,最終數(shù)據(jù)集市的合集形成了數(shù)據(jù)倉(cāng)庫(kù)。
獨(dú)立數(shù)據(jù)集市
架構(gòu)不需要考慮企業(yè)級(jí)別的信息共享和集成,只是為了滿(mǎn)足部門(mén)的數(shù)據(jù)需求,針對(duì)部門(mén)的業(yè)務(wù)規(guī)則展開(kāi)的數(shù)據(jù)建設(shè);可以采用自上而下也可以采用自下而上。
?Inmon
采用自上而下的建設(shè)思路;先從源業(yè)務(wù)系統(tǒng)獲取數(shù)據(jù)進(jìn)入數(shù)倉(cāng),然后再抽象數(shù)據(jù)主題,劃分?jǐn)?shù)據(jù)的層次,數(shù)據(jù)集市被包含在內(nèi),最終呈現(xiàn)給業(yè)務(wù)使用;
具體如下圖所示:
3. 幾種架構(gòu)之間的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- Kimball:快速迭代,實(shí)施成本低,可快速響應(yīng)業(yè)務(wù)需求。?因?yàn)镵imball采用的思路是自下而上的建設(shè)方法,它首先選取重要的業(yè)務(wù)一個(gè)業(yè)務(wù)單元進(jìn)行切入,滿(mǎn)足部分業(yè)務(wù)需求,后期還可以與數(shù)據(jù)倉(cāng)庫(kù)其他數(shù)據(jù)進(jìn)行打通關(guān)聯(lián);比如: 金融業(yè)務(wù)現(xiàn)在最重要的是風(fēng)控環(huán)節(jié),風(fēng)控環(huán)節(jié)的數(shù)據(jù)應(yīng)用可以帶來(lái)很大的商業(yè)價(jià)值,那么就可以先切入風(fēng)控的去做,先隨后根據(jù)調(diào)研評(píng)估,切入申請(qǐng),貸后等環(huán)節(jié)。
- Inmon :系統(tǒng)性的滿(mǎn)足企業(yè)需求。?因?yàn)镮nmon采用的思路是自上而下的的建設(shè)方法,統(tǒng)一接入系統(tǒng)元數(shù)據(jù),統(tǒng)一根據(jù)業(yè)務(wù)部門(mén)需求建設(shè)數(shù)據(jù)集市;
- 數(shù)據(jù)集市 :快速響應(yīng)部門(mén)的數(shù)據(jù)需求。因?yàn)樗魂P(guān)注部門(mén)使用的數(shù)據(jù),無(wú)需考慮公司內(nèi)其他部門(mén),因此使用的數(shù)據(jù)表、人、需求都會(huì)少。所以相對(duì)能快速響應(yīng)。
缺點(diǎn):
- Kimball: 造成重復(fù)建設(shè),需求調(diào)研和滿(mǎn)足各個(gè)業(yè)務(wù)需求時(shí)比較困難。?主要問(wèn)題是根據(jù)某一環(huán)節(jié)的搭建,牽扯到對(duì)各個(gè)環(huán)節(jié)需求的調(diào)研,考慮多方的需求和真實(shí)能產(chǎn)生的價(jià)值。這里邊會(huì)有博弈和真實(shí)需求的挖掘是否到位的難點(diǎn)。
- Inmon :瀑布式建設(shè),前期時(shí)間、人力等投入大。?由于它的思路是從數(shù)據(jù)源頭進(jìn)行系統(tǒng)性的全面建設(shè),一次性接入所有數(shù)據(jù),打通所有數(shù)據(jù),建好所有模型,因此這樣的代價(jià)不言而喻。
- 數(shù)據(jù)集市:只能適用于單部門(mén),對(duì)公司是一種資源浪費(fèi),并且無(wú)法獲取到其他部門(mén)數(shù)據(jù),對(duì)自己業(yè)務(wù)補(bǔ)充也是一種缺失。?試想下公司有10個(gè)業(yè)務(wù)部門(mén)都各自搞一套數(shù)據(jù)集市,這樣造成多大的人力浪費(fèi)和其他資源浪費(fèi);在試想下自身可以拿到其他業(yè)務(wù)的數(shù)據(jù),重疊用戶(hù)可以對(duì)他們更全面的了解,非重疊用戶(hù)可以進(jìn)行拉新轉(zhuǎn)化。
應(yīng)用場(chǎng)景:
- Kimball:適用于企業(yè)高速成長(zhǎng),需要通過(guò)數(shù)據(jù)倉(cāng)庫(kù)減低成本,增強(qiáng)運(yùn)營(yíng)能力且內(nèi)部可以達(dá)成建設(shè)迭代優(yōu)先級(jí)共識(shí)的場(chǎng)景下。
- Inmon :適用于企業(yè)穩(wěn)定,業(yè)務(wù)模式比較固定的場(chǎng)景;比如: 銀行,政府機(jī)構(gòu)等。
- 數(shù)據(jù)集市:適用于企業(yè)內(nèi)部沒(méi)有達(dá)成共識(shí),戰(zhàn)略層面不關(guān)注數(shù)據(jù)打通的價(jià)值只需專(zhuān)注部門(mén)內(nèi)部作業(yè)或者業(yè)務(wù)早期需要快速高效的獲取數(shù)據(jù),還沒(méi)有建設(shè)數(shù)倉(cāng)的必要。
但,就如萬(wàn)事沒(méi)有非黑即白,非此即彼一樣;數(shù)倉(cāng)建設(shè)也不是一定要用Kimball還是Inmon ,兩者是可以相結(jié)合的。
問(wèn)題五:數(shù)據(jù)倉(cāng)庫(kù)搭建的整個(gè)流程是怎樣的?
參照下圖:
以下關(guān)于上述流程做簡(jiǎn)單說(shuō)明:(該流程主要參照Kimball的架構(gòu)思路)
1. 項(xiàng)目/項(xiàng)目群規(guī)劃
在公司有眾多業(yè)務(wù)領(lǐng)域的情況下,要搭建數(shù)倉(cāng)就需要在頂層確認(rèn)先切入哪個(gè)業(yè)務(wù)的優(yōu)先級(jí)選擇。 這個(gè)環(huán)節(jié)主要要針對(duì)業(yè)務(wù)高層關(guān)于他們的未來(lái)商業(yè)計(jì)劃,目前的度量業(yè)務(wù)變化的指標(biāo)以及確定數(shù)據(jù)建設(shè)對(duì)業(yè)務(wù)的影響價(jià)值進(jìn)行探討確定。
2. 業(yè)務(wù)需求調(diào)研
此環(huán)節(jié)主要是收集業(yè)務(wù)的數(shù)據(jù)需求,他們關(guān)注的業(yè)務(wù)過(guò)程,衡量指標(biāo)以及數(shù)據(jù)建設(shè)帶來(lái)的價(jià)值評(píng)估,以確定切入的具體業(yè)務(wù)環(huán)節(jié)。這個(gè)環(huán)節(jié)主要需要和具體的業(yè)務(wù)人員及業(yè)務(wù)小負(fù)責(zé)人進(jìn)行溝通,因?yàn)樗麄儗儆趫?zhí)行層面,他們對(duì)數(shù)據(jù)的應(yīng)用價(jià)值認(rèn)識(shí)比較透徹。
3. 技術(shù)架構(gòu)設(shè)計(jì)
根據(jù)需求的了解和數(shù)據(jù)量、類(lèi)型的了解技術(shù)需要評(píng)估所有采用的服務(wù)器配置、數(shù)據(jù)接入技術(shù)、ETL技術(shù)、OLAP技術(shù)等。以完成數(shù)據(jù)倉(cāng)庫(kù)建設(shè)做好準(zhǔn)備
4. 維度建模
維度建模是一種將數(shù)據(jù)結(jié)構(gòu)化的邏輯設(shè)計(jì)方法。 數(shù)據(jù)被分為維度(分類(lèi)型數(shù)據(jù),一般以文字為主)和度量(連續(xù)型一般為數(shù)值為主),這樣做能夠提供較快的查詢(xún)性能,以及對(duì)業(yè)務(wù)用戶(hù)比較直觀。
5. 物理設(shè)計(jì)
物理設(shè)計(jì)就是數(shù)據(jù)倉(cāng)庫(kù)的邏輯模型(即維度設(shè)計(jì))在物理系統(tǒng)中的實(shí)現(xiàn)模式。其中包括邏輯模型中各種實(shí)體表的具體化,比如:表的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,索引策略,存儲(chǔ)位置,存放分配等
6. ETL設(shè)計(jì)與開(kāi)發(fā)
此處主要的工作在于基于ETL 34 個(gè)子系統(tǒng)選擇或搭建,并且根據(jù)各個(gè)源系統(tǒng)的數(shù)據(jù)類(lèi)型、邏輯模型設(shè)計(jì),數(shù)據(jù)需求進(jìn)行ETL的設(shè)計(jì)。
7. 數(shù)據(jù)輸出
數(shù)據(jù)輸出是指數(shù)據(jù)對(duì)外的使用,當(dāng)前常見(jiàn)的前端使用一般為 BI分析系統(tǒng)、畫(huà)像系統(tǒng)、API接口等。
問(wèn)題六:數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)中臺(tái)有什么區(qū)別?
綠色高亮的為區(qū)別之處。根據(jù)Kimball 自身撰寫(xiě)的數(shù)據(jù)倉(cāng)庫(kù)書(shū)籍描述,他對(duì)數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用主要定義為BI;但根據(jù)當(dāng)前的現(xiàn)實(shí)場(chǎng)景的應(yīng)用來(lái)看,并不是數(shù)倉(cāng)只是用做報(bào)表,它已經(jīng)包含了畫(huà)像,輸出業(yè)務(wù)系統(tǒng)以及通過(guò)API網(wǎng)關(guān)的形式對(duì)外提供服務(wù)。比如:針對(duì)CRM營(yíng)銷(xiāo)系統(tǒng)需要的用戶(hù)信息可以從數(shù)倉(cāng)通過(guò)接口的形式進(jìn)行輸出。
因此,兩者之間在實(shí)際層面幾乎沒(méi)有什么區(qū)別;只是概念層面前者具有較高的戰(zhàn)略期望:
問(wèn)題七:數(shù)據(jù)倉(cāng)庫(kù)分層是什么?都包含哪些層次?不同層次之間的區(qū)別與關(guān)聯(lián)又是什么?
1. 模型分層是什么
數(shù)據(jù)倉(cāng)庫(kù)分層是通過(guò)對(duì)數(shù)據(jù)從無(wú)序到有序,從明細(xì)到匯總,從匯總到應(yīng)用的設(shè)計(jì)。 主要是為了提升數(shù)據(jù)使用效率,方便問(wèn)題定位,減少重復(fù)開(kāi)發(fā),統(tǒng)一數(shù)據(jù)口徑等問(wèn)題。
2. 包含哪些層次
- ODS層(Operational Data Store):數(shù)據(jù)運(yùn)營(yíng)層;把操作系統(tǒng)的數(shù)據(jù)直接抽取存放到數(shù)倉(cāng)系統(tǒng)中,基本不做什么加工;這樣方便后續(xù)數(shù)據(jù)問(wèn)題定位時(shí),可以找到源數(shù)據(jù)。
- DWD層(Data Warehouse Detail):數(shù)據(jù)明細(xì)層;該層的數(shù)據(jù)粒度與ODS層一致,都是原子級(jí)別的數(shù)據(jù)。 在基于維度建模方法的設(shè)計(jì)基礎(chǔ),講維度退化至事實(shí)表,方便數(shù)據(jù)使用的效率。
- DWM層(Data WareHouse Middle):數(shù)據(jù)中間層;該層的數(shù)據(jù)是基于DWD層的數(shù)據(jù)做輕度匯總,生成一系列公共指標(biāo),減少重復(fù)開(kāi)發(fā)。也可以理解為對(duì)關(guān)鍵維度進(jìn)行聚合。
- DWS層(Data WareHouse Servce):數(shù)據(jù)服務(wù)層;又稱(chēng)做數(shù)據(jù)集市或者大寬表,比如:用戶(hù)表、流量表、訂單表、發(fā)貨表等。一個(gè)表就會(huì)包含多個(gè)很多字段,涉及多個(gè)業(yè)務(wù)過(guò)程。
- ADS層:數(shù)據(jù)應(yīng)用層;該層的數(shù)據(jù)主要是基于業(yè)務(wù)的個(gè)性化需求生成的數(shù)據(jù)表;上邊幾個(gè)層次更多的是基于業(yè)務(wù)過(guò)程的加工和聚合,而ADS層更多的關(guān)注的實(shí)際業(yè)務(wù)部門(mén)需要關(guān)注的個(gè)性化數(shù)據(jù)表的使用。數(shù)據(jù)來(lái)源一般也都是來(lái)自DWS層的再次加工。
3. 區(qū)別與關(guān)聯(lián)主要為
ODS層沒(méi)有進(jìn)行ETL和維度建模結(jié)構(gòu)化,后續(xù)分層都進(jìn)行了這些操作;ODS和DWD是原子級(jí)數(shù)據(jù)而DWM和ADS是匯總數(shù)據(jù);ADS是基于業(yè)務(wù)部門(mén)的個(gè)性需求產(chǎn)生的數(shù)據(jù),而其他層是基于業(yè)務(wù)過(guò)程進(jìn)行處理和主題劃分。底層的數(shù)據(jù)支撐上層數(shù)據(jù)的建設(shè),每個(gè)層次之間相互關(guān)聯(lián),相互依賴(lài)。
參見(jiàn)下圖的數(shù)倉(cāng)分層:
問(wèn)題八:數(shù)據(jù)倉(cāng)庫(kù)分層都有什么價(jià)值?
1. 減少重復(fù)建設(shè),提升數(shù)據(jù)應(yīng)用效率
每個(gè)層次的粒度不同,需要新開(kāi)發(fā)一個(gè)應(yīng)用層的表直接根據(jù)現(xiàn)有的匯總層進(jìn)行抽取即可。避免了一些數(shù)據(jù)重復(fù)的通過(guò)底層數(shù)據(jù)進(jìn)行計(jì)算,浪費(fèi)人力成本、時(shí)間成本和服務(wù)器資源成本。
試想下,要開(kāi)發(fā)一個(gè)性化應(yīng)用層的表,如果只有ODS層,數(shù)據(jù)分散,涉及表多,口徑不一致,命名重復(fù)等問(wèn)題都存在,這樣開(kāi)發(fā)出一張應(yīng)用表,需要耗費(fèi)多少時(shí)間周期,并且還不一定準(zhǔn)確。 如果做了分層,直接通過(guò)匯總層根據(jù)需要進(jìn)行連接即可。
2. 方便數(shù)據(jù)血緣追蹤
當(dāng)有應(yīng)用層表的數(shù)據(jù)出現(xiàn)問(wèn)題時(shí),我們可以通過(guò)血緣追蹤快速定位到其關(guān)聯(lián)的表,因?yàn)閷哟谓Y(jié)構(gòu)清晰,所有很好追蹤到;如果沒(méi)有分層,則可能會(huì)想蜘蛛網(wǎng)一樣。
問(wèn)題九:數(shù)據(jù)倉(cāng)庫(kù)中的主題是什么?解決什么問(wèn)題?
數(shù)據(jù)倉(cāng)庫(kù)主題是從較高層次上對(duì)數(shù)倉(cāng)數(shù)據(jù)業(yè)務(wù)含義和需求的理解進(jìn)行歸類(lèi)抽象劃分的一種方式。最終會(huì)產(chǎn)生比如:訂單主題、用戶(hù)主題、營(yíng)銷(xiāo)主題、財(cái)務(wù)主題等。
舉個(gè)超市的例子: 超市一般都有劃分生鮮區(qū)、凍品區(qū)、食品區(qū)、糧油區(qū)、家電區(qū)、服飾區(qū)等,這些區(qū)域的分類(lèi)也是根據(jù)商品的特有屬性進(jìn)行的區(qū)分,當(dāng)我們有很明確的需求是要購(gòu)買(mǎi)電視機(jī),那么我們可以直接去家電區(qū),而不用去生鮮區(qū)之類(lèi)的;當(dāng)我們的需求是在家做一頓豐盛的晚飯,那么我們可能會(huì)去 生鮮區(qū)、凍品區(qū)、食品區(qū),但一定不用去服飾區(qū)。
反過(guò)來(lái)看數(shù)倉(cāng)也是一樣的,如果要看的是用戶(hù)數(shù)據(jù),直接拉用戶(hù)主題的就可以,如果要分析用戶(hù)的不同購(gòu)買(mǎi)時(shí)段的購(gòu)買(mǎi)情況及物流效率,那么數(shù)據(jù)加工時(shí)就可以很容易的確定出需要拉用戶(hù)主題、事件主題、訂單主題、物流主題的數(shù)據(jù)。
主要解決的問(wèn)題是對(duì)數(shù)據(jù)分門(mén)別類(lèi)的區(qū)分,方便業(yè)務(wù)使用數(shù)據(jù)以及方便數(shù)倉(cāng)根據(jù)數(shù)據(jù)需求進(jìn)行數(shù)據(jù)加工;
試想下,如果超市的東西放的亂七八糟的,家電區(qū)有食品,食品區(qū)與凍品等等,這樣當(dāng)我們要購(gòu)買(mǎi)目標(biāo)商品的時(shí)候要多麻煩;數(shù)倉(cāng)如果我們有一個(gè)數(shù)據(jù)需求,卻不知道數(shù)據(jù)都來(lái)自哪些表,并且會(huì)有很多表。這樣的會(huì)多麻煩,做不做主題的效率差可能至少是5倍。
主題在物理上存在的形態(tài)會(huì)出現(xiàn),數(shù)據(jù)耦合情況,具體如下所示:
問(wèn)題十:產(chǎn)品經(jīng)理在數(shù)倉(cāng)建設(shè)中能發(fā)揮什么作用?
首先回到數(shù)據(jù)倉(cāng)庫(kù)建設(shè)的整個(gè)生命周期流程:項(xiàng)目/項(xiàng)目群規(guī)劃—業(yè)務(wù)需求調(diào)研—技術(shù)架構(gòu)設(shè)計(jì)—維度建模—物理設(shè)計(jì)—ETL設(shè)計(jì)與開(kāi)發(fā)—數(shù)據(jù)輸出。
產(chǎn)品經(jīng)理發(fā)揮的作用也是圍繞這個(gè)生命周期展開(kāi)。主要為以下方面:
1. 項(xiàng)目/項(xiàng)目群規(guī)劃
這個(gè)環(huán)節(jié)產(chǎn)品經(jīng)理主要起到的作用是向上建設(shè)和立項(xiàng)調(diào)研。
數(shù)倉(cāng)建設(shè)畢竟是一個(gè)需要投入較多人力成本,資源成本和多方面資源協(xié)調(diào)的事情,不是一個(gè)小需求,即時(shí)需求了解不透徹,錯(cuò)了也無(wú)關(guān)緊要。 數(shù)倉(cāng)建設(shè)一旦確定要做,就標(biāo)志著自上而下的影響面很廣,那么就勢(shì)必需要對(duì)數(shù)倉(cāng)建設(shè)解決業(yè)務(wù)的問(wèn)題,投入的成本,產(chǎn)生的價(jià)值,具體量化的數(shù)據(jù)和未來(lái)的潛在價(jià)值等等做一個(gè)立項(xiàng)調(diào)研,以說(shuō)服領(lǐng)導(dǎo)層愿意投入資源進(jìn)行建設(shè),并且從戰(zhàn)略上推動(dòng)各個(gè)部門(mén)人員進(jìn)行支持,否則很難推動(dòng)建設(shè)。
比如: 我們輸出結(jié)論產(chǎn)生多少的人力成本節(jié)省,折合多少金額;提升了多少的數(shù)據(jù)使用效率,折合多少金額;預(yù)計(jì)帶來(lái)多少因數(shù)據(jù)打通而產(chǎn)生的增長(zhǎng)機(jī)會(huì),折合多少金額等。
2. 業(yè)務(wù)需求調(diào)研
這個(gè)環(huán)節(jié)產(chǎn)品經(jīng)理主要起到的作用是業(yè)務(wù)數(shù)據(jù)需求挖掘。
這個(gè)環(huán)節(jié)需要通過(guò)刨根問(wèn)底的方式深入業(yè)務(wù)了解他們的數(shù)據(jù)使用需求,關(guān)注的指標(biāo),數(shù)倉(cāng)建設(shè)預(yù)計(jì)產(chǎn)生的價(jià)值。通過(guò)對(duì)各個(gè)業(yè)務(wù)關(guān)于數(shù)據(jù)使用的需求強(qiáng)烈程度和價(jià)值大小,進(jìn)行綜合評(píng)估,選擇切入的業(yè)務(wù)環(huán)節(jié)順序,以便實(shí)現(xiàn)價(jià)值盡早體現(xiàn)。
3. 維度建模
這個(gè)環(huán)節(jié)產(chǎn)品經(jīng)理主要起到的作用是資源協(xié)調(diào)與推動(dòng)。
這個(gè)環(huán)節(jié)的主要事項(xiàng)是數(shù)倉(cāng)開(kāi)發(fā)需要了解清楚業(yè)務(wù),了解數(shù)據(jù)情況,字段釋義,表之間的依賴(lài)關(guān)系,以便進(jìn)行模型設(shè)計(jì)與主題劃分。 這里邊就存在著需要推動(dòng)多個(gè)部門(mén)的相關(guān)人員進(jìn)行配合協(xié)助,描述清楚業(yè)務(wù)的流程環(huán)節(jié),字段的意義,依賴(lài)的關(guān)系。 如此消耗資源的事情,就需要產(chǎn)品進(jìn)行協(xié)調(diào)推動(dòng)各方輸出信息給數(shù)倉(cāng)。此部分更多是項(xiàng)目經(jīng)理的工作。
4. ETL設(shè)計(jì)與開(kāi)發(fā)
這個(gè)環(huán)節(jié)產(chǎn)品經(jīng)理主要起到的作用是工具的搭建設(shè)計(jì)。
數(shù)倉(cāng)關(guān)聯(lián)的工具模塊至少包含:元數(shù)據(jù)管理,數(shù)據(jù)接入,數(shù)據(jù)調(diào)度;在往細(xì)的拆又有 數(shù)據(jù)地圖、數(shù)據(jù)血緣、數(shù)據(jù)預(yù)警、數(shù)據(jù)接入配置、可視化清洗的34個(gè)子系統(tǒng)等。 這些工具都是在幫助數(shù)倉(cāng)建設(shè)提升效率,減少錯(cuò)誤,方便管理等方面做努力。
5. 數(shù)據(jù)輸出
這個(gè)環(huán)節(jié)產(chǎn)品經(jīng)理主要起到的作用是業(yè)務(wù)應(yīng)用數(shù)據(jù)需求分析和API網(wǎng)關(guān)產(chǎn)品設(shè)計(jì)。
產(chǎn)品收集日常業(yè)務(wù)提的各種數(shù)據(jù)應(yīng)用需求,通過(guò)匯總抽象反饋至數(shù)倉(cāng)用來(lái)完善ADS層;在業(yè)務(wù)系統(tǒng)需要使用的數(shù)據(jù)設(shè)計(jì)公共的API網(wǎng)關(guān)產(chǎn)品用來(lái)提供服務(wù),避免數(shù)據(jù)重復(fù)輸出,嚴(yán)重耦合帶來(lái)效率問(wèn)題。
總體來(lái)說(shuō),產(chǎn)品在數(shù)倉(cāng)搭建的事情當(dāng)中,一部分屬于項(xiàng)目經(jīng)理,比如維度建模過(guò)程中的多資源協(xié)調(diào)推動(dòng)與項(xiàng)目推動(dòng);一部分屬于產(chǎn)品經(jīng)理,比如立項(xiàng)調(diào)研,管理工具設(shè)計(jì)規(guī)劃等。
本文由 @兩個(gè) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
作者寫(xiě)的真通俗易懂,點(diǎn)贊~請(qǐng)問(wèn)筆者方便私聊么
??