QQ音樂大數據架構技術演進


導讀:OLAP(On-Line Analytical Processing),是數據倉庫系統的主要應用形式,幫助分析人員多角度分析數據,挖掘數據價值。本文基於QQ音樂海量大數據實時分析場景,通過QQ音樂與騰訊雲EMR產品深度合作的案例解讀,還原一個不一樣的大數據雲端解決方案。

作者:QQ音樂&騰訊雲EMR

來源:雲加社區(ID:QcloudCommunity)

01 背景介紹

QQ音樂是騰訊音樂旗下一款領先的音樂流媒體產品,平臺打造了“聽、看、玩”的立體泛音樂娛樂生態圈,爲累計註冊數在8億以上的用戶提供多元化音樂生活體驗,暢享平臺上超過3000萬首歌曲的海量曲庫。優質服務的背後,是每天萬億級新增音樂內容和行爲數據,PB數據量級的數據計算服務。


海量的數據意味着更高標準的數據分析業務,對於離線分析的時效、實時與近實時的即席實時交互分析,提出了更高的要求。如何通過用戶行爲以及音樂內容標籤數據,深入洞察用戶需求,來優化泛音樂內容創作分享生態,爲億萬用戶帶來更優質的音樂體驗?是對QQ音樂大數據團隊的巨大挑戰以及機遇。

騰訊雲彈性 MapReduce(EMR),結合雲技術和社區開源技術,提供安全、低成本、高可靠、可彈性伸縮的雲端泛Hadoop服務。EMR助力構建企業的大數據平臺架構,適用於HBase在線業務,數據倉庫,實時流式計算等大數據場景。

QQ音樂大數據團隊基於業務需求,搭建和優化基於ClickHouse的OLAP實時大數據分析平臺,並與騰訊雲EMR團隊深入場景合作,共建大數據雲端解決方案。下文將通過案例解讀,深入解析QQ音樂大數據團隊OLAP系統架構演進之路,不斷髮掘音樂數據背後的價值。

02 大數據分析的挑戰

早些年在傳統離線數倉階段,QQ音樂使用Hive作爲大數據分析的主要工具,對TB至PB級的數據進行分析,但存在着以下的可提升點:

1. 時效性低

對於音樂服務來說,實時下鑽和分析PV、UV,用戶圈層、歌曲的種類、DAU等數據,分析結果的價值取決於時效性。核心日報與統計報表場景下,基於Hive的離線分析僅能滿足T+1的時效,對於實時日報和分析的需求越來越強烈。

2. 易用性低

基於Hive離線數據分析平臺,對於產品、運營、市場人員具有較高的技術門檻,無法滿足自助的實時交互式分析需求;開發在上報和提取分析數據時,無法實時獲取和驗證結果,查詢和分析日誌經常需要幾個小時。

3. 流程效率低

數據分析需求,需由數據分析團隊完成,經過排期、溝通、建模、分析、可視化等流程步驟,所需時間以周計算,落地可能達數週,分析結果不及時,影響和拖慢了決策進度。


爲了應對以上問題,提升流程效率,提高數據分析處理的時效性和易用性,數據的即席分析和數據可視化能力支撐需要優化和提升,讓問題秒級有響應,分析更深入,數據分析更高效。

03 QQ音樂大數據架構技術演進

QQ音樂大數據團隊基於ClickHouse+Superset等基礎組件,結合騰訊雲EMR產品的雲端能力,搭建起高可用、低延遲的實時OLAP分析計算可視化平臺。

集羣日均新增萬億數據,規模達到上萬核CPU,PB級數據量。整體實現秒級的實時數據分析、提取、下鑽、監控數據基礎服務,大大提高了大數據分析與處理的工作效率。

通過OLAP分析平臺,極大降低了探索數據的門檻,做到全民BI,全民數據服務,實現了實時PV、UV、營收、用戶圈層、熱門歌曲等各類指標高效分析,全鏈路數據秒級分析定位,加強數據上報規範,形成一個良好的正循環。

1. ClickHouse介紹

ClickHouse由俄羅斯第一大搜索引擎Yandex發佈,是一個基於列的,面向OLAP的開源輕量級數據庫管理系統,能夠使用SQL查詢實時生成分析數據報告,適合PB數據量級的實時大數據分析。


在場景適用和性能方面,ClickHouse在OLAP的衆多組件中有較爲突出的優勢。

