發光的二次元——克拉克拉上雲實踐
克拉克拉(KilaKila)是國內專注二次元、主打年輕使用者的娛樂互動內容社群軟體。KilaKila 推出互動語音直播、短視訊配音、對話小說等功能,滿足當下年輕使用者個性化、碎片化的文娛需求。隨著業務規模增長,海量資料儲存與計算的瓶頸也日益突出,由於單臺伺服器的處理能力有限,海量資料的分析需要分散式計算模型。分散式的計算模型對資料分析人員要求較高且不易維護:資料分析人員不僅需要了解業務需求,同時還需要熟悉底層分散式計算模型。MaxCompute提供完善的資料匯入方案以及多種經典的分散式計算模型,可快速解決克拉克拉所面臨的海量資料的計算問題,有效降低企業成本並保障資料安全。對於使用方的我們不必關心分散式計算和維護細節便可輕鬆完成大資料分析,最終我們採用阿里雲MaxCompute方案進行資料上雲。
一、資料上雲
克拉克拉(KilaKila)資料來源主要分為兩部分:1.結構化業務資料表(MySQL);2.非結構化使用者行為日誌
結構化業務庫上雲主要使用阿里雲datax、DTS兩種工具。
▲圖一:datax資料同步
datax原理是將MySQL資料完全透明化同步至MaxCompute資料表中,是表對錶的對映。
▲圖二:DTS資料同步
DTS主要以MySQL binlog方式來進行資料同步,該同步的優勢在於不會影響線上生產環境MySQL庫I/O壓力,與此同時對於刪除操作也會進行實時同步。
使用者行為日誌上雲,該日誌主要使用阿里雲日誌服務(Log Service)元件。該元件除了滿足將海量日誌儲存在MaxCompute資料倉庫中外,也解決了實時業務計算需求,如storm叢集。
▲圖三:Log Service工作流
▲圖四:日誌服務各Topic日誌源
▲圖五:克拉克拉使用者行為日誌片段
二、資料計算
為滿足各類批處理計算業務需求,基於MaxCompute建立了小時維度、天維度、月維度等不同維度的工作流以及業務流程。在資料開發階段我們使用MaxCompute的Web datawork進行任務開發、任務運維、任務監控等。
▲圖六:datawork SQL開發
在datawork中可以建立SQL指令碼,通過編寫SQL語言滿足我們的臨時查詢需求。
▲圖六:datawork工作流
在datawork中可以根據業務場景配置工作流,解決生產環節中所面臨的定時計算任務等訴求。
圖七:datawork運維中心
運維中心可實時監控任務的狀態,對應不同的任務狀態進行不同情況的報警;
綜上所訴,得益於datawork強大的資料開發多樣性和豐富的內建函式,我們可以針對不同業務場景進行快速的專案開發和上線。
**
三、克拉克拉業務應用場景**
克拉克拉(KilaKila)在實際生產環境中,主要有以下四個資料業務應用場景。如下:
1. 報表系統
▲圖八:克拉克拉BI報表系統架構
基於MaxCompute與quickBI組合快速構建了業務報表系統。該系統通過datawork部署系列報表計算任務,最終的計算結果可儲存MaxCompute表中以及MySQL表中。quickBI通過資料來源關聯即可實現前端趨勢圖靈活展示。
圖八:克拉克拉BI報表系統
2. 克拉克拉(KilaKila)榜單業務
圖九:克拉克拉榜單業務計算場景
通過MaxCompute滿足了克拉克拉主播排行榜、熱門榜單等排序業務。
3. 對外開放介面平臺(Restful API )
為了滿足第三方通過API介面獲取克拉克拉資料倉庫中的使用者標籤資料,基於MaxCompute Lightning架構搭建開放介面服務,通過該服務的閘道器鑑權機制保證了授權訪問和防DDOS攻擊。
圖九:克拉克拉開放介面結構
4.演算法業務
阿里雲機器學習平臺是構建在阿里雲MaxCompute(原ODPS)計算平臺之上,集資料處理、建模、離線預測、線上預測為一體的機器學習平臺。克拉克拉(KilaKila)預測演算法業務、推薦業務等相關專案均建立在機器學習平臺基礎上,專案上線快且效果符合預期。
▲圖九:克拉克拉短視訊推薦業務
圖十:克拉克拉渠道ROI預測業務
通過阿里雲所提供大資料解決方案,除了解決了克拉克拉所遇到的大資料挑戰,也極大的縮短了克拉克拉(Kilakila)諸多資料專案從想法到落地的研發週期。