聞泰科技|揭秘阿里云神龍團隊拿下 TPCx-BB 排名第一的背后技術

聞泰科技|揭秘阿里云神龍團隊拿下 TPCx-BB 排名第一的背后技術

文章圖片

聞泰科技|揭秘阿里云神龍團隊拿下 TPCx-BB 排名第一的背后技術

文章圖片

聞泰科技|揭秘阿里云神龍團隊拿下 TPCx-BB 排名第一的背后技術

文章圖片

聞泰科技|揭秘阿里云神龍團隊拿下 TPCx-BB 排名第一的背后技術

文章圖片

聞泰科技|揭秘阿里云神龍團隊拿下 TPCx-BB 排名第一的背后技術


一 背景介紹 近日 , TPC Benchmark Express-BigBench(簡稱TPCx-BB)公布了最新的世界排名 , 阿里云自主研發的神龍大數據加速引擎獲得了TPCx-BB SF3000排名第一的成績 。
TPCx-BB測試分為性能與性價比兩個維度 。 其中 , 在性能維度 , 在本次排名中 , 阿里云領先第二名高達41.6% , 達到了2187.42 BBQpm , 性價比領先第二名40% , 降低到346.53 USD/BBQpm 。
(TPCx-BB SF3000性能維度排行)
(TPCx-BB SF3000性價比維度排行)
借這個機會跟大家分享一下這個第一背后的技術歷程 。
二 神龍大數據加速引擎MRACC概述 阿里云自研的神龍大數據加速引擎MRACC(Apasara Compute MapReduce Accelerator)是這次取得優異成績的殺手锏 。
在數據處理需求激增的今天 , 許多企業會使用開源Spark、Hadoop組件或HDP、CDH等常用套件 , 自建開源大數據集群 , 處理數據量從TB到PB級 , 集群規模從幾臺到幾千臺 。 MRACC神龍大數據加速引擎 , 針對客戶自建場景 , 依托神龍底座 , 提供常用組件加速能力 , 如Spark、Hadoop、Alluxio等 。
結合阿里云神龍架構的特性 , MRACC進行了軟硬一體化優化 , 形成獨一無二的性能優勢 , 最終 , 使復雜SQL查詢場景性能相比社區版Spark提升2-3倍 , 使用eRDMA加速Spark性能提升30% 。 在神龍大數據加速引擎的加持下 , 企業使用阿里云ECS云服務器運行大數據集群 , 將獲得更高的性能和性價比 。
圖1 MRACC神龍大數據加速引擎架構
三 MRACC-Spark介紹 Spark自從2010年面世 , 到2020年已經經過十年的發展 , 現在已經發展為大數據批計算的首選引擎 。 針對大數據最常用的Spark引擎 , MRACC進行了重點優化 。 具體來說 , 針對大數據任務重IO特性 , MRACC在網絡和存儲方面結合云上的架構優勢進行軟硬件加速 , 包括軟件的SQL引擎優化 , 使用緩存、文件裁剪、索引等優化手段 , 并嘗試將壓縮等運算卸載到異構器件;還使用eRDMA進行網絡加速 , 將shuffle階段的數據交換運行在eRDMA網絡 , 使得延時降低、CPU利用率大幅提升 。
圖2 MRACC-Spark架構
四 Spark SQL引擎優化 從Spark2以后 , Spark SQL DataFrames and Datasets接口逐漸取代基礎RDD API成為Spark的主流編程模型 。 社區對Spark SQL進行了大量投入 , 據統計Spark3.0版本發布將其中接近一半的優化都集中在Spark SQL上 。 使用 SparkSQL 替代 Hive 執行離線任務已成為不少企業的主流選擇 。
針對SQL引擎的anlyzer、optimizer、planner、Query execution幾個階段 , 我們都做了一些優化 。 Spark3.0對SQL引擎進行了大刀闊斧的改造和優化 , 其中AQE和DP機制廣受關注 。 但目前開源Spark的AE機制目前僅支持分區裁剪 , 對于非分區鍵和subquery裁剪不支持 , 我們針對這塊做了優化 , 支持subquery的動態數據裁剪 , 能大幅減少參與計算的數據量 。
在物理計劃執行階段 , 我們支持了window topn排序 , 使得包含limit的sql語句性能大幅提升 , 并支持了parquet rowgroup裁剪、bloom filter join等高級特性 。 SPAKR SQL的CBO機制能較好的提高SQL執行效率 , 但是在cbo階段 , join table過多會導致的cbo搜索開銷暴增 , 我們支持了遺傳算法搜索 , 解決了 join table過多導致的開銷暴增的情況 。 此外 , 還支持了去重下推、join外鍵消除、完整性約束等功能 , 并結合deltalake支持了數據的增刪改操作 。

相關經驗推薦