騰訊雲EMR大數據實時OLAP分析案例解析

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

1、背景介紹

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

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

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

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

2、大數據分析的挑戰

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

1. 時效性低

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

2. 易用性低

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

3. 流程效率低

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

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

3、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在大量併發寫場景下的性能問題,實現高效的讀/寫分離架構,具體步驟和架構以下:

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

b)構建完成數據按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%由產品、研發、運營、研究員、財務等非數據人員建立,作到全民數據分析,數據平民化。

4、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,致力於爲更多行業和業務場景提供雲端數據能力。

點擊:https://cloud.tencent.com/product/emr,瞭解騰訊雲EMR更多信息~

相關文章
相關標籤/搜索