騰訊雲EMR大資料實時OLAP分析案例解析

騰訊雲+社群發表於2020-06-03

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

一、背景介紹

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

 

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

 

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

 

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

二、大資料分析的挑戰

 

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

 

 

1. 時效性低

 

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

 

2. 易用性低

 

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

 

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%由產品、研發、運營、研究員、財務等非資料人員建立,做到全民資料分析,資料平民化。

 

 

四、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更多資訊~

相關文章