開發與維運

發光的二次元——克拉克拉上雲實踐

作者:阿里雲MVP田亮

克拉克拉(KilaKila)是國內專注二次元、主打年輕用戶的娛樂互動內容社區軟件。KilaKila 推出互動語音直播、短視頻配音、對話小說等功能,滿足當下年輕用戶個性化、碎片化的文娛需求。隨著業務規模增長,海量數據存儲與計算的瓶頸也日益突出,由於單臺服務器的處理能力有限,海量數據的分析需要分佈式計算模型。分佈式的計算模型對數據分析人員要求較高且不易維護:數據分析人員不僅需要了解業務需求,同時還需要熟悉底層分佈式計算模型。MaxCompute提供完善的數據導入方案以及多種經典的分佈式計算模型,可快速解決克拉克拉所面臨的海量數據的計算問題,有效降低企業成本並保障數據安全。對於使用方的我們不必關心分佈式計算和維護細節便可輕鬆完成大數據分析,最終我們採用阿里雲MaxCompute方案進行數據上雲。

一、數據上雲

克拉克拉(KilaKila)數據源主要分為兩部分:1.結構化業務數據表(MySQL);2.非結構化用戶行為日誌

 結構化業務庫上雲主要使用阿里雲datax、DTS兩種工具。
image.png

▲圖一:datax數據同步

datax原理是將MySQL數據完全透明化同步至MaxCompute數據表中,是表對錶的映射。

image.png

▲圖二:DTS數據同步

DTS主要以MySQL binlog方式來進行數據同步,該同步的優勢在於不會影響線上生產環境MySQL庫I/O壓力,與此同時對於刪除操作也會進行實時同步。

 用戶行為日誌上雲,該日誌主要使用阿里雲日誌服務(Log Service)組件。該組件除了滿足將海量日誌存儲在MaxCompute數據倉庫中外,也解決了實時業務計算需求,如storm集群。

image.png

▲圖三:Log Service工作流
image.png

▲圖四:日誌服務各Topic日誌源
image.png

▲圖五:克拉克拉用戶行為日誌片段

二、數據計算

為滿足各類批處理計算業務需求,基於MaxCompute建立了小時維度、天維度、月維度等不同維度的工作流以及業務流程。在數據開發階段我們使用MaxCompute的Web datawork進行任務開發、任務運維、任務監控等。

image.png

▲圖六:datawork SQL開發
在datawork中可以創建SQL腳本,通過編寫SQL語言滿足我們的臨時查詢需求。

image.png

▲datawork工作流

在datawork中可以根據業務場景配置工作流,解決生產環節中所面臨的定時計算任務等訴求。

image.png

圖七:datawork運維中心
運維中心可實時監控任務的狀態,對應不同的任務狀態進行不同情況的報警;
綜上所訴,得益於datawork強大的數據開發多樣性和豐富的內置函數,我們可以針對不同業務場景進行快速的項目開發和上線。

三、克拉克拉業務應用場景

克拉克拉(KilaKila)在實際生產環境中,主要有以下四個數據業務應用場景。如下:

  1. 報表系統
    image.png

▲圖八:克拉克拉BI報表系統架構

基於MaxCompute與quickBI組合快速構建了業務報表系統。該系統通過datawork部署系列報表計算任務,最終的計算結果可存儲MaxCompute表中以及MySQL表中。quickBI通過數據源關聯即可實現前端趨勢圖靈活展示。

image.png

圖八:克拉克拉BI報表系統

  1. 克拉克拉(KilaKila)榜單業務

image.png

圖九:克拉克拉榜單業務計算場景

通過MaxCompute滿足了克拉克拉主播排行榜、熱門榜單等排序業務。

  1. 對外開放接口平臺(Restful API )
    為了滿足第三方通過API接口獲取克拉克拉數據倉庫中的用戶標籤數據,基於MaxCompute Lightning架構搭建開放接口服務,通過該服務的網關鑑權機制保證了授權訪問和防DDOS攻擊。

image.png

圖九:克拉克拉開放接口結構

4.算法業務
阿里雲機器學習平臺是構建在阿里雲MaxCompute(原ODPS)計算平臺之上,集數據處理、建模、離線預測、在線預測為一體的機器學習平臺。克拉克拉(KilaKila)預測算法業務、推薦業務等相關項目均建立在機器學習平臺基礎上,項目上線快且效果符合預期。

image.png

▲圖九:克拉克拉短視頻推薦業務
image.png

圖十:克拉克拉渠道ROI預測業務
通過阿里雲所提供大數據解決方案,除了解決了克拉克拉所遇到的大數據挑戰,也極大的縮短了克拉克拉(Kilakila)諸多數據項目從想法到落地的研發週期。

Leave a Reply

Your email address will not be published. Required fields are marked *