久久精品亚洲成a人|亚洲精品中文字幕乱码|男人添女人全身免费视频|久久免费精品国自产拍网站|桃色午夜日韩在线三区精品|91精品国产高清自在线看|亚洲午夜精品无码专区在线观|97超级碰碰碰久久久久app

您的位置:首頁>三文娛 >

天穹SuperSQL如何應(yīng)對數(shù)據(jù)湖場景中的復(fù)雜多維分析

來源:DataFunTalk  

導(dǎo)讀 本文將介紹騰訊自研的大數(shù)據(jù)計算平臺——天穹SuperSQL,以及在應(yīng)對數(shù)據(jù)湖場景中的復(fù)雜多維分析方面的實踐。


【資料圖】

全文目錄:

1.SuperSQL架構(gòu)

2.自適應(yīng)計算引擎

3.實時湖倉融合

4.未來展望

分享嘉賓|程廣旭 騰訊 高級工程師

編輯整理|楊文鑄 哈爾濱理工大學(xué)

出品社區(qū)|DataFun

01

SuperSQL架構(gòu)

首先介紹一下騰訊自研的下一代大數(shù)據(jù)計算平臺SuperSQL的技術(shù)架構(gòu)。

1.SuperSQL的整體架構(gòu)

SuperSQL是騰訊自研的下一代大數(shù)據(jù)自適應(yīng)計算平臺,通過開放融合的架構(gòu)實現(xiàn)了一套代碼,高效解決公有云、私有云、內(nèi)網(wǎng)的任何大數(shù)據(jù)計算場景的問題,將異構(gòu)計算引擎、異構(gòu)存儲服務(wù)、計算引擎的智能化和自動化、SQL的流批一體、算力感知等智能調(diào)度納入到內(nèi)部的系統(tǒng)閉環(huán)當(dāng)中,為用戶提供極簡的、統(tǒng)一的大數(shù)據(jù)計算體驗,用戶能夠從復(fù)雜的底層技術(shù)細(xì)節(jié)當(dāng)中脫離出來,專注于業(yè)務(wù)邏輯的實現(xiàn),像使用數(shù)據(jù)庫一樣來使用大數(shù)據(jù),實現(xiàn)業(yè)務(wù)邏輯和底層大數(shù)據(jù)技術(shù)的解耦。

SuperSQL提供了完整的端到端的大數(shù)據(jù)解決方案,適配公有云、私有云和內(nèi)網(wǎng)等不同的云場景。通過下圖我們可以看到SuperSQL的整個架構(gòu)主要分為四部分,這四部分互相之間不存在耦合關(guān)系,都是獨立存在的:

(1)核心引擎層

核心引擎層是SuperSQL的核心所在,是統(tǒng)一計算的入口和智能決策的中心,對外提供了通用的SQL語法并自動適配計算引擎的不同SQL標(biāo)準(zhǔn),同時匯總來自元數(shù)據(jù)、歷史流水、底層集群狀態(tài)等不同的信息,通過組合算法實現(xiàn)SQL自身語法的優(yōu)化、物化視圖的自主構(gòu)建、引擎的智能選擇等,從而影響到整個計算的生命周期。

(2)計算層

主要根據(jù)每個SQL的特點以及使用場景選擇最佳的計算引擎,從而保證了在不同架構(gòu)下的計算穩(wěn)定性,其中Remote Shuffle Service則提供了統(tǒng)一的數(shù)據(jù)Shuffle服務(wù),實現(xiàn)了計算、執(zhí)行、拓?fù)涞淖赃m應(yīng)。

Spark負(fù)責(zé)ETL、報表類的場景 presto負(fù)責(zé)交互式查詢的分析場景 Hermes是騰訊自研的用于日志檢索、用戶畫像場景的組件 StarRocks負(fù)責(zé)數(shù)據(jù)查詢的場景 PowerFL負(fù)責(zé)數(shù)據(jù)安全場景

(3)資源層

主要整合了云上和云下的資源,能夠?qū)λ械馁Y源進行統(tǒng)一管理,從而為計算提供統(tǒng)一的資源池,通過資源的自適應(yīng)調(diào)整、租戶間資源彈性調(diào)度、集群中資源借調(diào)等手段統(tǒng)籌資源的管理,提升整個資源的使用效率。

