sponsored links

商業DMP資料管理平臺的架構與實踐

導讀:隨著大資料的快速發展,大資料應用已經融入各行各業。在很多場景中得到了商業化實踐。今天和大家分享下58同城商業站內DMP平臺架構與實踐,介紹如何在大資料量的情況下進行實時資料探勘併為線上廣告系統應用提供物料等資料支援。

主要內容包括:

  • DMP 平臺簡介
  • DMP架構及實現
  • DMP應用
  • 未來規劃

01

DMP平臺簡介

DMP 其實是一個數據管理平臺,是把分散的多方資料進行整合納入統一的技術平臺,並對這些資料進行標準化和細分,讓使用者可以把這些細分結果推向現有的互動營銷環境裡的平臺。

業界代表性的產品有騰訊廣點通和阿里達摩盤。它們主要提供建立細分人群、分析使用者畫像、種子使用者群體拓展(lookalike)、再營銷、分析投放管理、流量採買和第三方資料接入等功能。

下面和大家分享下58商業對DMP平臺的需求。

1. 業務需求

58商業產品技術部主要負責整個58的商業變現,最核心的OKR其實是如何將有效的流量進行變現。

我們需要把點選廣告的使用者特徵、上下文特徵和我們自己的廣告庫特徵進行加工整合後,再提供給線上廣告推薦的觸發、排序和裝飾。其次還要支撐其他部門的商業營銷、商家平臺以及微聊系統。

商業DMP資料管理平臺的架構與實踐

2. 特徵需求

特徵需求主要是特徵的挖掘和特徵的使用。

特徵挖掘需滿足:

  • 快速、便捷定義特徵挖掘邏輯
  • 一定時限內的歷史特徵+ 實時特徵(s 級)融合
  • 快速上線生效
  • 實驗迭代

特徵使用應提供如下功能:

  • 豐富的特徵資料、有序的特徵體系、統一的元資料管理體系
  • 便捷、穩定的線上服務
  • 便捷、可靠的離線特徵倉庫
  • 實驗迭代

02

DMP平臺架構

1. 商業DMP定位

首先,結合我們的需求,介紹下商業DMP定位,這裡介紹的商業DMP主要是指我們商業站內的,主要提供特徵挖掘和特徵資料服務的能力。

對於開發者,特徵挖掘平臺提供了簡潔、易用的開發SDK,遮蔽實時計算、批次計算、海量儲存、高併發服務、各底層分散式系統部署等細節。提供TB級別(N天)行為資料探勘和秒級別延時實時特徵挖掘,支援特徵挖掘實驗、水平擴充套件。

對於特徵資料服務平臺,提供豐富的特徵資料(TB級別)和元資料管理,能夠提供線上和離線特徵資料服務。對於線上,提供穩定的線上特徵資料服務,支撐線上推薦系統;對於離線,提供靈活的多維查詢,支援按人群特徵進行營銷活動。

2. 平臺業務架構

商業DMP資料管理平臺的架構與實踐

從資料的產生到標籤的加工再到業務應用,在這完整的資料流中,DMP平臺其實是起著承上啟下的作用,可以把它看做是一個數據工廠,對資料特徵進行統一、清洗、加工、轉化、提煉,再對外提供相應的資料服務。DMP平臺主要包括特徵挖掘平臺、dmp service、標籤元資料管理、監控等模組。

3. 平臺邏輯架構

商業DMP資料管理平臺的架構與實踐

平臺邏輯架構主要分為資料層、儲存層、計算層、服務層和監控層。

資料層:提供Kafka、ESB、HDFS、Api等多種異構資料來源,透過importer層將資料進行統一的清洗轉化,對下形成統一的資料來源,從而遮蔽底層的異構資料來源。

儲存層:我們實現了儲存介面、序列化模組、壓縮模組。由於線上推薦特徵挖掘提供基於KV鍵值儲存就能滿足需求,故底層儲存主要提供Redis和自研的wtable等。

計算層:提供了storm、spark、sparkstreaming、flink等多種計算引擎。在operator模組提供讓特徵挖掘使用者自己實現對應的SDK即可,簡便高效,同時對於使用者來說遮蔽掉了異構計算。

服務層:主要提供IDMapping、路由、實驗、process四個模組。IDMapping主要是為了打通資料孤島;路由模組主要是解決流量分發問題;實驗模組主要是進行分流實驗;process模組主要是提供業務解耦能力。

