从阿里核心场景看实时数仓的发展趋势
簡(jiǎn)介:隨著2021年雙11的完美落幕,實(shí)時(shí)數(shù)倉(cāng)技術(shù)在阿里雙11場(chǎng)景也經(jīng)歷了多年的實(shí)踐和發(fā)展。從早期的基于不同作業(yè)的煙囪式開發(fā),到基于領(lǐng)域分層建模的數(shù)倉(cāng)引入,再到分析服務(wù)一體化的新型融合式一站式架構(gòu),開發(fā)效率逐步提升,數(shù)據(jù)質(zhì)量更有保證,也沉淀了更多技術(shù)創(chuàng)新,讓我們看到了一些未來數(shù)倉(cāng)開發(fā)、應(yīng)用的可能性和趨勢(shì)。下面我們來聊聊從阿里雙11看到的實(shí)時(shí)數(shù)倉(cāng)發(fā)展的一些趨勢(shì)。
作者 | 梅醬、果貝
來源 | 阿里技術(shù)公眾號(hào)
作者:果貝,阿里云資深技術(shù)專家 ,實(shí)時(shí)數(shù)倉(cāng)Hologres負(fù)責(zé)人
2022年1月7日,阿里云實(shí)時(shí)數(shù)倉(cāng)Hologres舉行了年度發(fā)布會(huì),在發(fā)布會(huì)上,來自阿里的資深技術(shù)專家從阿里的核心場(chǎng)景出發(fā),為大家解讀了實(shí)時(shí)數(shù)倉(cāng)的新發(fā)展趨勢(shì)“在線化、敏捷化、一站式”。通過本文,我們將會(huì)深入解讀實(shí)時(shí)數(shù)倉(cāng)發(fā)展所面臨的問題,以及核心發(fā)展趨勢(shì),以幫助大家更好的做產(chǎn)品選型和數(shù)倉(cāng)規(guī)劃。
實(shí)時(shí)數(shù)倉(cāng)是現(xiàn)在大數(shù)據(jù)領(lǐng)域非常熱門的一個(gè)概念(和它同熱度的大概就是湖倉(cāng)一體了)。經(jīng)過十多年的發(fā)展,大數(shù)據(jù)已經(jīng)成為每家公司的標(biāo)配。傳統(tǒng)上,離線數(shù)倉(cāng)(開源以Hive/Spark為代表,閉源以阿里MaxCompute、Snowflake、AWS Redshift、Google BigQuery等為代表,以及Vertica、Oracle、HANA等傳統(tǒng)IT廠商),流式計(jì)算(以Flink/Spark Structured Streaming為代表),數(shù)據(jù)服務(wù)層(HBase、MySQL、ES、Redis等)共同組成了大數(shù)據(jù)處理的標(biāo)準(zhǔn)架構(gòu):Lambda架構(gòu)。Lambda架構(gòu)提供了實(shí)時(shí)數(shù)據(jù)的服務(wù)(serving)能力。但Lambda架構(gòu)的典型問題是開發(fā)復(fù)雜、數(shù)據(jù)冗余和分析不靈活。
近幾年,以ClickHouse、Apache Doris、阿里Hologres等為代表的實(shí)時(shí)數(shù)倉(cāng)興起,通過實(shí)時(shí)寫入明細(xì)數(shù)據(jù)+靈活交互式查詢部分實(shí)現(xiàn)了去Lambda架構(gòu),在實(shí)時(shí)性、靈活性、成本、管理和運(yùn)維等多方面都達(dá)到了較好的平衡。
隨著2021年雙11的完美落幕,實(shí)時(shí)數(shù)倉(cāng)技術(shù)在阿里雙11場(chǎng)景也經(jīng)歷了多年的實(shí)踐和發(fā)展。從早期的基于不同作業(yè)的煙囪式開發(fā),到基于領(lǐng)域分層建模的數(shù)倉(cāng)引入,再到分析服務(wù)一體化的新型融合式一站式架構(gòu),開發(fā)效率逐步提升,數(shù)據(jù)質(zhì)量更有保證,也沉淀了更多技術(shù)創(chuàng)新,讓我們看到了一些未來數(shù)倉(cāng)開發(fā)、應(yīng)用的可能性和趨勢(shì)。
下面我們來聊聊從阿里雙11看到的實(shí)時(shí)數(shù)倉(cāng)發(fā)展的一些趨勢(shì)。
一 實(shí)時(shí)數(shù)倉(cāng)已經(jīng)成為業(yè)務(wù)標(biāo)配
第一個(gè)趨勢(shì)是實(shí)時(shí)數(shù)倉(cāng)已經(jīng)成為標(biāo)配。
業(yè)務(wù)對(duì)時(shí)效的要求、對(duì)靈活性的要求越來越高,從而使得實(shí)時(shí)數(shù)據(jù)變?yōu)橐环N剛需。而實(shí)時(shí)數(shù)倉(cāng)在成本、靈活性上的巨大優(yōu)勢(shì)使得業(yè)務(wù)優(yōu)先選擇實(shí)時(shí)數(shù)倉(cāng)作為實(shí)時(shí)數(shù)據(jù)的生產(chǎn)、存儲(chǔ)和使用平臺(tái)。在阿里巴巴,Hologres服務(wù)了約90%的BU,集群規(guī)模超過了60萬core,并保持100%的增長(zhǎng)速度。在這些業(yè)務(wù)中,有較常見的實(shí)時(shí)數(shù)倉(cāng)場(chǎng)景,比如:
1、數(shù)字化運(yùn)營(yíng):這種場(chǎng)景上游對(duì)接Flink進(jìn)行數(shù)據(jù)流式加工;下游對(duì)接BI工具、數(shù)據(jù)大屏等,實(shí)現(xiàn)業(yè)務(wù)的自助開發(fā)和上線。極大提升了開發(fā)效率和靈活性,支持所見即所得的開發(fā)體驗(yàn)。
2、網(wǎng)絡(luò)流量分析、Metrics分析:通過對(duì)網(wǎng)絡(luò)流量、及其他Metrics類數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)和監(jiān)控,可快速預(yù)警和定位設(shè)備潛在故障。在萬億級(jí)記錄上查詢秒級(jí)響應(yīng),故障秒級(jí)發(fā)現(xiàn)。
3、實(shí)時(shí)物流跟蹤:通過實(shí)時(shí)數(shù)倉(cāng)實(shí)現(xiàn)物流信息的實(shí)時(shí)跟蹤,保證物流流轉(zhuǎn)狀態(tài)的實(shí)時(shí)更新、實(shí)時(shí)查詢。
在這些相對(duì)常見的實(shí)時(shí)數(shù)倉(cāng)場(chǎng)景外,因?yàn)榉治龇?wù)一體化(Hybrid Serving/Analytics Processing,以下簡(jiǎn)稱HSAP)能力(以及與之對(duì)應(yīng)的Hologres高速純實(shí)時(shí)寫入能力和點(diǎn)查能力),Hologres也被用在了很多非典型的實(shí)時(shí)數(shù)倉(cāng)場(chǎng)景。例如:
4、對(duì)商家的廣告人群圈選:通過Hologres對(duì)廣大商家(to B)提供高QPS、低延遲的人群圈選和廣告投放服務(wù)。
5、無人車送貨:Hologres承載無人車上商品的訂單、物流等指標(biāo)信息,面向B端驛站,實(shí)時(shí)匯報(bào)物流信息,從而幫助驛站老板完成智能化包裹分揀、移動(dòng)投柜等任務(wù);面向用戶,再通過系統(tǒng)調(diào)度運(yùn)力,實(shí)現(xiàn)”定時(shí)上門、送貨到樓”。
6、搜索推薦中的特征存儲(chǔ)和樣本存儲(chǔ):利用Hologres的強(qiáng)大點(diǎn)查能力,實(shí)現(xiàn)實(shí)時(shí)樣本(feature store)、實(shí)時(shí)特征(sample store)和實(shí)時(shí)算法效果分析。
7、客戶全鏈路體驗(yàn):客服服務(wù)部門通過在Hologres存儲(chǔ)客戶的相關(guān)多渠道數(shù)據(jù),實(shí)現(xiàn)直接對(duì)消費(fèi)者提供各種明細(xì)查詢能力(to C)。
…
類似的場(chǎng)景還有很多,數(shù)據(jù)的實(shí)時(shí)“被看見”,“被使用”成為企業(yè)高速發(fā)展的原動(dòng)力。
二 實(shí)時(shí)數(shù)倉(cāng)支撐在線生產(chǎn)系統(tǒng)
第二個(gè)趨勢(shì)就是實(shí)時(shí)數(shù)倉(cāng)越來越成為生產(chǎn)系統(tǒng)的一部分。
傳統(tǒng)上,實(shí)時(shí)數(shù)倉(cāng)(數(shù)據(jù)倉(cāng)庫(kù))是一個(gè)非生產(chǎn)系統(tǒng)。因?yàn)樗饕鎸?duì)的是內(nèi)部客戶,所以雖然大屏等重要性很高,但實(shí)時(shí)數(shù)倉(cāng)本質(zhì)上并不在生產(chǎn)關(guān)鍵鏈路上,也就是說,如果實(shí)時(shí)數(shù)倉(cāng)不可用了,對(duì)客戶的影響并不大。這也是為什么大部分實(shí)時(shí)數(shù)倉(cāng)產(chǎn)品在高可用性、資源隔離、災(zāi)備等能力上和數(shù)據(jù)庫(kù)等系統(tǒng)是有很大差距的。
傳統(tǒng)上對(duì)外的服務(wù)是通過離線/流式加工+結(jié)果點(diǎn)查來提供的,即和用戶交互的關(guān)鍵鏈路是結(jié)果點(diǎn)查(通過HBase、Redis、MySQL這樣的系統(tǒng)去承載)。這種模式的好處是簡(jiǎn)單可靠,但限制也是巨大的,能提供的服務(wù)功能非常有限,且不靈活。業(yè)務(wù)迫切希望能將內(nèi)部的實(shí)時(shí)數(shù)倉(cāng)能力以可控的方式開放給外部客戶(to B、to C),并且保持內(nèi)外兩套系統(tǒng)在數(shù)據(jù)和邏輯上的一致性。上面列舉的阿里廣告、無人車送貨、客戶全鏈路體驗(yàn)等場(chǎng)景都是這種to B,甚至to C的案例。
隨著實(shí)時(shí)數(shù)倉(cāng)作為一個(gè)服務(wù)對(duì)外提供,用戶對(duì)服務(wù)的并發(fā)度、可用性、穩(wěn)定性都提出了更高的需求。這也是Hologres在過去一年中重點(diǎn)發(fā)力的地方。Hologres在過去一年中引入了多副本、熱升級(jí)、快速failover、資源隔離、讀寫分離、災(zāi)備等能力,實(shí)現(xiàn)了生產(chǎn)級(jí)高可用,并在今年的雙11中得到了很好的應(yīng)用。舉幾個(gè)例子:
阿里巴巴客戶體驗(yàn)事業(yè)部(Chief Customer Office,以下簡(jiǎn)稱CCO)去年是業(yè)務(wù)上做了雙鏈路寫入和存儲(chǔ)冗余來保證高可用。今年雙11使用了Hologres原生高可用方案下掉手工雙鏈路,省去備用數(shù)據(jù)鏈路上實(shí)時(shí)任務(wù)開發(fā)、數(shù)據(jù)比對(duì)的人力投入,減少鏈路切換時(shí)的數(shù)據(jù)不一致,整體開發(fā)人力成本減少200人日,環(huán)比去年降低50%以上;減少了100+用于實(shí)時(shí)重保的備份鏈路作業(yè),減少計(jì)算資源2000CU。
三 分析服務(wù)一體化(HSAP)
第三個(gè)趨勢(shì)是分析服務(wù)的一體化(HSAP)。
Hologres是這方面的首倡者,源頭是阿里集團(tuán)內(nèi)的業(yè)務(wù)對(duì)分析服務(wù)一體化有強(qiáng)訴求,分析服務(wù)一體化最佳實(shí)踐首先在阿里內(nèi)部落地,但我們?cè)跇I(yè)界也看到越來越多的產(chǎn)品和企業(yè)在倡導(dǎo)和實(shí)踐分析服務(wù)一體化。
分析服務(wù)一體化(HSAP)可以從幾個(gè)層面上去理解:
最基礎(chǔ)的是用戶可以使用一套技術(shù)棧(Flink+Hologres)去解決Ad-hoc Query分析(對(duì)內(nèi))和線上服務(wù)(對(duì)內(nèi)、to B、to C)兩個(gè)任務(wù),從而降低開發(fā)運(yùn)維成本。傳統(tǒng)上,實(shí)時(shí)數(shù)倉(cāng)做的是Ad-hoc Query,而lambda架構(gòu)實(shí)現(xiàn)的是線上服務(wù)。這兩個(gè)在技術(shù)棧、數(shù)據(jù)鏈路、開發(fā)運(yùn)維等都完全不同,但處理的數(shù)據(jù)來源往往是同一份數(shù)據(jù),導(dǎo)致了大量的開發(fā)作業(yè)冗余,同時(shí)數(shù)據(jù)的一致性也是大難題。而通過使用統(tǒng)一技術(shù)棧同時(shí)滿足這兩方面的需求,開發(fā)、運(yùn)維、治理變的簡(jiǎn)單。
以阿里CCO的場(chǎng)景為例,數(shù)據(jù)寫入到Hologres行存表后(行存表寫入吞吐高,主鍵查詢快,更新場(chǎng)景Binlog開銷低),會(huì)通過Hologres表的binlog被Flink二次消費(fèi)加工后,存入Hologres的列存表提供分析(列存對(duì)于統(tǒng)計(jì)類查詢速度快)。行存表提供線上服務(wù)/點(diǎn)查,列存表提供分析能力。
更高層次的HSAP是用戶可以在一個(gè)平臺(tái)上用一份數(shù)據(jù)去實(shí)現(xiàn)Ad-hoc Query和線上服務(wù)兩個(gè)任務(wù),同時(shí)實(shí)現(xiàn)良好的資源隔離和可用性。
例如,今年雙11 DT部門上了Hologres讀寫分離方案(由兩個(gè)Hologres實(shí)例分別負(fù)責(zé)實(shí)時(shí)寫入和實(shí)時(shí)查詢,但共享一份底層數(shù)據(jù)存儲(chǔ)),同時(shí)有多個(gè)讀實(shí)例分別負(fù)責(zé)不同類型的查詢,這樣就可以保證讀寫隔離、分析查詢和服務(wù)查詢隔離,且只有一份數(shù)據(jù)。也就是所謂的One Data,Multi Workload。
分析服務(wù)一體化除了上述的好處外,另外一個(gè)顯著的優(yōu)勢(shì)是服務(wù)上線速度明顯加快。因?yàn)橐惑w化后,分析和服務(wù)的邊界變的模糊,所以服務(wù)的開發(fā)和分析差異不大,可以認(rèn)為服務(wù)就是一種簡(jiǎn)單、固定pattern的分析。這樣,傳統(tǒng)上服務(wù)上線的復(fù)雜流程就被大大簡(jiǎn)化了。當(dāng)有緊急需求需要臨時(shí)開發(fā),也能馬上就上線,無需繁瑣的流程了。
我們相信分析服務(wù)一體化的理念隨著像Hologres這樣的產(chǎn)品的發(fā)展,會(huì)在更多的場(chǎng)景落地。而這也會(huì)反哺像Hologres這樣的HSAP產(chǎn)品,將HSAP的理念、方法論、支持能力在產(chǎn)品中更好的沉淀下來,從而讓更多的用戶更容易的從HSAP中獲益。
四 實(shí)時(shí)數(shù)據(jù)治理成為剛需
第四個(gè)趨勢(shì)是實(shí)時(shí)數(shù)據(jù)治理變的越來越重要。
實(shí)時(shí)數(shù)據(jù)對(duì)于企業(yè)來說,有著致命的吸引力。因此,企業(yè)會(huì)自覺不自覺的逐步加大實(shí)時(shí)數(shù)倉(cāng)上的投入。而各企業(yè)的實(shí)時(shí)數(shù)倉(cāng)因?yàn)閷?shí)時(shí)性的要求,往往沒有實(shí)施離線數(shù)倉(cāng)那么嚴(yán)密的方法論和管理體系。因?yàn)闆]有治理,數(shù)據(jù)大量冗余或者不合理,往往會(huì)導(dǎo)致成本急劇增大,數(shù)據(jù)可信度下降。在阿里這樣的超大企業(yè)中,這塊的成本就會(huì)突顯出來,這已經(jīng)成為實(shí)時(shí)數(shù)倉(cāng)的一種剛需。
通過對(duì)實(shí)時(shí)數(shù)倉(cāng)、離線數(shù)倉(cāng)、流式計(jì)算、消息隊(duì)列等全鏈路進(jìn)行數(shù)據(jù)治理,可以實(shí)現(xiàn)數(shù)據(jù)沒有“法外之地”,從而在節(jié)省成本的同時(shí),提高數(shù)據(jù)的質(zhì)量,真正將數(shù)據(jù)變?yōu)槠髽I(yè)的資產(chǎn)。
五 實(shí)時(shí)數(shù)倉(cāng)的類數(shù)據(jù)庫(kù)化
第五個(gè)趨勢(shì)是實(shí)時(shí)數(shù)倉(cāng)的類數(shù)據(jù)庫(kù)化。
大數(shù)據(jù)誕生于對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)的揚(yáng)棄,從NoSQL到NewSQL,大數(shù)據(jù)產(chǎn)品走出了一條獨(dú)立于數(shù)據(jù)庫(kù)的路。但就像從NoSQL到NewSQL一樣,大數(shù)據(jù)產(chǎn)品中的實(shí)時(shí)數(shù)倉(cāng)也在像數(shù)據(jù)庫(kù)學(xué)習(xí),提供了和數(shù)據(jù)庫(kù)更好的兼容性,從而讓用戶能以更低的成本使用實(shí)時(shí)數(shù)倉(cāng)產(chǎn)品。
這包含幾個(gè)方面:
在阿里,大量場(chǎng)景需要這種基于主鍵的更新能力,以阿里巴巴內(nèi)部場(chǎng)景為例:
傳統(tǒng)上,這樣的業(yè)務(wù)是由HBase、Redis這樣的NoSQL系統(tǒng)或者M(jìn)ySQL、PostgreSQL等數(shù)據(jù)庫(kù)RDS來承接的。但NoSQL的問題是分析能力普通偏弱,而數(shù)據(jù)庫(kù)問題是寫入性能和規(guī)模有限制。
這些業(yè)務(wù)在大數(shù)據(jù)處理中普遍存在。但在阿里的挑戰(zhàn)是因?yàn)橐?guī)模的巨大(特別是雙11這樣的場(chǎng)景),對(duì)基于主鍵的更新性能和延遲有苛刻的要求。
Hologres從設(shè)計(jì)之初就考慮了這兩點(diǎn)。Hologres完全兼容了PostgreSQL 11的協(xié)議、語(yǔ)法、函數(shù)等,很多PostgreSQL擴(kuò)展(例如PostGIS)可以直接使用。同時(shí),Hologres提供了完整的主鍵概念和強(qiáng)大的更新能力,并提供了單SQL的ACID。今年雙11,有業(yè)務(wù)測(cè)得了每秒350萬+的實(shí)時(shí)寫入更新性能。這些能力極大的放寬了實(shí)時(shí)數(shù)倉(cāng)的應(yīng)用場(chǎng)景,將傳統(tǒng)由NoSQL和RDS承載的場(chǎng)景改由實(shí)時(shí)數(shù)倉(cāng)來承載,為用戶提供了更加強(qiáng)大的分析處理工具。
實(shí)時(shí)數(shù)倉(cāng)的類數(shù)據(jù)庫(kù)化并不就等價(jià)于HTAP數(shù)據(jù)庫(kù)了。HSAP相比于HTAP,在事務(wù)能力上是削弱的。因?yàn)樵诜?wù)(serving)場(chǎng)景,并不需要傳統(tǒng)數(shù)據(jù)庫(kù)完整的事務(wù)能力。而這種舍棄,帶來的是在實(shí)時(shí)寫入性能和查詢性能上的極大提升,以及可擴(kuò)展性上的提升(因?yàn)椴恍枰质聞?wù)管理器了)。因此,HSAP相比HTAP也就更加適合大數(shù)據(jù)場(chǎng)景。
六 實(shí)時(shí)數(shù)倉(cāng)開發(fā)敏捷化
最后一個(gè)趨勢(shì)是開發(fā)方法論上的變化,實(shí)時(shí)數(shù)倉(cāng)的開發(fā)越來越敏捷,以適應(yīng)分析場(chǎng)景的靈活多變。
過去數(shù)倉(cāng)的開發(fā)往往按照經(jīng)典的方法論,采用ODS->DWD->DWS->ADS逐層開發(fā)的方法,層與層之間采用事件驅(qū)動(dòng),或者微批次的方式調(diào)度。分層帶來更好的語(yǔ)義層抽象和數(shù)據(jù)復(fù)用,但也增加了調(diào)度的依賴、降低數(shù)據(jù)的時(shí)效性、減少數(shù)據(jù)靈活分析的敏捷性。
實(shí)時(shí)數(shù)倉(cāng)驅(qū)動(dòng)了業(yè)務(wù)決策的實(shí)時(shí)化,在決策時(shí)通常需要豐富的上下文信息,因此傳統(tǒng)的高度依據(jù)業(yè)務(wù)定制ADS的開發(fā)方法受到了較大挑戰(zhàn),成千上萬的ADS表維護(hù)困難,利用率低,更多的業(yè)務(wù)方希望通過DWS甚至DWD進(jìn)行多角度數(shù)據(jù)對(duì)比分析,這對(duì)查詢引擎的計(jì)算效率、調(diào)度效率、IO效率都提出了更高的要求。
隨著計(jì)算算子向量化重寫、精細(xì)化索引、異步化執(zhí)行、多級(jí)緩存等多種查詢引擎優(yōu)化技術(shù),Hologres的計(jì)算力在每個(gè)版本都有較大改善。因此我們看到越來越多的用戶采用了敏捷化的開發(fā)方式,在計(jì)算前置的階段,只做數(shù)據(jù)質(zhì)量清理、基本的大表關(guān)聯(lián)拉寬,建模到DWD、DWS即可,減少建模層次,同時(shí),將靈活查詢?cè)谡嬲治鰰r(shí)在交互式查詢引擎中執(zhí)行,通過秒級(jí)的交互式分析體驗(yàn),支撐了數(shù)據(jù)分析民主化的重要趨勢(shì)。
七 總結(jié)
阿里巴巴在業(yè)界是較早應(yīng)用實(shí)時(shí)數(shù)倉(cāng)來處理海量數(shù)據(jù)的公司。實(shí)時(shí)數(shù)倉(cāng)在阿里的發(fā)展也逐漸走入深水區(qū)。無論是生產(chǎn)系統(tǒng)化、分析服務(wù)一體化、實(shí)時(shí)數(shù)據(jù)治理(平臺(tái)化)還是類數(shù)據(jù)庫(kù)化、敏捷化,實(shí)時(shí)數(shù)倉(cāng)正在隨著業(yè)務(wù)需求的快速發(fā)展而快速迭代,并在雙11這樣的年度大戲中煥發(fā)出越來越明亮的光彩,成為業(yè)務(wù)必不可少的伙伴和助手。
業(yè)務(wù)驅(qū)動(dòng)技術(shù),數(shù)據(jù)帶來價(jià)值,實(shí)時(shí)數(shù)倉(cāng)Hologres同阿里巴巴核心業(yè)務(wù)一起成長(zhǎng)一起打磨,從多維復(fù)雜OLAP分析到高QPS點(diǎn)查,高性能實(shí)時(shí)寫入與更新到高可用,為大數(shù)據(jù)平臺(tái)提供統(tǒng)一分析服務(wù)出口,滿足一站式實(shí)時(shí)數(shù)倉(cāng)的存儲(chǔ)、開發(fā)、治理、服務(wù)全流程全場(chǎng)景。
我們相信,這些實(shí)時(shí)數(shù)倉(cāng)的趨勢(shì)也適用于整個(gè)業(yè)界,我們會(huì)逐步把在阿里雙11中積累的能力在云上產(chǎn)品中透出,幫助客戶用好實(shí)時(shí)數(shù)倉(cāng),共同成長(zhǎng)!
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。?
總結(jié)
以上是生活随笔為你收集整理的从阿里核心场景看实时数仓的发展趋势的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flow vs Jenkins 实操对比
- 下一篇: Alibaba Cloud Toolki