大數據洞察畫像自動化實踐

文|丁龍 網易雲商高級系統測試工程師

一、什麼是消費者洞察?

消費者洞察是在大數據的基礎上,向上走一層,帶着分析洞察的思路去進行客戶服務。當垂直行業深入業務時,可以將數據進行更進一步的應用分析,輸出給企業更有價值的洞察報告,直接反映消費者現狀,並且指導企業的決策。

這本質上也是在顛覆諮詢公司的服務模式,他們對企業的服務模式是一段時間輸出一份報告,這裏存在大量的數據採集和報告撰寫的時間。但當我們沉澱分析方式,並且將數據看板化,就是在用 SaaS 的方式交付洞察諮詢的能力,可以讓企業以更快的頻率看到數據的變化,以更靈活的方式進行數據指標間的交叉分析。

本品洞察畫像: 基於品牌的 20 種價值觀與大數據畫像呈現。

換品洞察: 基於某手機展示用戶換機情況。

二、業務實現

(一)總體架構

數據接入與存儲:

通過編寫 Spark 應用,將該應用部署在網易猛獁數據平臺,從 Hive 同步寬表、標籤表數據至 MySQL 和 ClickHouse 該應用具體同步方法如下:

  • 將標籤分類、標籤以及標籤枚舉數據寫入 MySQL
  • 從 Hive 讀取寬表數據,直接通過 insert 語句寫入 ClickHouse 

數據服務:

  • 用戶畫像: 主要針對不同行業的洞察算法,提供各種標籤組合,生成可視化的洞察畫像與數據,反映不同類型消費者的現狀
  • 標籤管理: 主要負責標籤的層級管理和特殊標籤的處理,並提供接口給外部進行標籤列表的查詢。標籤分類、標籤、標籤枚舉都存在 MySQL

針對於業務目前架構,測試大數據洞察畫像的算法及同步的大數據標籤是否正確,保障用戶畫像合理性,成爲了重中之重。

(二)數據流轉

消費者洞察數據通過數據清洗、分析、沉澱,獲取到數據標籤存儲於 Hive 中,部署 spark 應用從 Hive 中得到寬表數據存儲於 Clikchouse,標籤表存儲 MySQL,最終業務呈現則從 Clikchouse 中寬表計算。

基於以上數據流轉與業務使用得出整體測試思路:

  • 基於 Clickhouse 數據源的寬表進行數據完整性與準確性校驗
  • 業務畫像呈現的洞察算法測試

三、目前現狀

數據量大: 同步數據後人工校驗各類標籤規則耗時較長,往往需要 1 天甚至更久的時間

洞察算法過多: 圈選不同的組合條件下將產生不同的行業洞察算法,導致迴歸工作量大大增加

重複性工作量大: 數據更新頻率快,半月/次,更新後同步需再次進行校驗,重複性工作多,算法亦是如此

四、解決方案

(一)數據校驗自動化

數據同步完成後,數據同步模塊會通過接口觸發 QA 的自動化標籤校驗機制。自動化校驗平臺以異步的方式對同步好的標籤數據進行校驗,如果出現問題會觸發報警通知。

DataValidataController 提供給開發調用的 API 接口。ValidataImpl 實現數據完整性校驗, 包括數據量級、標籤量級、數據環比、標籤搜索;數據準確行校驗, 包括數據數據唯一性、數據關聯性。

(二)洞察畫像算法服務

大數據洞察畫像算法服務主要是爲了摒棄繁瑣的 SQL 輸入與手工計算,根據項目信息自動生成相應的算法 SQL,實現 SQL 之間的不同計算,同時也提供洞察算法彙總,提供相應的算法 API 服務。

整體思路: 基於目前消費者洞察的業務架構,實現了基於 Clickhouse 模塊的自動化測試架構。

應用層: 主要是根據不同的標籤,價格條件及行業實現各類算法彙總,包括本品洞察,競品洞察,換品洞察,行業細分洞察等;該層也將提供後續需求及功能迭代的算法。

數據服務: 提供相應的算法 API 服務,實現各類算法的接口調用。

@RequestMapping("/userProfile")public String userProfile(@RequestParam String projectId)
@RequestMapping("/insight/summary")public String summaryInsight(@RequestParam String projectId,@RequestParam String key)

​​​​​​​

@RequestMapping("/insight/avg")public String avgInsight(@RequestParam String projectId,@RequestParam String key)

實現 Clickhouse 連接: Clickhouse 的連接與 MySQL 一致,方便快捷。

整合 goapi(接口管理平臺)與 overmind(企業研發效能平臺)實現 CI:

goapi 實現場景用例與結果斷言,使用 overmind 的需求 CI 與功能場景模塊化調用,當開發洞察需求提測時,自動觸發場景用例調用,實現自動化校驗與提測/發佈卡點。

()

  1. Clickhouse 雖然有豐富的函數,但是有些函數的性能會很差,測試時發現 hasAny 的函數在大數據及行業平均值計算中耗時非常嚴重,所以在開發與測試中均規避了該函數,而採用行轉列的方式實現。
  2. 由於大數據畫像對於精度要求比較高,而 Clickhouse 在處理精度高的情況會導致精度缺失,所以在處理高精度的時候最好自己處理下精度丟失。
  3. Clickhouse 在處理 Where 條件多變的情況下,性能會比較差,如果業務的 Where 條件非常豐富與多變,當存在多個項目同步洞察的情況,畫像返回會變得相當慢。

(四)成果

測試覆蓋度提高

  • 未引入:抽樣覆蓋了數據標籤量級,標籤搜索。
  • 引入後:覆蓋數據量級、標籤量級、數據環比、標籤上下線、標籤搜索、標籤唯一行、標籤關聯性。

測試效率提高

  • 未引入:數據同步測試需要 1人/天,洞察算法測試需要 2人/天。
  • 引入後:無需人力投入測試迴歸。

五、總結

消費者洞察業務,後續也將會承載新的行業用戶分析,但不管接入什麼行業,其本質還是對用戶標籤及行爲進行解析形成畫像及洞察能力,而在其中承載的支柱:數據&算法,可以在大數據畫像自動化測試服務中得到很好的迭代及維護。

作者介紹

丁龍,網易雲商高級系統測試工程師,目前主要負責網易雲商問卷調研及消費者洞察測試工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章