(4)數(shù)據(jù)編排層

主要適配了系統(tǒng)的異構(gòu)存儲、透明化的存儲差異、解耦計算和存儲、自主學(xué)習(xí)、數(shù)據(jù)訪問模式、自適應(yīng)緩存(熱點數(shù)據(jù)和元數(shù)據(jù)),從而加速數(shù)據(jù)訪問的性能,提升集群的穩(wěn)定性。

2.SuperSQL的目標(biāo)

(1)SuperSQL整體的目標(biāo)

依托騰訊大數(shù)據(jù)生態(tài),持續(xù)完善自適應(yīng)能力,從而打造完整的大數(shù)據(jù)極速查詢解決方案 實現(xiàn)三網(wǎng)合一的云原生化,解決大型復(fù)雜查詢的等待痛點 持續(xù)探索技術(shù)先進性,構(gòu)建高性能的融合分布式計算框架,實現(xiàn)引擎層的閉環(huán)統(tǒng)一管理

(2)計算融合

跨源:支持訪問不同類型/版本的數(shù)據(jù)源 跨引擎:支持外接多類分布式計算引擎 跨DC:支持跨集群/地域的SQL編排

(3)計算解耦

快速構(gòu)建:不重復(fù)“造輪子“,復(fù)用開源計算引擎 輕量級解耦:不強依賴特定引擎,少做侵入性修改 場景自適應(yīng):根據(jù)SQL特征,智能挑選主流執(zhí)行引擎

3.SuperSQL技術(shù)沙盤

下圖具體展示了SuperSQL 的技術(shù)沙盤。

在整個技術(shù)沙盤的應(yīng)用層提供了多種多樣的接口來適配業(yè)務(wù)的不同使用方式;中間層是SuperSQL的核心能力,包括元數(shù)據(jù)管理、查詢的解析和優(yōu)化(兼容常用引擎的方言等)、智能計算等;最下面一層則是SuperSQL對接的數(shù)據(jù)源,目前SuperSQL已經(jīng)對接了超過17種的數(shù)據(jù)源,從而滿足不同的業(yè)務(wù)訴求。

02

自適應(yīng)計算引擎

第二部分介紹SuperSQL自適應(yīng)計算引擎是如何進行選擇的。

1.SQL兼容:插件式解析模塊,支持多引擎

引擎之間或者數(shù)據(jù)源之間所使用的語法存在一定差異,所以選擇引擎的時候需要對SQL進行轉(zhuǎn)化使其能夠滿足引擎的正確識別并執(zhí)行。SuperSQL作為計算平臺的一個入口能夠有效兼容不同語法之間的差異,從而做到對數(shù)據(jù)語法的自適應(yīng),為整個大數(shù)據(jù)計算平臺奠定了基石。

SQL語法的轉(zhuǎn)化過程主要分為兩部分:SQL的兼容和SQL的轉(zhuǎn)化。

目標(biāo):SQL語法能夠在常用的計算引擎之間進行無感切換 難點:不同SQL語法差異比較大

2.計算引擎自適應(yīng):人工到智能的實踐

通過長期不斷地迭代,從人工選擇不同的計算引擎到實現(xiàn)了智能選擇。智能選擇的主要過程為:SQL通過SuperSQL時,SuperSQL會對SQL進行解析并進入計算引擎的選擇過程;目前的引擎選擇框架采用了先進的RBO+CBO+HBO的組合進行初步的引擎選擇,基于機器學(xué)習(xí)算法再進一步進行優(yōu)化(采用這種方式的原因是希望從人工專家經(jīng)驗平穩(wěn)過渡到基于算法模型的方案)。

引擎選擇規(guī)則:

RBO:根據(jù)SQL類型以及引擎是否支持等維度判斷當(dāng)前SQL適合哪個引擎; CBO:基于SQL復(fù)雜度以及用戶底層計算資源的感知判斷適合提交至哪個引擎; HBO:基于歷史SQL的執(zhí)行情況進一步進行判斷; AI預(yù)測:提取SQL特征,選擇合適引擎。

03

實時湖倉融合