監控層:對服務、任務、儲存等進行監控,對多環節快速發現定位並解決問題。

4. 平臺功能

平臺目前提供行為引入、特徵儲存、特徵挖掘和特徵服務四大模組。

行為引入:提供ID-Mapping服務、實驗分流、統一Behavior結構,支援Behavior結構實時離線複用和相容,支援實時批次匯出Behavior資料。

特徵挖掘:支援實時挖掘和批次挖掘,並支援線上加工,統一特徵和屬性結構,為解析使用者行為提供相應的SDK。

特徵儲存:支援隨機和批次的高併發讀寫,提供TB級別的特徵儲存能力,同時提供實時特徵和歷史特徵的融合,支援多版本的特徵迭代。

特徵服務:對外提供統一的訪問介面,許可權控制,元資料管理和實驗分流。

5. 元資料管理

商業DMP資料管理平臺的架構與實踐

商業DMP標籤體系主要分為C端標籤和B端標籤兩類。C端主要是流量相關的標籤,可以給予人口屬性、行業標籤、地理位置等做進一步細分。B端主要是廣告主相關的標籤。

6. 特徵挖掘流程

商業DMP資料管理平臺的架構與實踐

特徵挖掘主要分實時特徵挖掘和離線特徵挖掘兩大塊。我們提供了Importer(對資料來源的解析)和Operator SDK(融合資料探勘的介面),可以對使用者提供SDK開放介面,達到一處編寫,多處執行的能力,並且支援外掛化部署,利於服務解耦和維護。

  • 離線特徵挖掘的場景是一般基於單日行為的批次挖掘,再向前回溯n日的特徵,然後進行多日特徵合併。首次進行全量匯入特徵庫,後續每日做增量特徵匯入,是通過當日全量與昨日全量做特徵diff,然後得到增量特徵在匯入特徵庫。
  • 實時特徵挖掘是透過Importer和解析使用者挖掘的SDK在寫入實時特徵庫,最後在DMP服務會對實時特徵庫和離線特徵庫進行合併,再對外提供服務。

7. 計算框架

商業DMP資料管理平臺的架構與實踐

計算框架大致分NODE、Module和Operator三部分:

  • NODE:對使用者遮蔽了異構資料和異構計算。提供Spark、Hive、SparkStreaming和Flink計算引擎,底層資料來源支援HDFS、Kafka和ESB,透過behavior資料結構,對58商業流量資料抽象定義,從而相容多種異構資料來源,提供統一的資料結構。
  • Module:Topo主要是對Operator解析和呼叫。
  • Operator:對使用者暴露了behavior2Feature、mergeFeature和 featue2Attribue三個介面。behavior2Feature是對schema資料轉換成使用者需要的標準化的特徵;mergeFeature提供使用者自定義的特徵融合功能;featue2Attribue是對外提供特徵查詢的介面服務。

8. 實時計算

① 遇到的問題

  • 穩定性問題:由於流量洪峰導致的任務處理資料量變大、記憶體溢位、資料積壓等問題;由於任務頻繁提交到故障機器導致任務失敗問題;由於部分任務執行耗時導致整個任務執行時間過長,從而產生資料積壓的問題;由於網路shuffle耗時導致任務效能變差;由於Spark和Flink自身的監控不能滿足業務需要,導致不能及時發現異常問題等。
  • Flink框架問題:分散式快取不生效、Taskmanager超時失敗、Flink框架空指標異常等。
  • 資料流傳輸問題:flume採集資料傳輸延遲,導致使用者行為實時轉化不及時。
  • 監控問題:由於監控時間粒度太小導致監控覆蓋不全。

② 解決方案

  • 穩定性:利用Spark和Flink自帶的反壓機制解決流量洪峰問題;對於機器故障問題採用黑名單機制和推測執行機制來解決;透過定製化任務監控來及時發問題。
  • 容錯性:主要採用Spark和Flink自帶的checkpoint機制。
  • 高效能:運算元最佳化、shuffle最佳化、引數調優等。
  • Flink問題:向Flink社群反饋問題,藉助HDFS我們實現了分散式快取功能。
  • 資料傳輸:藉助公司力量,推動Flume傳輸架構最佳化升級。
  • 監控:開發自定義監控系統,並結合Flink,Spark自帶監控。

③ 定製化監控

商業DMP資料管理平臺的架構與實踐

