數(shù)倉規(guī)劃是數(shù)倉建設的藍圖,涵蓋從需求分析開始到最終的數(shù)倉評估驗收整個環(huán)境;數(shù)倉規(guī)劃之所以重要,是因為它是描述了數(shù)據(jù)流動的概念性框架,為元數(shù)據(jù)管理奠定了基礎,對數(shù)據(jù)加工過程的理解、數(shù)倉建設的交流分享、數(shù)據(jù)的使用和問題排查、數(shù)倉健康度的評估都提供了極大的幫助。
需要強調的是本文是從宏觀上描述數(shù)倉的框架,具體到數(shù)據(jù)模型的細節(jié)對比、存儲選型和管理、接入數(shù)據(jù)源管理等數(shù)倉建設的周邊在本節(jié)不涉及。通過本文的閱讀,你將了解到以下知識:
從業(yè)務矩陣的設計(宏觀、微觀)、橫向的分層、縱向的分線到主題劃分等角度解構數(shù)倉
數(shù)倉建設的實施流程
1數(shù)據(jù)倉庫規(guī)劃
矩陣
分宏觀和微觀來看,宏觀的是公司的整體業(yè)務布局,微觀的是產(chǎn)品的業(yè)務過程布局和業(yè)務過程的維度分解交叉信息。
宏觀矩陣
宏觀矩陣描述的是公司的業(yè)務線和對應的數(shù)據(jù)狀況,其行和列一般分別對應著業(yè)務主題和數(shù)據(jù)主題。
業(yè)務主題對應著公司的業(yè)務線布局,比如電商、游戲、視頻、應用商店、新聞資訊、瀏覽器等
數(shù)據(jù)主題根據(jù)抽象的程度和視角有不同的取法:
一般取業(yè)務線中用戶對內容的消費或者相關行為,比如曝光、點擊、消費、播放、分享等,對這些行為的劃分又可分為原生行為主題(通用和業(yè)務相關)、衍生行為主題(留存、活躍、流失等),這種劃分方法更多的取自數(shù)據(jù)的底層和公共層,因為高層的數(shù)據(jù)都是多行為的匯總。
對數(shù)據(jù)主題的另外劃分方式參加分主題部分,這種劃分方法更多的取自數(shù)據(jù)的高層
引自《數(shù)據(jù)倉庫實踐之業(yè)務數(shù)據(jù)矩陣的設計-木東居士》
微觀矩陣
微觀矩陣描述的是主題和對應的維度關系,下面以常見的內容消費和用戶主題兩個維度來看微觀矩陣的規(guī)劃
-w698
業(yè)務過程描述的一般是對內容的消費抽象,可以是原子的,也可以是抽象的,比如卡片曝光維度的劃分可以從以下兩個大方向入手:
通用標識維度(版本、機型、渠道、網(wǎng)絡、時間等)
業(yè)務過程維度:消費者等級、消費位置、消費路徑、其它等
分層
ODS->DW->DM->DA(ADS)層是如何劃分的?
清晰數(shù)據(jù)結構:每一個數(shù)據(jù)分層都有它的作用域和職責,在使用表的時候能更方便地定位和理解
減少重復開發(fā):規(guī)范數(shù)據(jù)分層,開發(fā)一些通用的中間層數(shù)據(jù),能夠減少極大的重復計算
統(tǒng)一數(shù)據(jù)口徑:通過數(shù)據(jù)分層,提供統(tǒng)一的數(shù)據(jù)出口,統(tǒng)一對外輸出的數(shù)據(jù)口徑
復雜問題簡單化:將一個復雜的任務分解成多個步驟來完成,每一層解決特定的問題
層劃分
一個完整數(shù)倉分層演示圖如下:
一個典型的數(shù)倉分層樣例:
-w730
分層依據(jù)
分層的依據(jù)在ods、da、dim層一般無歧義,關鍵在dw層的分層依據(jù),也是數(shù)據(jù)倉庫分層建設的核心。
每層劃分的依據(jù)如下:
ods層:存放原始數(shù)據(jù)信息,原則上不進行任何的數(shù)據(jù)清晰,和數(shù)據(jù)源保持一致。
dw層:數(shù)據(jù)公共層,是數(shù)倉建設的重點,一般是日志子表和一些寬表,主要完成數(shù)據(jù)的清洗、轉換等
dm層:數(shù)據(jù)集市層,是最直接體系數(shù)據(jù)資產(chǎn)的層,一般是匯總數(shù)據(jù),現(xiàn)在已經(jīng)逐步弱化,面向挖掘、數(shù)據(jù)分析等
da層:數(shù)據(jù)應用層,高度匯總數(shù)據(jù),主要用于報表展示。
分線
分線也分宏觀和微觀,宏觀的是整體的業(yè)務線,比如應用分發(fā)線、商業(yè)智能線、游戲運營線、廣告流量線等;微觀的是某個app或者某個具體的線,本節(jié)介紹的是app的數(shù)據(jù)線。分線和分主題有很多相似的地方,只是看待數(shù)據(jù)的角度不同,分主題是從數(shù)據(jù)內容分類和對外服務的角度看,類似商品分類;而分線是從數(shù)據(jù)生產(chǎn)加工過程的角度來看,類似業(yè)務生產(chǎn)流水線。
用戶主線
反映整個app的用戶規(guī)模,比如整個app的活躍、累積活躍、新增、留存、回流、流失。
用戶群線
滿足某些行為的用戶群的追蹤,目的是為了進行個性化的運營等活動,該線的升華擴展是用戶畫像。
內容消費
提供的消費實體的曝光、點擊、生成、轉化等,以及內容的累積消費、消費排行等都屬于內容線。
狀態(tài)線
一般會作為輔線存在,相當于維表的存在,狀態(tài)線一般又分為以下幾種:
1.天表全量用戶狀態(tài),會加入一些修正,以及基于天全量的累積表的快照全量用戶信息維表;
2.開關操作狀態(tài)線。記錄開關狀態(tài)變更記錄,得到當前用戶的開關狀態(tài)快照,是多態(tài)記錄的一種特殊情況;
3.添加刪除狀態(tài)線。記錄用戶的添加刪除等操作,得到當前用戶操作結果的保有快照;
4.其它,比如登錄狀態(tài)、用戶等級等。
商業(yè)化線
商業(yè)化線相關的與收入相關的,比如cp合作、廣告位、推廣位、訂單、會員充值等;
需要說明的是本系列的數(shù)倉的主要介紹的是流量型產(chǎn)品形態(tài)、更多的是關注用戶規(guī)模,所以主線是是關于用戶的,而對于其它的產(chǎn)品形態(tài),比如購物類、充值消費類的則主線可能是商業(yè)化線等。此外作為用戶流量型產(chǎn)品,還隱藏著另外一個更加常用的線:自查線,每個主題的自查明細表,基于event_id或者參數(shù)的展開,但是沒有參數(shù)值的組合過濾。(自查線這個似乎沒有必要)
下圖是一張數(shù)倉的分線演示圖,每個框是一張表,不同顏色的框串聯(lián)成各自的數(shù)倉線。
分主題
在進行分矩陣設計的時候牽涉到分行和列的業(yè)務主題,此處詳細介紹下數(shù)據(jù)主題的設計,本部分的設計是從高層次上的。
主題劃分的一些依據(jù):業(yè)務過程(或子過程,比如訂單)、ER中的E(或者R,比如商品主題)、數(shù)據(jù)服務的對象(運營主題)、數(shù)據(jù)的用途(比如商業(yè));分主題也即數(shù)據(jù)集市,根據(jù)業(yè)務形態(tài)的不同,會衍生出不同的主題,但以下主題在app中廣泛存在:
用戶主題(也即大盤:新增活躍、留存)
內容主題(具體提供的服務形式,也可以理解為產(chǎn)品主題,含曝光、點擊、分享等用戶消費傳播行為)
運營主題(可能合并到某個內容主題上,比如活動、通知、彈窗、授權、分享等)
商業(yè)化主題(廣告、訂單等通常用于結算)
技術主題(故障率、崩潰率、準確率等衡量技術指標)
備注:
社交主題可以合并到內容主題也可以合并到運營主題,需要視app的具體特性和重視程度確定
數(shù)倉的分主題主要體現(xiàn)在數(shù)據(jù)集市層,而數(shù)據(jù)集市層可能會因為使用比如kylin等多維分析工具被弱化。
用戶主題
用戶主題是產(chǎn)品的盤子,就像家店鋪,多少人使用就像多少顧客。基于用戶主題的常見統(tǒng)計有整體的新增、活躍、累積活躍、新增留存、活躍留存等大盤數(shù)據(jù),以及對某些關鍵行為的用戶的后續(xù)追蹤,還有某些核心過程的PUV、轉化漏斗等。
內容主題
內容主題是盤子里東西的消費狀況,就像提供的菜單,每個菜被多少人點了。基于內容主題的常見統(tǒng)計有針對內容(文章、視頻、商品等)的各種消費行為(曝光、點擊、購買、下載等)的次數(shù)、人數(shù)、時長、金額等按不同維度的度量統(tǒng)計。常見的維度拆分有時間拆分、地域拆分、位置(人貨場模型中的場)拆分、畫像拆分、渠道拆分等,對度量的統(tǒng)計又有累積、非累積、TopN等。
運營主題
廣告、促銷、活動等一切由于運營活動相關本身的數(shù)據(jù)統(tǒng)計,以及運營活動對其它主題數(shù)據(jù)的影響衡量。
營收主題
營收的來源主要分為以下幾種:
流量廣告
商務合作
優(yōu)惠券
充值消費
會員充值
訂單、打賞等
流量廣告的數(shù)據(jù)主要產(chǎn)生于用戶行為,而充值消費的數(shù)據(jù)主要來自業(yè)務庫相關。
以上四個主題是在常見應用上通用的主題,其它的主題比如技術主題,在某些有明顯的技術指標對比的產(chǎn)品上會占主要的地位,比如文字識別類應用的識別準確率、搜索類產(chǎn)品的搜索滿意度、語音智能助理類的會話完成率等。這些產(chǎn)品上技術指標和用戶的體驗密切相關,是產(chǎn)品未來發(fā)展重要的參考方向,因此會強化出來做數(shù)據(jù)主題。另外如引流類或者與其他app有頻繁的引流拉起等應用的數(shù)據(jù)體系建設上,也會單獨拿出跳轉對接數(shù)據(jù)做主題分析。總之,主題的劃分并不是確定不變的,需要根據(jù)業(yè)務的具體形態(tài)和重點度量的指標等進行建設。
以上的矩陣、分層、分線、分主題的規(guī)劃只是從不同的角度來看數(shù)據(jù)框架,本質都是對數(shù)據(jù)流圖的一種拆解,差異在拆解的數(shù)據(jù)視角。
2數(shù)據(jù)倉庫實施
需求分析
了解業(yè)務過程,每個業(yè)務過程的參與實體和各實體可能的分析維度等信息; 了解數(shù)據(jù)源組成,有哪些數(shù)據(jù)源、數(shù)據(jù)的更新周期;預構建指標體系,了解指標的分類,分析維度、時效性要求;了解可能的擴展需求,比如畫像寬表。需求分析階段是建立數(shù)倉的概念模型,明白數(shù)倉要支持的大致需求,雖然數(shù)倉建設并不要完全滿足業(yè)務需求,在建設的過程中肯定要有取舍,但第一步進行需求分析能保證在數(shù)倉建設過程中不致于偏離目標太多,避免建設爛尾或者好看不好用的繡花枕頭
指標體系
此部分會另外開專題介紹,指標體系一般分為三類:
用戶增長體系
流量體系
營收體系
每個體系內分析數(shù)據(jù)的維度、更新周期等。指標體系的建立是需求分析環(huán)節(jié)需要重點完成的一步。
模型選擇
模型選擇環(huán)節(jié)要根據(jù)需求分析階段的結論,在ER模型、維度建模等基本的建模思想中選擇一種建模思想,比如說選擇了維度建模,要進一步根據(jù)需求分析中相關的業(yè)務過程和維度視角,在星型模型、雪花模型、星座模型中選擇一種模式。這個過程要充分的結合業(yè)務的實際狀況、開發(fā)人力和成本、各模型的優(yōu)缺點等因素進行綜合分析,是關系到建模是否成功的關鍵環(huán)節(jié)。需要說明的是,在快速迭代的互聯(lián)網(wǎng)行業(yè),業(yè)務規(guī)則可能經(jīng)常變化,而對于不同粒度水平進行度量和監(jiān)控,進而快速響應的需求卻基本保持不變,比如層級的時間粒度(年、月、周、日、小時)、層級的地理粒度(大區(qū)、省、市、區(qū)縣、商圈)以及基于產(chǎn)品自身屬性的層級粒度(大類、子類)。基于這種特性,互聯(lián)網(wǎng)行業(yè)中廣泛采用維度建模的思想,同時為了使用的方便,又以星型模型和雪花模型較多。
標準規(guī)劃
標準規(guī)劃是對數(shù)倉建設過程各階段中涉及的對象、屬性、關系、鍵、交付物等進行規(guī)范定義,同時制定標準落地方式或者檢查的方式。比如表命名規(guī)范、字段命名規(guī)范、任務命名規(guī)范、調度依賴規(guī)范、代碼開發(fā)規(guī)范等。需求強調的是,這一步看似無關緊要,也往往直接被忽略跳過,但好的標準規(guī)劃能為建設高質量數(shù)倉的保駕護航,對數(shù)倉質量、健康度的保持都大有裨益。
開發(fā)部署
包含表設計、代碼開發(fā)、調度開發(fā)和告警開發(fā)等
事實表和維表設計
維表設計
代碼開發(fā)
流程、審核機制、回退機制
調度開發(fā)
依賴任務的配置
回跑機制
任務權限管理
告警開發(fā):
數(shù)據(jù)量異常,某些細分維度、字段值、計算指標異常的告警措施
任務失敗、等待超時、執(zhí)行超時、上下線、上游重跑等告警措施
開發(fā)部署階段完成了數(shù)倉建設的邏輯模型和物理模型設計階段,是數(shù)倉建設的主要工作內容。
評估驗收
對應的問題包含在相關問題介紹部分,需要進一步思考數(shù)倉開發(fā)的交付物是什么。
數(shù)據(jù)字典
指標口徑的定義
核心表和其用途
數(shù)據(jù)流圖和重要指標的出口
業(yè)務變動對數(shù)倉的影響,比如某些手工維護的維表需要根據(jù)業(yè)務變動進行相應的更新
3總結
本篇從業(yè)務矩陣、分層、分線和分主題等方面對數(shù)倉的規(guī)劃做了簡要的描述。這些方面的差異只在于剖析數(shù)倉的角度,其目的是一致的,即為了清晰地梳理數(shù)據(jù)體系、洞察數(shù)據(jù)狀態(tài)、以及更好地規(guī)劃未來數(shù)據(jù)地圖,從而更好的服務于各個業(yè)務需求方(BI報表、數(shù)據(jù)分析、用戶畫像等);本節(jié)最后簡要的介紹了數(shù)倉開發(fā)的基本流程。
我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!