這部分主要介紹騰訊新一代的實時湖倉融合平臺。

1.湖倉一體架構(gòu)

(1)傳統(tǒng)實時湖倉一體架構(gòu)

從下圖可以看出,一般DataSource里的用戶數(shù)據(jù)會通過Flink同步到Iceberg中用于實時讀取或批量查詢。

該方案優(yōu)點:增量讀取,實時性好;相比MQ更穩(wěn)定;

該方案缺點:借用外部查詢引擎,查詢性能一般。

(2)實時湖倉融合架構(gòu)

常見的數(shù)據(jù)湖使用場景主要是四種:實時寫入離線查詢,實時寫入實時查詢,離線寫入離線查詢,以及離線寫入實時查詢。

SuperSQL實時湖倉主要解決了實時寫入實時查詢的場景。

該方案優(yōu)點:數(shù)據(jù)寫入實時性更高,接入簡單;查詢性能更優(yōu);

該方案缺點:相比較于Iceberg等湖格式,支持的能力有所欠缺。

整個架構(gòu)的流程主要是:用戶可以將數(shù)據(jù)導(dǎo)入到MQ中,借助實時數(shù)倉能力(目前能力主要依賴于StarRocks開源引擎)進行實時寫入并構(gòu)建不同層級的數(shù)據(jù)倉庫,在StarRocks中主要存儲熱數(shù)據(jù)(最近n天的數(shù)據(jù)),n天之前的數(shù)據(jù)自動/手動降冷至數(shù)據(jù)湖中,入湖之后主要借助SuperSQL跨源跨引擎能力來實現(xiàn)湖倉數(shù)據(jù)的實時查詢。

2.數(shù)據(jù)入倉

(1)實時/離線數(shù)據(jù)入倉

具體來看,實時/離線數(shù)據(jù)入倉的整體架構(gòu)如下圖。

實時數(shù)據(jù)會通過MQ,或?qū)胫罠link再通過Flink寫入至實時數(shù)倉,然后實時數(shù)倉中數(shù)據(jù)會經(jīng)過t+1或t+n模式降冷至數(shù)據(jù)湖。這種方式的問題是數(shù)據(jù)湖中的數(shù)據(jù)會有一定時間的延遲,即湖倉數(shù)據(jù)可能不一致(部分業(yè)務(wù)會有數(shù)據(jù)湖數(shù)據(jù)批量實時查詢的訴求,因此我們也有一種實現(xiàn)雙寫入的方案,即數(shù)據(jù)通過MQ后,同時寫入數(shù)據(jù)倉庫和數(shù)據(jù)湖中,但雙寫方案對寫入性能會有一定的影響)。

離線數(shù)據(jù)通過內(nèi)部離線調(diào)度平臺的插件,允許用戶通過Hive、Iceberg、Hudi中的數(shù)據(jù)離線同步至數(shù)據(jù)湖中。同時對湖、倉數(shù)據(jù)進行分區(qū)映射。

(2)離線數(shù)據(jù)入倉

離線數(shù)據(jù)的入倉,對于Iceberg數(shù)據(jù)源我們借助了StarRocks中Routine Load的能力。通過Iceberg數(shù)據(jù)組織架構(gòu)圖可以看到,數(shù)據(jù)湖中的數(shù)據(jù)每進來一批之后會生成一個新的metadata file文件,通過最新的S0或S1文件之間的差異比較確認(rèn)增量的數(shù)據(jù)內(nèi)容有哪些,得到增量數(shù)據(jù)后通過StarRocks內(nèi)部FE側(cè)的處理生成不同的task任務(wù),再把這些task任務(wù)提交到StarRocks BE端,從而實現(xiàn)離線數(shù)據(jù)的寫入。

(3)實時數(shù)據(jù)入倉及降冷