我們的監控平臺主要結合Flink,Spark自帶監控進行一個補充,主要針對task執行,重試次數和失敗次數的監控和一些其他維度的監控,透過告警層,配置告警相關規則,將監控的異常資訊及時通知告警人並處理。

9. 儲存系統選型

商業DMP資料管理平臺的架構與實踐

針對上述對比結合58內部以及業界常見KV儲存查詢,我們選擇Redis和wtable這兩種KV儲存系統。針對要求高效能高併發讀寫的場景我們選用redis,針對併發讀效能要求高,併發寫效能相對較低的場景則選用wtable。

商業DMP資料管理平臺的架構與實踐

10. 儲存最佳化

① 讀寫合併最佳化

由於實時離線特徵資料量太大,資料庫的讀寫次數幾乎等於流量日誌的數量。我們做了如下最佳化:

  • 離線特徵先在記憶體中合併單個使用者當日的所有特徵,再合併所有RDD中包含該使用者特徵的資料,最後再把生成的特徵資料同特徵庫中的歷史特徵資料進行合併(從n到1);
  • 實時特徵在寫入特徵庫之前先進行視窗內聚合,透過犧牲時效性從而減輕特徵庫的讀寫壓力;
  • 將IDMap與離線特徵加入本地快取中。

最佳化結果:超時機率從之前的3%左右降到了0.1%以下。

② 離線實時特徵拆庫

由於之前離線實時特徵庫為同一個庫,大量離線寫入會對線上讀請求有影響,造成服務超時及離線資料匯入時間較長。針對此現象我們將離線特徵單獨儲存,並將資料匯入方式從單條匯入修改為bulkload匯入的方式。

最佳化結果:離線資料匯入由3小時降至0.5小時,同時DMP對外查詢服務保證在50ms之內。

③ 耗時最佳化

遇到問題:

  • 獲取單個使用者請求時需要經過IDMap查詢、兩次實時特徵查詢和一次離線特徵查詢,總共四次服務呼叫,序列執行很容易超時;
  • 入庫的時候都做了壓縮和序列化,如何提高壓縮耗時與壓縮比;
  • DMP平臺採用Java服務懶載入方式從而導致服務啟動耗時。

最佳化方法:

  • 對於沒有依賴關係的服務呼叫採用並行處理;
  • IDMapping增加快取,保證服務的響應時間;
  • 壓縮加入壓縮頭,支援多種序列化與壓縮方式,保留最佳化空間;
  • 修改懶載入方式

最佳化結果:服務呼叫耗時從原來的各服務呼叫時間之和變成各服務呼叫耗時最大值。

11. DMP實驗平臺

商業DMP資料管理平臺的架構與實踐

商業DMP資料管理平臺的架構與實踐

如圖所示為DMP分流實驗架構參照的是google分層實驗框架,整個流程大致如下:

  • DMP流量經過IDM模組後根據condition條件進入相應的block。
  • DMP流量按照相應的分流方式進行分流。
  • 根據分流實驗標記進行不同的實驗邏輯處理
  • Sink實驗標記回傳方便業務線做相關的資料統計分析

03

DMP應用

1. 線上推薦系統二手車Feed流

Feed流是實時的個性化推薦,從而實現使用者體驗和商業價值的提升。這就要求我們能快速捕捉到使用者的行為變化並提取使用者特徵。DMP需要能對使用者行為資料的採集清洗轉換到特徵加工等達到秒級加工能力,從而保障Feed流系統的實時性。

商業DMP資料管理平臺的架構與實踐

2. 人群服務

商業DMP資料管理平臺的架構與實踐

人群服務主要是給營銷產品提供人群圈選的功能,用來做智慧營銷的場景,主要包括建立人群包和透過人群來查詢相關的使用者即基於多個維度的標籤屬性篩選分析使用者特點。目前建立人群包主要支援標籤組合和自定義上傳兩種模式。

建立人群的具體流程如下:

商業DMP資料管理平臺的架構與實踐

建立完人群包之後,即可根據建立的人群包進行相關的人群圈選功能。具體流程如下:

商業DMP資料管理平臺的架構與實踐

