編輯指南:產(chǎn)品經(jīng)理這個(gè)職位有數(shù)據(jù)產(chǎn)品經(jīng)理、B端產(chǎn)品經(jīng)理等多個(gè)領(lǐng)域,每個(gè)領(lǐng)域的重點(diǎn)和工作內(nèi)容都不一樣。數(shù)據(jù)產(chǎn)品經(jīng)理不僅要具備現(xiàn)有PM必須具備的產(chǎn)品設(shè)計(jì)能力、項(xiàng)目管理能力等技術(shù),還必須具備數(shù)據(jù)技術(shù)。本文作者分享了數(shù)據(jù)產(chǎn)品經(jīng)理如何推進(jìn)數(shù)據(jù)倉庫的落地。讓我們一起看看。
如果放在十年前,數(shù)據(jù)倉庫的搭建毫無疑問完完全全是開發(fā)工程師的活,隨著業(yè)務(wù)的發(fā)展與細(xì)分,對(duì)產(chǎn)品經(jīng)理提出了更高的要求,特別是數(shù)據(jù)產(chǎn)品經(jīng)理崗位的出現(xiàn),產(chǎn)品經(jīng)理懂技術(shù)已經(jīng)是大勢所趨。
今天我們就來聊聊搭建數(shù)據(jù)倉庫都有哪些工作流程,以及數(shù)據(jù)產(chǎn)品經(jīng)理在各個(gè)流程中扮演的角色。
01 數(shù)據(jù)倉庫的重要性
1. 為什么要搭建數(shù)據(jù)倉庫
這個(gè)問題翻譯過來就是,數(shù)據(jù)倉庫能給我們帶來什么價(jià)值。
想象一下,有一天你需要分析一下某個(gè)地區(qū)哪種商品賣的最好,這時(shí)候是不是要通過層層審批,審批完成后開發(fā)在各個(gè)系統(tǒng)中通過接口導(dǎo)出數(shù)據(jù),估計(jì)這時(shí)候已經(jīng)過去了幾天時(shí)間,所以這個(gè)效率是非常低下的;而有了數(shù)據(jù)倉庫,我們就可以自助取數(shù)、分析。
數(shù)據(jù)倉庫起到的作用就是:匯總數(shù)據(jù)、整合數(shù)據(jù)、加工數(shù)據(jù)并最終輸出能力。
2. 數(shù)據(jù)產(chǎn)品為什么要懂?dāng)?shù)據(jù)倉庫
數(shù)據(jù)倉庫最終是要賦能的,而賦能則需要結(jié)合業(yè)務(wù),開發(fā)工程師往往不關(guān)心具體業(yè)務(wù),所以完全交給開發(fā)工程師開發(fā)出來的數(shù)據(jù)倉庫可能不能很好的支持業(yè)務(wù);這就需要數(shù)據(jù)產(chǎn)品經(jīng)理參與進(jìn)數(shù)據(jù)倉庫的開發(fā)中,而參與進(jìn)來就必須要懂?dāng)?shù)據(jù)倉庫。
02 構(gòu)建數(shù)據(jù)倉庫
數(shù)據(jù)倉庫的基本架構(gòu)如下圖:
1. 數(shù)倉需求分析
數(shù)據(jù)產(chǎn)品經(jīng)理在接到數(shù)據(jù)需求后,需要分析這個(gè)需求能不能實(shí)現(xiàn),怎么實(shí)現(xiàn),需要哪些資源;針對(duì)需求進(jìn)行統(tǒng)籌規(guī)劃,避免為了實(shí)現(xiàn)特定需求而開發(fā),盡量提供更豐富的數(shù)據(jù)以滿足不時(shí)之需。
2. 數(shù)據(jù)源梳理
數(shù)據(jù)源的梳理也是數(shù)據(jù)產(chǎn)品的一個(gè)工作,需要梳理出整個(gè)公司內(nèi)都有哪些數(shù)據(jù)源,并爭取到數(shù)據(jù)源對(duì)應(yīng)持有者的支持,了解數(shù)據(jù)源的格式以及含義。
常見的數(shù)據(jù)源有ERP系統(tǒng)、CRM系統(tǒng)、支付系統(tǒng)等等內(nèi)部系統(tǒng)數(shù)據(jù),以及產(chǎn)品埋點(diǎn)的行為數(shù)據(jù)數(shù)據(jù),也可能有一些外部的文檔數(shù)據(jù)。
3. 數(shù)據(jù)同步匯總
取得數(shù)據(jù)持有方的支持后,將各數(shù)據(jù)源同步到數(shù)據(jù)倉庫中的ODS層,該層和源數(shù)據(jù)是同構(gòu)的,即在ODS層將數(shù)據(jù)源的數(shù)據(jù)原封不動(dòng)的存儲(chǔ)起來,以便后續(xù)追溯數(shù)據(jù)問題;這一層數(shù)據(jù)粒度是最細(xì)的,而且這層的數(shù)據(jù)保存時(shí)間最久。
4. 數(shù)倉建模
數(shù)據(jù)倉庫的設(shè)計(jì)模式分兩種:自上而下、自下而上,兩種模式對(duì)應(yīng)的方法論分別是Inmon模式和Kimball模式。
1)Inmon模式
Inmon是一種自上向下的設(shè)計(jì)模式,即先構(gòu)建數(shù)據(jù)倉庫再從數(shù)據(jù)倉庫中衍生出數(shù)據(jù)市場。
數(shù)據(jù)倉庫的數(shù)據(jù)來源往往是異構(gòu)的,不同數(shù)據(jù)源對(duì)應(yīng)不同規(guī)則的數(shù)據(jù)清洗,必須先通過ETL將數(shù)據(jù)進(jìn)行處理才能放入數(shù)據(jù)倉庫層,再根據(jù)需要組合數(shù)據(jù)輸出到數(shù)據(jù)集市層。
Inmon是以數(shù)據(jù)源為導(dǎo)向,而數(shù)據(jù)源會(huì)經(jīng)常變化,所以相對(duì)于維度建模,實(shí)體建模更適合Inmon。
2)Kimball模式
Kimball 是一種自下向上的設(shè)計(jì)模式,即先構(gòu)建數(shù)據(jù)集市再匯總到數(shù)據(jù)倉庫再到數(shù)據(jù)源。
Kimball模式的數(shù)據(jù)源往往是已有的幾張表,數(shù)據(jù)源較為穩(wěn)定但表與表之間的關(guān)系仍待梳理。Kimball模式在得到數(shù)據(jù)后根據(jù)目標(biāo)先拆分出不同的表需求再通過ETL進(jìn)入到數(shù)據(jù)倉庫層,Kimball使用維度建模。
對(duì)比兩種模式可發(fā)現(xiàn),Inmon是規(guī)劃型而Kimball是享樂型,Inmon會(huì)提前規(guī)劃好,開發(fā)難度較大周期較長,但是一旦開發(fā)好后維護(hù)起來相對(duì)容易。
Kimball強(qiáng)調(diào)先滿足需求后續(xù)再規(guī)劃,所以Kimball能夠快速滿足需求,適合敏捷開發(fā),同時(shí)導(dǎo)致的問題是后期維度難度較大;在互聯(lián)網(wǎng)行業(yè)中需求往往是快速變化的,因此Inmon好不容易花大力氣實(shí)現(xiàn)的需求往往實(shí)現(xiàn)后已經(jīng)意義不大了;相反Kimball不考慮對(duì)數(shù)據(jù)倉庫架構(gòu)做過多復(fù)雜的設(shè)計(jì),看起來不規(guī)范但是用起來卻很實(shí)用,成了互聯(lián)網(wǎng)公司建模的主流模式。
5. ETL
ETL的工作將貫穿于整個(gè)數(shù)據(jù)倉庫的建立過程。
ETL是對(duì)數(shù)據(jù)的抽取、轉(zhuǎn)換、加載的簡稱;它是指將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)抽取出來,并將不同數(shù)據(jù)源的數(shù)據(jù)按規(guī)則進(jìn)行轉(zhuǎn)化和整合,最終加載到數(shù)據(jù)倉庫中。
在這一系列的操作中將會(huì)對(duì)元數(shù)據(jù)的數(shù)據(jù)格式,拼寫錯(cuò)誤,多余字段以及缺失值等進(jìn)行處理,將分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起,使數(shù)據(jù)達(dá)到允許加載到數(shù)據(jù)倉庫的標(biāo)準(zhǔn)。
6. 數(shù)據(jù)倉庫分層
存儲(chǔ)在ODS層的數(shù)據(jù)顯然是不能直接使用的,要經(jīng)過層層處理;如果一步到位計(jì)算出各類指標(biāo)將來業(yè)務(wù)變化的時(shí)候又要重頭開始開發(fā)一遍,因此數(shù)據(jù)倉庫分層是很有必要的。
數(shù)據(jù)倉庫分層主要有以下幾點(diǎn)好處:
- 支持復(fù)用:數(shù)據(jù)在每一層進(jìn)行特定的處理,保留了大量的中間層數(shù)據(jù),將來業(yè)務(wù)變更的時(shí)候可以從已有的中間層數(shù)據(jù)重新計(jì)算而不需要重頭再來,大大地減少了重復(fù)開發(fā);
- 便于管理使用:通過分層可以看到數(shù)據(jù)在整個(gè)倉庫中的流轉(zhuǎn),方便掌握數(shù)據(jù)的生命周期,每一層負(fù)責(zé)特定的職責(zé),便于使用者理解使用。
數(shù)據(jù)倉庫分層通常分為以下三層:DWD、DWM、DWS。每一層的功能如下:
1) 數(shù)據(jù)明細(xì)層:DWD(Data Warehouse Detail)
DWD層直接與ODS層接觸,ODS層的數(shù)據(jù)經(jīng)過ETL后流向該層,一般保持和ODS層一樣的數(shù)據(jù)粒度。
DWD層的主要工作有以下幾點(diǎn):
① 數(shù)據(jù)質(zhì)量保證
ODS層的異常值、缺失值等等數(shù)據(jù)問題在這一層中解決,視具體情況進(jìn)行數(shù)據(jù)矯正或者補(bǔ)充默認(rèn)值或者直接丟棄。
② 維度退化
在本層同時(shí)也要開始為后續(xù)的數(shù)據(jù)使用做準(zhǔn)備,之前維度建模的事實(shí)表和維度表后續(xù)使用的話需要進(jìn)行大量的事實(shí)表維度表關(guān)聯(lián),顯然效率是非常低下的;在DWD層將一些維度退化至事實(shí)表中以減少關(guān)聯(lián),即提前關(guān)聯(lián)好各維度以便后續(xù)使用。
③ 數(shù)據(jù)聚集
ODS層的數(shù)據(jù)來源各種各樣,有些數(shù)據(jù)屬于同一個(gè)主題的但是來源不同,因此存在于不同表之中,需要將不同來源但是屬于相同主題的數(shù)據(jù)匯總到同一張表之中。
2)數(shù)據(jù)中間層:DWM(Data WareHouse Middle)
DWM層的作用是進(jìn)行數(shù)據(jù)聚合,即計(jì)算出一些公共指標(biāo),生成一系列中間表,方便后續(xù)使用方直接取數(shù),本層的數(shù)據(jù)聚合保留較細(xì)的維度;這一層視具體業(yè)務(wù)而定,如果業(yè)務(wù)比較簡單可以不需要這一層。
3)數(shù)據(jù)服務(wù)層:DWS(Data WareHouse Servce)
DWS層即我們熟知的數(shù)據(jù)集市或者大寬表。本層將DWM層的指標(biāo)數(shù)據(jù)按主題進(jìn)行匯總,生成一些字段較多的大寬表,即將各個(gè)指標(biāo)都放在一張表中,方便使用方直接從表里面取數(shù)不需要進(jìn)行任何計(jì)算。
由于將各種指標(biāo)都合并到一張表中,DWS層的表不會(huì)太多,一張表包含了較多的業(yè)務(wù)內(nèi)容,多指標(biāo)的整合也注定了DWS層的數(shù)據(jù)表里面的維度不會(huì)太多,僅保留各指標(biāo)共有的常用的一些維度。
DWM層到DWS層的流動(dòng)示意圖如下:
7. 數(shù)據(jù)共享層
擁有了DWD、DWM、DWS三層數(shù)據(jù)后,是不是就可以滿足所有需求了呢?顯然是不可能的,有以下需求三層架構(gòu)就滿足不了:
① 通常情況下,大部分的數(shù)據(jù)需求可以從DWS層直接取數(shù),但是總會(huì)存在一些需求是DWS層支持不了的,這時(shí)候就需要將DWS層數(shù)據(jù)或者是從DWM、DWD數(shù)據(jù)進(jìn)行計(jì)算以滿足需求;
② 數(shù)據(jù)的使用我們講究實(shí)時(shí)性,三層數(shù)據(jù)通常存儲(chǔ)在一些比較廉價(jià)的存儲(chǔ)介質(zhì)上,如使用hive進(jìn)行存儲(chǔ),這顯然是不能滿足我們的分析查詢實(shí)時(shí)需求的,需要將有實(shí)時(shí)需求的數(shù)據(jù)加載到這一層中支持實(shí)時(shí)查詢獲取。
總而言之,數(shù)據(jù)共享層的作用就是支持三層架構(gòu)滿足不了的需求以及提高數(shù)據(jù)庫性能,對(duì)外提供統(tǒng)一服務(wù)。
8. 數(shù)據(jù)實(shí)時(shí)需求
三層架構(gòu)是無法支持實(shí)時(shí)計(jì)算需求的,因此需要有一個(gè)數(shù)據(jù)實(shí)時(shí)同步實(shí)時(shí)計(jì)算的架構(gòu),一般做法是數(shù)據(jù)源通過kafka實(shí)時(shí)同步至計(jì)算引擎,再由spark streaming或者flink等計(jì)算引擎計(jì)算出結(jié)果,儲(chǔ)存在高效查詢數(shù)據(jù)庫中,如hbase。
03 數(shù)據(jù)產(chǎn)品能力與職責(zé)
1. 職責(zé)
通過以上流程,我們可以知道數(shù)據(jù)產(chǎn)品在構(gòu)建數(shù)據(jù)倉庫中的主要工作有:
① 數(shù)據(jù)需求對(duì)接與分析評(píng)估。
② 數(shù)據(jù)源梳理,爭取到兄弟部門的配合,統(tǒng)一規(guī)劃數(shù)據(jù)的來源去向。
③ 數(shù)據(jù)建模,根據(jù)現(xiàn)有業(yè)務(wù)對(duì)數(shù)據(jù)進(jìn)行建模,用指標(biāo)與維度描述出業(yè)務(wù)流程,這一塊工作需要熟悉業(yè)務(wù),所以非產(chǎn)品莫屬,最終輸出的事實(shí)表與維度表不一定是具體落地的物理表,只需將需要的事實(shí)與維度交給開發(fā)即可,具體怎么落實(shí)體表由開發(fā)決定。
④ 確定數(shù)據(jù)處理邏輯,ODS層的數(shù)據(jù)同步到DWD層需要進(jìn)行ETL,對(duì)一些異常值或者缺失值需要怎么處理,需要數(shù)據(jù)產(chǎn)品經(jīng)理與業(yè)務(wù)方進(jìn)行協(xié)商再將處理邏輯同步給開發(fā)。
⑤ 數(shù)據(jù)庫三層架構(gòu)處理邏輯,哪些指標(biāo)需要在DWM層處理哪些指標(biāo)需要在DWS層處理以及每一層需要保留哪些維度,這些是開發(fā)不能確定的,需要數(shù)據(jù)產(chǎn)品根據(jù)業(yè)務(wù)方的使用需求進(jìn)行統(tǒng)一規(guī)劃,最終目標(biāo)是提高數(shù)據(jù)倉庫的易用性、豐富度以及擴(kuò)展性。
⑥ 整個(gè)處理流程以及以后的數(shù)據(jù)使用,需要數(shù)據(jù)產(chǎn)品保證數(shù)據(jù)質(zhì)量,數(shù)據(jù)質(zhì)量除了準(zhǔn)確性還需要保證實(shí)時(shí)性,不能幾天前的數(shù)據(jù)今天才進(jìn)入到數(shù)據(jù)倉庫中。
2. 能力
從數(shù)據(jù)產(chǎn)品的職責(zé)來看,我們不難看出構(gòu)建數(shù)據(jù)倉庫對(duì)于產(chǎn)品經(jīng)理最大的難點(diǎn)就是需要懂大數(shù)據(jù)技術(shù)以及數(shù)倉架構(gòu)規(guī)劃。
需要懂得構(gòu)建數(shù)倉架構(gòu),知道數(shù)據(jù)怎么在數(shù)倉中流通,以及了解每個(gè)地方可能使用到的技術(shù);常見的數(shù)據(jù)組件有Hive、Impala、Hbase、Hadoop、Spark、Flink、Redis、ES、Kafka、Sqoop等,做到了解每個(gè)組件是做什么的,有什么特點(diǎn),最好是能簡單使用。
本文由 @不語 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
1.《【dwd022】專題數(shù)據(jù)產(chǎn)品經(jīng)理如何推進(jìn)數(shù)據(jù)倉庫的落地》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【dwd022】專題數(shù)據(jù)產(chǎn)品經(jīng)理如何推進(jìn)數(shù)據(jù)倉庫的落地》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2529083.html