新聞中心
一、馬蜂窩數(shù)據(jù)倉庫與數(shù)據(jù)中臺

成都創(chuàng)新互聯(lián)公司專注于拉薩網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供拉薩營銷型網(wǎng)站建設,拉薩網(wǎng)站制作、拉薩網(wǎng)頁設計、拉薩網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務,打造拉薩網(wǎng)絡公司原創(chuàng)品牌,更為您提供拉薩網(wǎng)站排名全網(wǎng)營銷落地服務。
最近幾年,數(shù)據(jù)中臺概念的熱度一直不減。2018 年起,馬蜂窩也開始了自己的數(shù)據(jù)中臺探索之路。
數(shù)據(jù)中臺到底是什么?要不要建?和數(shù)據(jù)倉庫有什么本質的區(qū)別?相信很多企業(yè)都在關注這些問題。
我認為數(shù)據(jù)中臺的概念非常接近傳統(tǒng)數(shù)據(jù)倉庫+大數(shù)據(jù)平臺的結合體。它是在企業(yè)的數(shù)據(jù)建設經(jīng)歷了數(shù)據(jù)中心、數(shù)據(jù)倉庫等積累之后,借助平臺化的思路,將數(shù)據(jù)更好地進行整合與統(tǒng)一。
所以,數(shù)據(jù)中臺更多的是體現(xiàn)一種管理思路和架構組織上的變革。在這樣的思想下,我們結合自身業(yè)務特點建設了馬蜂窩的數(shù)據(jù)中臺,核心架構如下:
在中臺建設之前,馬蜂窩已經(jīng)建立了自己的大數(shù)據(jù)平臺,并積累了一些通用、組件化的工具,這些可以支撐數(shù)據(jù)中臺的快速搭建。作為中臺的另一大核心部分,馬蜂窩數(shù)據(jù)倉庫主要承擔數(shù)據(jù)統(tǒng)一化建設的工作,包括統(tǒng)一數(shù)據(jù)模型,統(tǒng)一指標體系等。下面介紹馬蜂窩在數(shù)據(jù)倉庫建設方面的具體實踐。
二、數(shù)據(jù)倉庫核心架構
馬蜂窩數(shù)據(jù)倉庫遵循標準的三層架構,對數(shù)據(jù)分層的定位主要采取維度模型設計,不會對數(shù)據(jù)進行抽象打散處理,更多注重業(yè)務過程數(shù)據(jù)整合?,F(xiàn)有數(shù)倉主要以離線為主,整體架構如下:
如圖所示,共分為 3 層:業(yè)務數(shù)據(jù)層、公共數(shù)據(jù)層與應用數(shù)據(jù)層,每層定位、目標以及建設原則各不相同。
三、數(shù)據(jù)模型設計
3.1 方法選擇
數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象,數(shù)據(jù)模型的設計方法就是對數(shù)據(jù)進行歸納和概括的方法。目前業(yè)界主要的模型設計方法論有兩種,一是數(shù)據(jù)倉庫之父 Bill Inmon 提出的范式建模方法,又叫 ER 建模,主張站在企業(yè)角度自上而下進行數(shù)據(jù)模型構建;二是 Ralph Kimball 大師倡導的維度建模方法,主張從業(yè)務需求出發(fā)自下而上構建數(shù)據(jù)模型。
大數(shù)據(jù)環(huán)境下,業(yè)務系統(tǒng)數(shù)據(jù)體系龐雜,數(shù)據(jù)結構多樣、變更頻繁,并且需要快速響應各種復雜的業(yè)務需求,以上兩種傳統(tǒng)的理論都已無法滿足互聯(lián)網(wǎng)數(shù)倉需求。
在此背景下,馬蜂窩數(shù)據(jù)倉庫采取了「以需求驅動為主、數(shù)據(jù)驅動為輔」的混合模型設計方式,來根據(jù)不同的數(shù)據(jù)層次選擇模型。
3.2 設計流程
馬蜂窩數(shù)倉模型設計的整體流程涉及需求調研、模型設計、開發(fā)測試、模型上線四個主要環(huán)節(jié),且規(guī)范設計了每個階段的輸出與輸入文檔。
3.3 主題分類
基于對目前各個部門和業(yè)務系統(tǒng)的梳理,馬蜂窩數(shù)據(jù)倉庫共設計了 4 個大數(shù)據(jù)域(交易、流量、內容、參與人),細分為 11 個主題:
以馬蜂窩訂單交易模型的建設為例,基于業(yè)務生產(chǎn)總線的設計是常見的模式,即首先調研訂單交易的完整過程,定位過程中的關鍵節(jié)點,確認各節(jié)點上發(fā)生的核心事實信息。模型是數(shù)據(jù)的載體,我們要做的就是通過模型(或者說模型體系)歸納生產(chǎn)總線中各個節(jié)點發(fā)生的事實信息。
訂單生產(chǎn)總線:
如上圖所示,我們需要提煉各節(jié)點的核心信息,為了避免遺漏關鍵信息,一般情況下抽象認為節(jié)點的參與人、發(fā)生時間、發(fā)生事件、發(fā)生協(xié)議屬于節(jié)點的核心信息,需要重點獲取。以下單節(jié)點為例,參與人包括下單用戶、服務商家、平臺運營人員等;發(fā)生時間包括用戶的下單時間、商家的確認時間等;發(fā)生的事件即用戶購買了商品,需要記錄圍繞這一事件產(chǎn)生的相關信息;發(fā)生協(xié)議即產(chǎn)生的訂單,訂單金額、約定內容等都是我們需要記錄的協(xié)議信息。
在這樣的思路下,總線架構可以在模型中不斷添加各個節(jié)點的核心信息,使模型支撐的應用范圍逐步擴展、趨于完善。因此,對業(yè)務流程的理解程度將直接影響產(chǎn)出模型的質量。
鑒于上述情況,在模型實現(xiàn)過程中,我們不能把各節(jié)點不同粒度的數(shù)據(jù)信息都堆砌在一起,那樣會產(chǎn)生大量的冗余信息,也會使模型本身的定位不清晰,影響使用。
因此,需要輸出不同粒度的模型來滿足各類應用需求。例如既會存在訂單粒度的數(shù)據(jù)模型,也會存在分析各個訂單在不同時間節(jié)點狀態(tài)信息的數(shù)據(jù)模型。
基于維度建模的思路,在模型整合生產(chǎn)總線各節(jié)點核心信息之后,會根據(jù)這些節(jié)點信息進一步擴展常用的分析維度,以減少應用層面頻繁關聯(lián)相關分析維度帶來的資源消耗,模型會反范式冗余相關維度信息,以獲取應用層的使用便捷。最終建立一個整合旅游、交通、酒店等各業(yè)務線與各業(yè)務節(jié)點信息的馬蜂窩全流程訂單模型。
四、數(shù)據(jù)倉庫工具鏈建設
為提升數(shù)據(jù)生產(chǎn)力,馬蜂窩數(shù)據(jù)倉庫建立了一套工具鏈,來實現(xiàn)采集、研發(fā)、管理流程的自動化?,F(xiàn)階段比較重要的有以下三大工具:
1. 數(shù)據(jù)同步工具
同步工具主要解決兩個問題:
- 從源系統(tǒng)同步數(shù)據(jù)到數(shù)據(jù)倉庫
- 將數(shù)據(jù)倉庫的數(shù)據(jù)同步至其他環(huán)境
下面重點介紹從源系統(tǒng)同步數(shù)據(jù)到數(shù)據(jù)倉庫。
馬蜂窩的數(shù)據(jù)同步設計支撐靈活的數(shù)據(jù)接入方式,可以選擇抽取方式以及加工方式。抽取方式主要包括增量抽取或者全量抽取,加工方式面向數(shù)據(jù)的存儲方式,是需要對數(shù)據(jù)進行拉鏈式保存,或者以流水日志的方式進行存儲。
接入時,只需要填寫數(shù)據(jù)表信息配置以及具體的字段配置信息,數(shù)據(jù)就可以自動接入到數(shù)據(jù)倉庫,形成數(shù)倉的 ODS 層數(shù)據(jù)模型,如下:
2. 任務調度平臺
我們使用 Airflow 配合自研的任務調度系統(tǒng),不僅能支持常規(guī)的任務調度,還可以支持任務調度系統(tǒng)各類數(shù)據(jù)重跑,歷史補數(shù)等需求。
別小看數(shù)據(jù)重跑、歷史補數(shù),這兩項功能是在選擇調度工具中重要的參考項。做數(shù)據(jù)的人都清楚,在實際數(shù)據(jù)處理過程中會面臨諸多的數(shù)據(jù)口徑變化、數(shù)據(jù)異常等,需要進行數(shù)據(jù)重跑、刷新、補數(shù)等操作。
我們設計的「一鍵重跑」功能,可以將相關任務依賴的后置任務全部帶出,并支持選擇性地刪除或虛擬執(zhí)行任意節(jié)點的任務:
- 如果選擇刪除,這該任務之后所依賴的任務均不執(zhí)行
- 如果選擇虛擬執(zhí)行,則會忽略(空跑)掉該任務,后置的所有依賴任務還是會正常執(zhí)行。
如下是基于某一個任務重跑下游所有任務所列出的關系圖,選中具體的執(zhí)行節(jié)點,就可以執(zhí)行忽略或者刪除。
3. 元數(shù)據(jù)管理工具
元數(shù)據(jù)范疇包括技術元數(shù)據(jù)、業(yè)務元數(shù)據(jù)、管理元數(shù)據(jù),在概念上不做過多闡述了。元數(shù)據(jù)管理在數(shù)據(jù)建設起著舉足輕重的作用,這部分在數(shù)倉應用中主要有 2 個點:
(1)血緣管理
- 血緣管理可以追溯數(shù)據(jù)加工整體鏈路,解析表的來龍去脈,用于支撐各類場景,如:
- 支持上游變更對下游影響的分析與調整
- 監(jiān)控各節(jié)點、各鏈路任務運行成本,效率
- 監(jiān)控數(shù)據(jù)模型的依賴數(shù)量,確認哪些是重點模型
如下是某一個數(shù)據(jù)模型中的血緣圖,上下游以不同顏色進行呈現(xiàn):
(2)數(shù)據(jù)知識管理
通過對技術、業(yè)務元數(shù)據(jù)進行清晰、詳盡地描述,形成數(shù)據(jù)知識,給數(shù)據(jù)人員提供更好的使用向導。我們的數(shù)據(jù)知識主要包括實體說明與屬性說明,具體如下:
五、總結
企業(yè)的數(shù)據(jù)建設需要經(jīng)歷幾個大的步驟:
- 第一步,業(yè)務數(shù)據(jù)化:顧名思義,一切業(yè)務都能通過數(shù)據(jù)反映,主要指的是將傳統(tǒng)線下流程線上化;
- 第二步,數(shù)據(jù)智能化:光有數(shù)據(jù)還不行,還需要足夠的智能,如何通過智能化的數(shù)據(jù)支撐運營、營銷及各類業(yè)務,這是數(shù)據(jù)中臺當前解決的主要問題;
- 第三步,數(shù)據(jù)業(yè)務化:也就是我們常說的數(shù)據(jù)驅動業(yè)務,數(shù)據(jù)不能只是數(shù)據(jù),數(shù)據(jù)價值最大化在于可以驅動新的業(yè)務創(chuàng)新,帶動企業(yè)增長。
目前大部企業(yè)目前都停留在第二個階段,因為這一步需要足夠夯實,才能為第三步打好基礎,這也是為什么各大企業(yè)要投入很大成本到大數(shù)據(jù)平臺、數(shù)據(jù)倉庫乃至數(shù)據(jù)中臺的建設中。
馬蜂窩數(shù)據(jù)中臺的建設才剛剛起步。我們認為,理想的數(shù)據(jù)中臺需要具備數(shù)據(jù)標準化、工具組件化、組織清晰化這三個核心前提。為了向這一目標邁進,我們將建立統(tǒng)一、標準化的數(shù)據(jù)倉庫作為當下數(shù)據(jù)中臺的重點工作之一。
數(shù)據(jù)來源于業(yè)務,最終也將應用于業(yè)務。只有對數(shù)據(jù)足夠重視,與業(yè)務充分銜接,才能實現(xiàn)數(shù)據(jù)價值的最大化。在馬蜂窩,從管理層,到公司研發(fā)、產(chǎn)品、運營、銷售等各角色,對數(shù)據(jù)非常重視,數(shù)據(jù)產(chǎn)品的使用人數(shù)占公司員工比例高達 75%。
大量用戶的使用,驅動著我們在數(shù)據(jù)中臺建設的路上不斷前進。如何將新興技術能力應用到數(shù)據(jù)倉庫的建設,如何以有限的成本高效解決企業(yè)在數(shù)據(jù)建設中面臨的問題,將是馬蜂窩數(shù)倉建設一直的思考。
文章名稱:馬蜂窩大數(shù)據(jù)架構詳解:小白都能懂的數(shù)據(jù)倉庫與數(shù)據(jù)中臺
當前網(wǎng)址:http://www.dlmjj.cn/article/djgpchh.html


咨詢
建站咨詢
