DMP系統技術架構【技術類】
要建立完備的大數據系統,需要紮實完善、高處理效率、高安全性、高穩定性、易擴容、海量存儲的技術架構。下面截取部分DMP系統的技術架構圖(主要包括應用架構、數據架構、技術架構等)供大家參考,同樣對於非技術的同學對此有個感性認識即可。也不做大篇幅的展開了。
應用架構
應用架構主要是從應用功能角度將各模塊間關係及分工進行描繪的圖紙,主要會從應用集成視圖、功能視圖這些角度來進行描繪。幫助大家能對系統有個直觀的認識,並且幫助各模塊協同開發,友好集成。
集成視圖:
該視圖主要體現出各模塊間關係,如圖9-28所示,以線下DMP系統為例,大數據平台(BigData)會從各個不同的渠道交換或採集數據。如:通過數據採集網路採集線下掃描設備採集的用戶掃描數據、WIFI上網服務Portal的用戶登陸認證數據、上網數據、點擊流數據等,從企業數據中的普通數據、連鎖店、加盟店等線下場景獲取掃描數據、認證數據、上網數據等。內部會對各種業務維度位置數據、消費數據、通訊數據等進行交換從而對用戶行為進行精準的刻畫。在這個例子中,大數據平台以服務線上廣告業務作為主要業務運用方向,所以會把廣告管理系統視為外部系統(大數據為本體域,業務運用為客體域),進行外部數據交換,打通用戶線下ID及線上ID。將用戶的線下行為結合線上行為結合起來分析並打上標籤,用以指導線上的程序化廣告投放。廣告系統中會從媒體方、ADX、廣告監測中收集各種線上用戶行為數據,並將這些線上廣告相關的查看、點擊、競價信息等數據灌入大數據系統,從大數據系統中得到人群畫像、競價決策等的數據支持。當然不同的業務運用目的,就會接不同的業務系統交互數據,並將大數據為不同的業務運用目的而服務。
圖9?28 DMP應用架構-集成視圖示例
功能視圖:
該視圖主要描繪DMP基礎必備的技術功能,如圖9-29所示,大數據平台基礎必備的技術功能有數據採集、數據導出、數據分析、數據可視化等。數據採集主要職能是收集數據,主要包括掃描採集數據、校驗數據有效性、處理清洗數據、上傳數據、備份數據、加密解密、壓縮解壓縮、ID生成等功能模塊。數據導出主要職能是為了服務內外部的數據導入導出需求,主要包括內部ID關聯、內部ID及數據導出、外部ID匹配、外部ID及數據導入等功能模塊。數據分析主要職能是結合業務運用方向的需求對數據進行分析整理,在該例中以廣告為主包含廣告投放數據分析、人群畫像等功能模塊。數據可視化是數據有效輸出、為決策提供支持、數據展示價值的重要窗口,其主要包含運維需要的數據採集監控、數據管理需要的數據主體域可視化、數據運用需要的行為域可視化、數據查詢等功能模塊。
圖9?29 DMP應用架構-功能視圖示例
數據架構
若我們要對數據進行清晰的梳理,就必須先畫出數據架構,在數據架構中會依據既有數據內容及運用方向畫出主題域,並通過對主題域視圖的描繪,讓大家對系統主要管理的數據維度及各數據之間的關係有一定的認識。這樣能有效指導有方向有目的地去收集交換並運用數據。數據我們一般會分為不同的主題域來存儲分析,不同的主題域中都有唯一的主域數據對象族,其他的數據都是圍繞這個主域數據對象族的客體域數據。如圖9-30所示,以人作為十分核心的本體域,包括個體特徵、身份證號、群體特徵、本體關係網路、標籤、數據維度、類別等。作為人本體域存在很多描述的本像數據,如計算機網路中的應用層的QQ及微信、表示層的CookieID、網路層的IP地址、物理層MAC地址,以及電信網路中的手機號、IDFA、IMEI、AndroidID等。相對人本主體的是客體域,即與人關聯的物或非本體的數據或行為等,其包含個體特徵及群體特徵等,對於該例中以廣告為主要業務運用方向,以廣告作為主要描述的客像數據,如計算及網路中的應用層的廣告ID及行為語意表達等。人本體及網路廣告及行為數據客體通過時空交互,這些關聯關係的數據均記錄在交互域中,如計算及網路中的應用層的郵件記錄及上網記錄及廣告行為、網路層的DHCP上網IP自動獲取記錄、物理層客戶端位置及設備位置,以及電信網路中的終端位置、通話記錄、基站位置等。只有通過如此嚴謹且豐富的數據區隔,我們才能有效地分析數據,找出其中有價值的內容。
圖9?30 DMP數據架構-主題域視圖示例
技術架構
技術架構往往是我們要開始系統工程開發及構建之前,從技術實現角度劃分出不同技術開發組件及模塊的重要工序,這樣做才能確保開發分工的協同性及系統功能實現的完整性。其中十分重要的就是組件視圖的描繪。一般技術開發中必然會劃分出不同的技術組件,主要是為了在系統搭建中,提高組件的可復用性,提升重用率,提升系統代碼質量,盡量減少「重複造輪子」的浪費。如圖9-31所示,我們將DMP系統的技術組件劃分為主要負責對資源的管理及操作交互的基礎資源層(bd-res)、主要負責業務處理的業務層(bd-mod)、主要負責集成及輸入輸出介面的介面層(bd-port)、以及貫穿各層的公共工具(bd-util)。公共工具(bd-util)即各層技術開發時大家都會用到的公共工具,如異常處理、類管理、開發調試工具等。基礎資源層主要負責對資源的管理及操作交互,如資料庫處理(res-db)包含對hbase、jpa、redis等的交互模塊,文件處理(res-file)包含對csv、excel、大數據文件dfs、文件系統fs等的交互模塊,網路處理(res-net)包含對ftp、http、mail、rest等的交互模塊,流處理(res-stream)包含對mns、ons等的交互模塊,還有對緩存(res-cache)、大數據計算資源spark(res-spark)、大數據計算emr(MapReduce)資源(res-emr)、通用資源(res-common)等的交互模塊。業務層負責業務處理,如基於spark的業務計算模塊(包括聚集(gather)、學習(learn)、訓練(trans)(訓練中包含清洗(clean)、映射(map)、聚類(aggregate))、查詢(query)(包含匹配(match)、導出(export)、檢索(search))),基於流的業務計算模塊(mod-stream),基於mr(MapReduce)的業務計算模塊(mod-mr),基於共享內存的業務計算模塊(mod-shm)等。介面層主要負責集成及輸入輸出,如集成介面模塊(port-integration)、客戶端介面模塊(port-cli)、API介面模塊(port-api)、WEB介面模塊(port-web)等。
圖9?31 DMP技術架構-組件視圖示例
(轉載請註明出處:微信訂閱號:ad_automation)
文字表現力有限,歡迎參加《5.28線下大課堂》面對面為您答疑解惑講透您關心的問題。
推薦閱讀: