大数据洞察画像自动化实践
文|丁龍 網易云商高級系統測試工程師
一、什么是消費者洞察?
消費者洞察是在大數據的基礎上,向上走一層,帶著分析洞察的思路去進行客戶服務。當垂直行業深入業務時,可以將數據進行更進一步的應用分析,輸出給企業更有價值的洞察報告,直接反映消費者現狀,并且指導企業的決策。
這本質上也是在顛覆咨詢公司的服務模式,他們對企業的服務模式是一段時間輸出一份報告,這里存在大量的數據采集和報告撰寫的時間。但當我們沉淀分析方式,并且將數據看板化,就是在用 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 與功能場景模塊化調用,當開發洞察需求提測時,自動觸發場景用例調用,實現自動化校驗與提測/發布卡點。
()
Clickhouse 雖然有豐富的函數,但是有些函數的性能會很差,測試時發現 hasAny 的函數在大數據及行業平均值計算中耗時非常嚴重,所以在開發與測試中均規避了該函數,而采用行轉列的方式實現。
由于大數據畫像對于精度要求比較高,而 Clickhouse 在處理精度高的情況會導致精度缺失,所以在處理高精度的時候最好自己處理下精度丟失。
Clickhouse 在處理 Where 條件多變的情況下,性能會比較差,如果業務的 Where 條件非常豐富與多變,當存在多個項目同步洞察的情況,畫像返回會變得相當慢。
?(四)成果?
測試覆蓋度提高
-
未引入:抽樣覆蓋了數據標簽量級,標簽搜索。
-
引入后:覆蓋數據量級、標簽量級、數據環比、標簽上下線、標簽搜索、標簽唯一行、標簽關聯性。
測試效率提高
-
未引入:數據同步測試需要 1人/天,洞察算法測試需要 2人/天。
-
引入后:無需人力投入測試回歸。
五、總結
消費者洞察業務,后續也將會承載新的行業用戶分析,但不管接入什么行業,其本質還是對用戶標簽及行為進行解析形成畫像及洞察能力,而在其中承載的支柱:數據&算法,可以在大數據畫像自動化測試服務中得到很好的迭代及維護。
作者介紹?
丁龍,網易云商高級系統測試工程師,目前主要負責網易云商問卷調研及消費者洞察測試工作。
總結
以上是生活随笔為你收集整理的大数据洞察画像自动化实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易云信三个课堂解决方案,让每个孩子都能
- 下一篇: 实时通信服务中的语音解混响算法实践