
本篇文章將以數(shù)據(jù)產(chǎn)品的角度來(lái)看數(shù)據(jù)采集后數(shù)據(jù)流的處理過(guò)程;并講解一丟丟偏技術(shù)、但與數(shù)據(jù)產(chǎn)品產(chǎn)出息息相關(guān)的數(shù)據(jù)倉(cāng)庫(kù)。
一. 數(shù)據(jù)處理過(guò)程
數(shù)據(jù)產(chǎn)品經(jīng)理的工作中一大部分都是將不可估測(cè)的數(shù)據(jù)轉(zhuǎn)化為可見(jiàn)的報(bào)表、有結(jié)論意義的分析報(bào)告——也就是將數(shù)據(jù)從各種異構(gòu)的數(shù)據(jù)源中、匯總,最終展示為報(bào)表、儀表盤、動(dòng)態(tài)數(shù)據(jù)分析查詢、結(jié)論性的分析報(bào)告等等。
1. 有哪些異構(gòu)數(shù)據(jù)源呢?
服務(wù)端、客戶端用戶行為日志用戶的歷史信息,定性信息(e.g.性別,職業(yè)的用戶畫像數(shù)據(jù)),定量信息(e.g.近30天的某個(gè)興趣傾向程度)第三方等獲取的信息,e.g.爬蟲數(shù)據(jù)、人工整理的數(shù)據(jù)等等
2. 這信息大都需要二次加工、清洗,生成結(jié)構(gòu)化的數(shù)據(jù)
臟數(shù)據(jù)的清洗、整合,e.g.延遲數(shù)據(jù)的按照發(fā)生日歸納;生成基礎(chǔ)性的表,以提高數(shù)據(jù)的易用性,e.g.用戶基礎(chǔ)數(shù)據(jù)、行為數(shù)據(jù)的基礎(chǔ)表;生成可以直接應(yīng)用于報(bào)表、分析的用戶&行為結(jié)構(gòu)化業(yè)務(wù)應(yīng)用表;
輕描淡寫的2個(gè)步驟,卻是影響報(bào)表展示、分析結(jié)論的關(guān)鍵點(diǎn),也是數(shù)據(jù)產(chǎn)品經(jīng)理最需要細(xì)心處理的地方。
二. 數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)
數(shù)據(jù)處理過(guò)程往往比較模糊,但“異構(gòu)數(shù)據(jù)源->結(jié)構(gòu)化的數(shù)據(jù)表->報(bào)表/分析報(bào)告”的過(guò)程中,我們常見(jiàn)的各種數(shù)據(jù)庫(kù)表就是數(shù)據(jù)倉(cāng)庫(kù)的實(shí)體,如常見(jiàn)的hive,spark,Oracle等。那在數(shù)據(jù)產(chǎn)品經(jīng)理日常數(shù)據(jù)處理中應(yīng)該注意哪些數(shù)據(jù)倉(cāng)庫(kù)知識(shí)點(diǎn)呢?
為什么要做分層呢?
更清晰的管理、追蹤數(shù)據(jù)(清洗的數(shù)據(jù)結(jié)構(gòu)、明確的血緣關(guān)系):有助于我們?nèi)ゲ檎覕?shù)據(jù)處理的整條鏈路;通過(guò)建立通用的中間表,減少重復(fù)計(jì)算:一張通用的中間表,能夠有效提供能夠直接貢獻(xiàn)于下游業(yè)務(wù)數(shù)據(jù)表,以避免每次都從原數(shù)據(jù)中產(chǎn)出業(yè)務(wù)數(shù)據(jù)表;清晰的數(shù)據(jù)倉(cāng)庫(kù)分層,將能夠有助于我們分解數(shù)據(jù)處理過(guò)程:將復(fù)雜的數(shù)據(jù)->業(yè)務(wù)應(yīng)用,拆解成多個(gè)步驟,每一層只處理單一的步驟;
數(shù)據(jù)分層具體是指?每一層應(yīng)該注意什么呢?
操作數(shù)據(jù)層(ODS,Operational Data Store):該層級(jí)的數(shù)據(jù),最接近數(shù)據(jù)源的原始面貌(內(nèi)容和粒度與原始數(shù)據(jù)一致),通常是數(shù)據(jù)源直接經(jīng)過(guò)ETL后,存儲(chǔ)于此。從原始數(shù)據(jù)到ODS層,不建議做復(fù)雜的數(shù)據(jù)清洗,以免破壞原始數(shù)據(jù),引起不必要的排查成本。
建議僅進(jìn)行——
將json記錄的日志,映射到各字段中;作弊數(shù)據(jù)的清洗;數(shù)據(jù)轉(zhuǎn)碼:將編碼映射成具有真實(shí)含義的值數(shù)據(jù)標(biāo)準(zhǔn)化,e.g.把所有的日期都格式化成YYYY-MM-DD的格式;異常值修復(fù),e.g.視頻播放表:(包含用戶id、視頻id、播主、播放時(shí)間等)。
如果一個(gè)表劃分為ODS層,那么一定要確認(rèn)是否將原數(shù)據(jù)的有意義字段均清洗過(guò)來(lái)。
明細(xì)數(shù)據(jù)層(DWD,Data Warehouse Detail):對(duì)ODS層做一些業(yè)務(wù)層面的數(shù)據(jù)清洗和規(guī)范化的操作,e.g.用戶播放視頻的日志級(jí)表;
如果一個(gè)表劃分為DWD層,是否清晰、明確的記錄了業(yè)務(wù)層面的明細(xì)數(shù)據(jù)?
匯總數(shù)據(jù)層(DWS, Data Warehouse Summary):依據(jù)業(yè)務(wù)需求對(duì)ODS/DWD層的數(shù)據(jù)進(jìn)行了匯總,e.g.帶有用戶畫像信息的播放視頻;
如果是DWS層的表,是否能夠有效、便利的服務(wù)于業(yè)務(wù)方向統(tǒng)計(jì)需求?
應(yīng)用數(shù)據(jù)層(ADS,Application Data Store):業(yè)務(wù)需要進(jìn)行的統(tǒng)計(jì)數(shù)據(jù)結(jié)果,e.g.各類型用戶的視頻播放統(tǒng)計(jì)。
如果是ADS層的表,是否能夠得到業(yè)務(wù)需要的統(tǒng)計(jì)數(shù)據(jù)?
維度表(DIM):存放基礎(chǔ)信息,如用戶屬性表-性別、年齡等等。
如果是DIM層的表,是否全面記錄了后續(xù)分析或統(tǒng)計(jì)需要用的各個(gè)維度?
除了固定為分層外,當(dāng)然還有臨時(shí)表(TEM)。
阿里/華為的數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)分級(jí):操作數(shù)據(jù)層(ODS)、明細(xì)數(shù)據(jù)層(DWD)、匯總數(shù)據(jù)層(DWS)和應(yīng)用數(shù)據(jù)層(ADS),維度表(DIM); 操作數(shù)據(jù)層、明細(xì)數(shù)據(jù)層、匯總數(shù)據(jù)層都是公共數(shù)據(jù)層。
此外,涉及表時(shí),需要充分考慮這張表后續(xù)是哪個(gè)角色的同學(xué)使用,表是否足夠易用?是否內(nèi)容冗余?是否安全?
業(yè)務(wù)線的同學(xué)是否能夠通過(guò)幾條簡(jiǎn)單的SQL語(yǔ)句,拿到數(shù)據(jù)結(jié)果?可以通過(guò)單張表格統(tǒng)計(jì)到數(shù)據(jù)還是需要多表關(guān)聯(lián)獲???單張表是不是內(nèi)容冗余,是否會(huì)影響查詢效率?多表關(guān)聯(lián)時(shí),是否會(huì)有業(yè)務(wù)理解上的坑,e.g.多表間的字段是一對(duì)一,一對(duì)多,還是多對(duì)多,如何讓使用者清晰的理解?表中是否涉及敏感的字段,比如金額等,使用群體是否有足夠的權(quán)限獲取這些信息?
元數(shù)據(jù)及應(yīng)用也是數(shù)據(jù)倉(cāng)庫(kù)的重要組成部分,它是描述數(shù)據(jù)的數(shù)據(jù)(data about data),描述數(shù)據(jù)的屬性信息,可以幫助我們非常方便地找到他們所關(guān)心的數(shù)據(jù)。
元數(shù)據(jù)記錄了哪些信息?
數(shù)據(jù)的表結(jié)構(gòu):字段信息、分區(qū)信息、索引信息等;數(shù)據(jù)的使用&權(quán)限:空間存儲(chǔ)、讀寫記錄、修改記錄、權(quán)限歸屬、審核記錄等其他信息;數(shù)據(jù)的血緣關(guān)系信息:血緣信息簡(jiǎn)單的說(shuō)就是數(shù)據(jù)的上下游關(guān)系,數(shù)據(jù)從哪里來(lái)到哪里去?我們通過(guò)血緣關(guān)系,可以了解到建立起生產(chǎn)這些數(shù)據(jù)的任務(wù)之間的依賴關(guān)系,進(jìn)而輔助調(diào)度系統(tǒng)的工作調(diào)度,或者用來(lái)判斷一個(gè)失敗或錯(cuò)誤的任務(wù)可能對(duì)哪些下游數(shù)據(jù)造成影響等等;而在數(shù)據(jù)排查過(guò)程中也可以幫助我們定位問(wèn)題。數(shù)據(jù)的業(yè)務(wù)屬性信息:記錄這張表的業(yè)務(wù)用途,各個(gè)字段的具體統(tǒng)計(jì)口徑、業(yè)務(wù)描述、歷史變遷記錄、變遷原因等。這部分?jǐn)?shù)據(jù)多是我們手動(dòng)填寫,但卻能大大提升數(shù)據(jù)使用過(guò)程中的便利性。
3. 離線數(shù)據(jù)倉(cāng)庫(kù)&實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)
此外,根據(jù)數(shù)據(jù)實(shí)時(shí)性,數(shù)據(jù)倉(cāng)庫(kù)可以分為離線數(shù)據(jù)倉(cāng)庫(kù)、實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)。
離線數(shù)據(jù)倉(cāng)庫(kù)主要記錄t-1以上的數(shù)據(jù),以天、周、月數(shù)據(jù)計(jì)算為主;實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)是隨著人們對(duì)實(shí)時(shí)數(shù)據(jù)展示、分析、算法的需求而出現(xiàn)的。
4. 總結(jié)
數(shù)據(jù)處理過(guò)程是數(shù)據(jù)產(chǎn)品經(jīng)理 產(chǎn)出報(bào)表、分析報(bào)告耗時(shí)最久的部分,了解數(shù)據(jù)倉(cāng)庫(kù)的概念&關(guān)鍵點(diǎn),有助于我們清晰、有效的處理數(shù)據(jù),提高工作效率,將更多的時(shí)間用于業(yè)務(wù)洞察。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實(shí)踐的落地者與價(jià)值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價(jià)值,最終要在 “實(shí)踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場(chǎng)景的分 ...
2025-09-10