對于實時數(shù)據(jù)入倉和降冷也是借助StarRocks中Routine Load的能力把MQ中的數(shù)據(jù)寫入StarRocks;降冷這部分首先會去支持降冷的操作,用戶創(chuàng)建降冷任務(wù),并指定具體表的降冷及降冷至什么位置(例如降冷至Iceberg或Hudi等)。降冷任務(wù)創(chuàng)建后就會儲存到實時數(shù)倉集群中,實時數(shù)倉則會定時輪詢調(diào)度已提交的降冷任務(wù)并進行判斷哪些分區(qū)數(shù)據(jù)需要降冷、哪些分區(qū)數(shù)據(jù)不需要降冷,假如所有的分區(qū)數(shù)據(jù)都不需要降冷,則進入下一次輪詢;假如有分區(qū)數(shù)據(jù)需要降冷則會提交對應(yīng)的降冷任務(wù)至任務(wù)隊列中,后續(xù)再從隊列中取出降冷任務(wù)并真正執(zhí)行,從而實現(xiàn)數(shù)據(jù)降冷。

3.自適應(yīng)融合查詢

降冷后的數(shù)據(jù)和數(shù)據(jù)倉庫的數(shù)據(jù)是可以實現(xiàn)融合查詢的,這種融合查詢是在SuperSQL側(cè)實現(xiàn)的,通過自適應(yīng)判斷哪些數(shù)據(jù)來自于數(shù)據(jù)倉庫、哪些數(shù)據(jù)來自于數(shù)據(jù)湖。

假如SQL查詢指令完全命中熱數(shù)據(jù),則會把該命令下發(fā)至實時數(shù)倉;假如未完全命中熱數(shù)據(jù)或完全命中冷數(shù)據(jù),則會進入自適應(yīng)選擇流程。其中元數(shù)據(jù)的關(guān)聯(lián)就是冷數(shù)據(jù)和熱數(shù)據(jù)哪些表是有關(guān)聯(lián)的以及可能產(chǎn)生的分區(qū)映射,映射關(guān)系的做法是在數(shù)據(jù)湖的表屬性中映射熱數(shù)據(jù)相關(guān)信息。

除湖倉一體架構(gòu)之外,在StarRocks訪問Iceberg的性能方面也做了很多優(yōu)化。以下是主要的優(yōu)化點:

Iceberg源數(shù)據(jù)是緩存在磁盤上的,當(dāng)文件比較多或?qū)挶韴鼍跋?,讀取源數(shù)據(jù)文件可能會成為性能的瓶頸,所以為了緩解集群訪問HDFS帶來的IO開銷,讀取時會自動將源數(shù)據(jù)cache到Alluxio中。整個寫的流程沒有太多的變化,讀流程中會自動判斷Alluxio有沒有cache到最新的源數(shù)據(jù),假如沒有則會在讀取到源數(shù)據(jù)后自動cache到Alluxio中,從而達到性能的提升。

下面是我們基于融合查詢新一代湖倉一體平臺做的性能測試,通過TPC-H數(shù)據(jù)集對比了SR內(nèi)表、使用SR和Presto查詢Iceberg的性能對比,結(jié)果顯示Presto查詢相比于StarRocks較低,SR內(nèi)表查詢性能分別是Presto查詢和SR直接查詢的4-65倍、1-25倍,通過SuperSQL融合查詢預(yù)期可以帶來3倍左右的性能提升。

04

未來展望

首先,后續(xù)會繼續(xù)完善SuperSQL的自適應(yīng)能力,向更智能的方向邁進; 其次,會完善湖倉融合平臺能力來支持更多數(shù)據(jù)湖倉能力,盡可能達到原生Iceberg的性能和能力; 另外,會優(yōu)化計算平臺查詢數(shù)據(jù)湖的性能; 最后,會繼續(xù)優(yōu)化數(shù)據(jù)湖格式,比如增加更多索引等。

今天的分享就到這里,謝謝大家。

關(guān)鍵詞:

最新文章
承德县| 乌兰浩特市| 红原县| 新野县| 泰顺县| 大荔县| 招远市| 平邑县| 石家庄市| 五常市| 海口市| 哈巴河县| 夹江县| 沽源县| 永春县| 大港区| 抚远县| 宁阳县| 抚顺市| 海伦市| 青神县| 龙里县| 五峰| 神木县| 固始县| 无棣县| 通海县| 政和县| 延庆县| 托克逊县| 辉南县| 当涂县| 普安县| 北海市| 三穗县| 南召县| 措美县| 进贤县| 皮山县| 七台河市| 桓仁|