天天看點

唱吧基于 MaxCompute 的大資料之路

本文作者:馬星顯 唱吧大資料負責人

使用 MaxCompute之前,唱吧使用自建體系來存儲處理各端收集來的日志資料,包括請求通路記錄、埋點資料、伺服器業務資料等。初期這套基于開源元件的體系有力支撐了資料統計、業務報表、風控等業務需求。但随着每天處理資料量的增長,積累的曆史資料越來越多,來自其他部門同僚的需求越來越複雜,自建體系逐漸暴露出了能力上的短闆。同時期,唱吧開始嘗試阿里雲提供的ECS、OSS等雲服務,大資料部門也開始使用 MaxCompute來彌補自建體系的不足。

在内部ELK實作的基礎上,從自建機房向MaxCompute進行資料同步工作是比較簡單的,實踐中我們主要采取兩種方式:一是利用阿裡雲提供的datahub元件,直接對接logstash;二是把待同步資料落地到檔案,然後使用tunnel指令行工具上傳至MaxCompute的對應表中。

唱吧基于 MaxCompute 的大資料之路

資料進入MaxCompute後,我們按照資料的主題和使用場景構造了三層結構:原始資料層ODS、中間資料層MDS、報表資料層DM。ODS層中儲存直接同步的資料,在此基礎上加工整理到的原始表,例如增量同步的原mysql表,經過風控清洗的通路日志表等。MDS層存放原始層資料聚合、抽象加工過的結果,這一層的資料表更可讀、讀取計算時更經濟,一般情況下要求其他部門的同僚使用這一層的資料。DM層是處理理的最終結果,支援QuickBI直接讀取進行報表展示,同時也支援同步回自建機房,供其他業務使用。

目前除了某些對實時要求比較高的場景還使用自建體系外,MaxCompute承擔了唱吧全部的離線計算工作。每天有近千個任務定時運行,處理TB級别的資料,生成上百個資料報表在QuickBI進行展示。可視化的管理理界面和基于SQL的計算方式大大降低了使用門檻,提升了效率。除此之外,推薦和風控業務也都利用了MaxCompute的計算能力,實作了對需求的快速跟進和疊代。MaxCompute雲服務和自建體系的結合,讓我們能充分滿足業務需求,在效率成本和靈活性上取得了很好的平衡。

下一步,對于MaxCompute我們有幾個方向上的計劃:

一是利用機器學習能力,進一步挖掘資料的價值。

二是對那些曆史比較久的冷資料,利用MaxCompute的外表功能,定期轉移至OSS等服務中,保證可讀的基礎上降低成本。

三是評估阿里雲的實時計算服務,作為自建體系的補充。

歡迎加入“MaxCompute開發者社群2群”,點選連結申請加入或掃描二維碼

https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745
唱吧基于 MaxCompute 的大資料之路