在整個查詢過程中,透過人群包進行人群圈選直接查詢es的效能會有一定延遲,為此我們進行了架構的最佳化和調整:

  • 對於t+1之前已經建立的人群包,每天離線資料匯入的時候會將相關人群包對於的圈選人群直接圈選出來持久化到redis中,從而滿足線上場景的實時查詢。
  • 對於新建立的人群包,按照上述流程進行查詢,同時將查詢結果快取到redis中,方便後續的重複查詢。

04

未來規劃

未來我們希望可以藉助商業DMP的能力,進一步為公司賦能提效:

1. 構建OneService

商業DMP資料管理平臺的架構與實踐

透過服務升級,能夠對外提供統一的使用者畫像服務、標籤管理、統一開放API、人群管理。

2. 引入Doris

商業DMP資料管理平臺的架構與實踐

引入Doris計算引擎,支援人群包更實時和靈活的多維度分析功能。

今天的分享就到這裡,謝謝大家。



在文末分享、點贊、在看,給個三連擊唄~~



分享嘉賓:

商業DMP資料管理平臺的架構與實踐

林鵬

58同城 | 大資料架構師

58同城,商業產品技術部大資料架構師,2019年加入58同城。主要負責58同城站內DMP平臺和客戶資料建設的專案管理和研發工作,對實時計算、OLAP分析有一定研究,曾先後在百度、去哪、小米任職。

分享嘉賓:林鵬 58同城 大資料架構師

編輯整理:張磊

出品平臺:DataFunTalk

分類: 教育
時間: 2021-12-18

相關文章

七年級上冊數學第一次月考複習重點,考前鞏固一下

七年級上冊數學第一次月考複習重點,考前鞏固一下
開學已經三週左右了,大部分同學在下週或者十一以後就要迎接新學期的第一次月考了,所以,在同學們月考之前,小柒老師給同學們整理了七年級數學的月考提分資料,送給同學們,希望同學們在新學期的第一次月考取得好成 ...

七年級上冊數學培優試卷,有理數單元測試卷,可下載可列印含答案

七年級上冊數學培優試卷,有理數單元測試卷,可下載可列印含答案
七年級上冊數學培優課程專欄<七年級上冊數學經典例題講解>,有理數章節課後練習題. 無論是否購買專欄課程的家長或同學均可免費下載,打印出來之後課後練習,購買專欄的同學或家長,答案看不明白的地 ...

七年級上冊數學,有理數章節最難知識點,絕對值壓軸題都在這裡

七年級上冊數學,有理數章節最難知識點,絕對值壓軸題都在這裡
七年級上冊培優課程專欄,有理數章節課後練習題.

欣賞七年級上冊語文第一單元優美的景物描寫和描寫秋天的優美佳作

欣賞七年級上冊語文第一單元優美的景物描寫和描寫秋天的優美佳作
七年級上冊第一單元的三篇散文,都是寫景抒情的名家名篇,朱自清的<春>,以生動形象的筆法,多層次.多角度地描寫一個特定時令的景象:老舍的<濟南的冬天>,描寫和讚美一個地方在一個季 ...

七年級上冊歷史表格提綱
七年級上冊 (中國古代史上) 黃堯舜禹夏商周,春秋戰國亂悠悠,秦漢三國晉統一,南朝北朝是對頭 1.遠古人類比較: 型別 時間 階段 生活地區 生產力情況 社會情況 特點 元謀人 距今170萬年 舊 石 ...

數學北師大版七年級上冊知識點分享

數學北師大版七年級上冊知識點分享
給大家分享一下七年級上冊北師大版的知識點彙總,現在初一的孩子可以收藏!期末複習很有用哦~

七年級下冊生物期中考試試卷分析
為了更好地總結工作中的經驗教訓,對本次的生物試卷進行全面的分析,以期在今後的工作中取得更好的成績!透過測試,反映出學生的能力有待提高. 一.試卷分析 本次七年級生物期中考試主要考查學生基礎知識和基本技 ...

七年級上冊歷史第一單元測試

七年級上冊歷史第一單元測試
一.單項選擇題(每小題 2 分,共 40 分) 1. 與現代人相貌最接近的一種原始人類應該是( ) A. 元謀人 B. 北京人 C. 山頂洞人 D. 半坡居民 2. "生活在距今約 70 萬 ...

部編版語文七年級上冊名著《西遊記》導讀閱讀及練習

部編版語文七年級上冊名著《西遊記》導讀閱讀及練習
我是超人老師,每天為大家更新小學.初中資料.如果覺得好的話,記得關注我哦.