(1)場景適用方面

ClickHouse主要爲OLAP應用場景的數據倉庫,以庫表的方式存儲數據,可簡單、高效地分析數據,結合Superset以可視化的方式輸出分析數據圖表。

(2)性能方面

ClickHouse有着卓越的實時分析能力。以性能表現突出的單表爲例,使用單表100G,3億行數據,集羣規模8核20G*3,簡單的查詢在毫秒級完成,複雜查詢秒級,查詢速度較Presto、SparkSQL提升3-6倍,較Hive提升30-100倍。


對比Presto、Impala、Hawq、Greenplum,ClickHouse以其分佈式計算、多核計算、向量化執行與SIMD、代碼生成技術以及列式存儲等特性,實現了超高速的查詢,凸顯了更優越的性能。 



2. ClickHouse架構系統技術攻克點

面對上萬核集羣規模、PB級的數據量,經過QQ音樂大數據團隊和騰訊雲EMR雙方技術團隊無數次技術架構升級優化,性能優化,逐步形成高可用、高性能、高安全的OLAP計算分析平臺。

(1)基於SSD盤的ZooKeeper

ClickHouse依賴於ZooKeeper實現分佈式系統的協調工作,在ClickHouse併發寫入量較大時,ZooKeeper對元數據存儲處理不及時,會導致ClickHouse副本間同步出現延遲,降低集羣整體性能。

解決方案:採用SSD盤的ZooKeeper大幅提高IO的性能,在表個數小於100,數據量級在TB級別時,也可採用HDD盤,其他情況都建議採用SSD盤。


(2)數據寫入一致性

數據在寫入ClickHouse失敗重試後內容出現重複,導致了不同系統,如Hive離線數倉中分析結果,與ClickHouse集羣中運算結果不一致。


解決方案:基於統一全局的負載均衡調度策略,完成數據失敗後仍然可寫入同一Shard,實現數據冪等寫入,從而保證在ClickHouse中數據一致性。

(3)實時離線數據寫入

ClickHouse數據主要來自實時流水上報數據和離線數據中間分析結果數據,如何在架構中完成上萬億基本數據的高效安全寫入,是一個巨大的挑戰。

解決方案:基於Tube消息隊列,完成統一數據的分發消費,基於上述的一致性策略實現數據冪同步,做到實時和離線數據的高效寫入。 

(4)表分區數優化

部分離線數據倉庫採用按小時落地分區,如果採用原始的小時分區更新同步,會造成ClickHouse中Select查詢打開大量文件及文件描述符,進而導致性能低下。

解決方案:ClickHouse官方也建議,表分區的數量建議不超過10000,上述的數據同步架構完成小時分區轉換爲天分區,同時程序中完成數據冪等消費。


(5)讀/寫分離架構

頻繁的寫動作,會消耗大量CPU/內存/網卡資源,後臺合併線程得不到有效資源,降低Merge Parts速度,MergeTree構建不及時,進而影響讀取效率,導致集羣性能降低。

解決方案:ClickHouse臨時節點預先完成數據分區文件構建,動態加載到線上服務集羣,緩解ClickHouse在大量併發寫場景下的性能問題,實現高效的讀/寫分離架構,具體步驟和架構如下:

  1. 利用K8S的彈性構建部署能力,構建臨時ClickHouse節點,數據寫入該節點完成數據的Merge、排序等構建工作;

  2. 構建完成數據按MergeTree結構關聯至正式業務集羣。

當然對一些小數據量的同步寫入,可採用10000條以上批量的寫入。        

       

(6)跨表查詢本地化

在ClickHouse集羣中跨表進行Select查詢時,採用Global IN/Global Join語句性能較爲低下。分析原因,是在此類操作會生成臨時表,並跨設備同步該表,導致查詢速度慢。

解決方案:採用一致性hash,將相同主鍵數據寫入同一個數據分片,在本地local表完成跨表聯合查詢,數據均來自於本地存儲,從而提高查詢速度。


這種優化方案也有一定的潛在問題,目前ClickHouse尚不提供數據的Reshard能力,當Shard所存儲主鍵數據量持續增加,達到磁盤容量上限需要分拆時,目前只能根據原始數據再次重建CK集羣,有較高的成本。


3. 基於Superset的自助數據分析可視化平臺