七年級上冊語文第二單元寫作指導及習作
一.下面這段文字記事過於簡單,讀起來讓人興味索然.請你幫作者"添枝加葉",把它寫得豐滿.生動一些. 那天放學回家,我不小心摔了一跤,手受了傷,校服也破了.回到家裡,爸爸.媽媽.爺爺 ...

七年級上冊數學之「專題九:一元一次方程:去括號與去分母」

七年級上冊數學之「專題九:一元一次方程:去括號與去分母」
一.代數式求值 題型簡單總結以下三種: ①已知條件不化簡,所給代數式化簡: ②已知條件化簡,所給代數式不化簡: ③已知條件和所給代數式都要化簡. 二.等式的性質 利用等式的性質解方程 利用等式的性質對 ...

七年級上冊數學,整式加減找規律壓軸題目練習,可下載列印

七年級上冊數學,整式加減找規律壓軸題目練習,可下載列印
大家可以下載並列印試著做一下這些題目,不會做的同學,文章底部有同步專欄影片課程.

七年級數學,含有字母的絕對值化簡求值,掌握性質,用好數軸

七年級數學,含有字母的絕對值化簡求值,掌握性質,用好數軸
七年級數學在整個初中階段是基礎,尤其是七年級上冊,知識點相對比較簡單,同學們在學習的時候,一定要做到,上課認真聽講,課後有針對性的練習,將知識點掌握紮實,為後面的學習打好基礎.下面我們一起交流學習,有 ...

高中地理40分到90分的距離就在這份資料裡,三年通用資料

高中地理40分到90分的距離就在這份資料裡,三年通用資料
高中地理的知識點很多,想要提高成績,首先知識點一定要記牢,地理知識一聽就懂,做題時不知如何下手之所以存在這樣的情況是由於同學們沒有找到高中地理的重點,課本中的知識看哪條都像重點,沒有學習規劃和知識總結 ...

詩詞大會考“但願人長久”,百人團91人答錯,網友:語文老師背鍋

詩詞大會考“但願人長久”,百人團91人答錯,網友:語文老師背鍋
但願人長久,千里共嬋娟. 近幾年,學術類節目出現在大眾視野中,相比於那些小鮮肉唱跳的選秀節目,前者顯然更有深度和教育意義一些.因此,大眾認可度上升也導致不少有價值的學術類節目層出不窮,其中<詩詞 ...

八年級上冊歷史考點歸納+ 思維導圖,打印出來貼牆背,值得收藏

八年級上冊歷史考點歸納+ 思維導圖,打印出來貼牆背,值得收藏
八年級上冊歷史考點歸納+ 思維導圖,打印出來貼牆背,值得收藏! 歷史本來是一個比較簡單的科目,但是很多同學都沒能取得好成績,原因是什麼呢? 最大的原因就是歷史的知識點比較容易混淆,很容易就記錯,導致答 ...

七年級語文第一次月考基礎知識專訓70題,含字詞句、古詩詞等

七年級語文第一次月考基礎知識專訓70題,含字詞句、古詩詞等
右上角關注我,每天分享這方面的技巧! 點選左上角"我的頭像",[最上方] 更多實用內容! 小學階段的語文主要是基礎知識,課上老師一直會強調這一點.到了初中階段,語文主要偏向於理解, ...

七年級數學試題

七年級數學試題
"七年級"的孩子們開學已經有一段時間了,是否已經適應"中學"的學習生活了呢?畢竟"初中"和"小學"有很大的不同,無論從學 ...

四年級上冊語文「必背課文」內容填空,專項練習,考試不丟分收藏

四年級上冊語文「必背課文」內容填空,專項練習,考試不丟分收藏
關注我!每天更新語文知識,為您的孩子學習加分! 按課本內容填空"是小學階段語文考試中經常出現的題目,主要是考驗同學們對課本的熟悉程度以及對課本的理解. 這道題難度不大,但是很多同學由於對於課 ...

七年級歷史上冊 知識點+考點圖文梳理,知識記不住,易遺忘必備

七年級歷史上冊 知識點+考點圖文梳理,知識記不住,易遺忘必備
記得右上角點選關注,防止丟失,每日更新! 初中歷史書本知識已經背得很熟了,但是過些時間總會忘記,怎麼辦? 這也是很多學生會出現的問題,七年級歷史並不是很難,但是隻要把知識點都記住,無論是死記硬背,還是 ...