Apache Superset(孵化)是一個現代的、企業級的商業智能Web應用程序,爲業務提供處理PB級數據的高性能的OLAP在線數據分析服務,提供豐富的數據可視化集,支持包括ClickHouse、Spark、Hive等多個組件的接口。

QQ音樂大數據團隊結合自身業務特點豐富完善功能,結合騰訊雲EMR雲端彈性能力,深入參與Superset開源共建:

https://github.com/apache/incubator-superset


ClickHouse在實時分析領域擁有諸多優勢,在OLAP分析場景下,搭配在數據可視化領域表現搶眼的Superset組件,在對QQ音樂業務指標概覽以及二維變量分析中,提供豐富的數據可視化集以供數據分析處理。

當前Superset上萬個圖表中,超60%由產品、研發、運營、研究員、財務等非數據人員創建,做到全民數據分析,數據平民化。


04 QQ音樂與騰訊雲EMR共建雲端OLAP

在即席分析以及數據可視化等方面,開源社區版本,有着生態支持豐富、開源保證穩定性、軟件安全性等諸多優勢。但同時,開源版本也存在着技術複雜度高、週期長、組件運維複雜、缺少實際商業化應用的經驗積累等缺點和不足。


騰訊雲EMR支持開源社區版本OLAP,提供成熟數據能力。開箱即用
ClickHouse+Superset組合方案,使用社區的最新穩定版本,同時簡化了繁雜的配置和運維操作,保障集羣高可用與數據安全。


相比直接使用社區開源組件,產品化的ClickHouse+Superset有着諸多的優勢:

  • 快速構建,10分鐘創建上百節點的大數據集羣,避免複雜的配置。

  • 彈性伸縮,10分鐘進行橫向擴展。

  • 自動化基礎運維設施,百餘監控指標覆蓋,異常事件秒級觸達。

  • 專業雲售後團隊7*24小時支持,提高技術抗風險能力。

騰訊雲EMR商業化產品既保留了開源社區組件的優勢,又彌補了存在的不足,是商業化應用的趨勢之選。目前,QQ音樂業務在自建架構的基礎上,配合騰訊雲EMR產品彈性能力、自動化管理,以及業務商業化的持續支持,對PB級數據進行實時OLAP分析,查詢性能優異,廣泛應用在實時分析與查詢的業務場景,管理更輕鬆,更專注業務。


QQ音樂也與EMR其它組件,以及大數據矩陣進行更多合作,結合開源與深度二次開發,以混合架構的模式,貼合業務場景,共同打造大數據生態。在推薦場景下,QQ音樂靈活地選用騰訊EMR產品中的HBase組件集羣,使用多個組件協作,用於支持標籤存儲的頻繁更新與讀取,滿足不同大數據業務場景的需求。

結語

雲端大數據基礎設施產品以其技術開放性、全鏈路覆蓋、靈活性獲得了互聯網企業數據IT團隊的一致認可,越來越多的企業也逐步意識到雲廠商雄厚技術保障所帶來的隱性價值認同。藉助於雲端大數據基礎設施進行以數據驅動的業務創新、運營創新已成爲新一代互聯網企業的業界共識和主流趨勢。


QQ音樂大數據團隊與騰訊雲EMR產品深入探索業務合作,從大數據基礎設施、全鏈路數據工具鏈、領域數據價值應用在內的各個環節,互利共贏,釋放多元數據價值。騰訊雲EMR將持續打磨ClickHouse+Superset,致力於爲更多行業和業務場景提供雲端數據能力。

延伸閱讀ClickHouse原理解析與應用實踐

推薦語:ClickHouse開發團隊負責人及核心貢獻者親自作序推薦,ClickHouse貢獻者和佈道者親自執筆,從核心理念、基礎功能、運行原理以及實踐應用等多個維度,對ClickHouse進行全方位解析。

劃重點????

乾貨直達????

更多精彩????

在公衆號對話框輸入以下關鍵詞

查看更多優質內容!

PPT | 讀書 | 書單 | 硬核 | 乾貨 | 講明白

大數據 | 雲計算 | 數據庫 | Python | 可視化 | 神操作

AI | 人工智能 | 機器學習 | 深度學習 | 神經網絡

5G | 中臺 | 用戶畫像 1024 | 大神 | 數學 | 揭祕

據統計,99%的大咖都完成了這個神操作

????

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