從阿里核心場景看即時數倉的發展趨勢

作者:果貝,阿里雲資深技術專家 ,即時數倉Hologers負責人
2022年1月7日,阿里雲實時數倉Hologres舉行了年度釋出會,在釋出會上,來自阿里的資深技術專家從阿里的核心場景出發,為大家解讀了即時數倉的新發展趨勢“線上化、敏捷化、一站式”。透過本文,我們將會深入解讀即時數倉發展所面臨的問題,以及核心發展趨勢,以幫助大家更好的做產品選型和數倉規劃。
即時數倉是現在大資料領域非常熱門的一個概念(和它同熱度的大概就是湖倉一體了)。經過十多年的發展,大資料已經成為每家公司的標配。傳統上,離線數倉(開源以Hive/Spark為代表,閉源以阿里MaxCompute、Snowflake、AWS Redshift、Google BigQuery等為代表,以及Vertica、Oracle、HANA等傳統IT廠商),流式計算(以Flink/Spark Structured Streaming為代表),資料服務層(HBase、MySQL、ES、Redis等)共同組成了大資料處理的標準架構:Lambda架構。Lambda架構提供了即時資料的服務(serving)能力。但Lambda架構的典型問題是開發複雜、資料冗餘和分析不靈活。
近幾年,以ClickHouse、Apache Doris、阿里Hologres等為代表的即時數倉興起,透過即時寫入明細資料+靈活互動式查詢部分實現了去Lambda架構,在即時性、靈活性、成本、管理和運維等多方面都達到了較好的平衡。

隨著2021年雙11的完美落幕,即時數倉技術在阿里雙11場景也經歷了多年的實踐和發展。從早期的基於不同作業的煙囪式開發,到基於領域分層建模的數倉引入,再到分析服務一體化的新型融合式一站式架構,開發效率逐步提升,資料質量更有保證,也沉澱了更多技術創新,讓我們看到了一些未來數倉開發、應用的可能性和趨勢。

下面我們來聊聊從阿里雙11看到的即時數倉發展的一些趨勢。 

一  即時數倉已經成為業務標配

第一個趨勢是即時數倉已經成為標配。
業務對時效的要求、對靈活性的要求越來越高,從而使得即時資料變為一種剛需。而即時數倉在成本、靈活性上的巨大優勢使得業務優先選擇即時數倉作為即時資料的生產、儲存和使用平臺。在阿里巴巴,Hologres服務了約90%的BU,叢集規模超過了60萬core,並保持100%的增長速度。在這些業務中,有較常見的即時數倉場景,比如:
  1.  數字化運營:這種場景上游對接Flink進行資料流式加工;下游對接BI工具、資料大屏等,實現業務的自助開發和上線。極大提升了開發效率和靈活性,支援所見即所得的開發體驗。 
  2. 網路流量分析、Metrics分析:透過對網路流量、及其他Metrics類資料的即時儲存和監控,可快速預警和定位裝置潛在故障。在萬億級記錄上查詢秒級響應,故障秒級發現。 
  3. 即時物流跟蹤:透過即時數倉實現物流資訊的即時跟蹤,保證物流流轉狀態的即時更新、即時查詢。
在這些相對常見的即時數倉場景外,因為分析服務一體化(Hybrid Serving/Analytics Processing,以下簡稱HSAP)能力(以及與之對應的Hologres高速純即時寫入能力和點查能力),Hologres也被用在了很多非典型的即時數倉場景。例如: 
  1.  對商家的廣告人群圈選:透過Hologres對廣大商家(to B)提供高QPS、低延遲的人群圈選和廣告投放服務。 
  2. 無人車送貨:Hologres承載無人車上商品的訂單、物流等指標資訊,面向B端驛站,即時彙報物流資訊,從而幫助驛站老闆完成智慧化包裹分揀、移動投櫃等任務;面向使用者,再透過系統排程運力,實現”定時上門、送貨到樓”。 
  3.  搜尋推薦中的特徵儲存和樣本儲存:利用Hologres的強大點查能力,實現即時樣本(feature store)、即時特徵(sample store)和即時演算法效果分析。 
  4. 客戶全鏈路體驗:客服服務部門透過在Hologres儲存客戶的相關多渠道資料,實現直接對消費者提供各種明細查詢能力(to C)。

類似的場景還有很多,資料的即時“被看見”,“被使用”成為企業高速發展的原動力。

二  即時數倉支撐線上生產系統

第二個趨勢就是即時數倉越來越成為生產系統的一部分。
傳統上,即時數倉(資料倉庫)是一個非生產系統。因為它主要面對的是內部客戶,所以雖然大屏等重要性很高,但即時數倉本質上並不在生產關鍵鏈路上,也就是說,如果即時數倉不可用了,對客戶的影響並不大。這也是為什麼大部分即時數倉產品在高可用性、資源隔離、災備等能力上和資料庫等系統是有很大差距的。
傳統上對外的服務是透過離線/流式加工+結果點查來提供的,即和使用者互動的關鍵鏈路是結果點查(透過HBase、Redis、MySQL這樣的系統去承載)。這種模式的好處是簡單可靠,但限制也是巨大的,能提供的服務功能非常有限,且不靈活。業務迫切希望能將內部的即時數倉能力以可控的方式開放給外部客戶(to B、to C),並且保持內外兩套系統在資料和邏輯上的一致性。上面列舉的阿里廣告、無人車送貨、客戶全鏈路體驗等場景都是這種to B,甚至to C的案例。
隨著即時數倉作為一個服務對外提供,使用者對服務的併發度、可用性、穩定性都提出了更高的需求。這也是Hologres在過去一年中重點發力的地方。Hologres在過去一年中引入了多副本、熱升級、快速failover、資源隔離、讀寫分離、災備等能力,實現了生產級高可用,並在今年的雙11中得到了很好的應用。舉幾個例子:
  1. 阿里巴巴客戶體驗事業部(Chief Customer Office,以下簡稱CCO)去年是業務上做了雙鏈路寫入和儲存冗餘來保證高可用。今年雙11使用了Hologres原生高可用方案下掉手工雙鏈路,省去備用資料鏈路上即時任務開發、資料比對的人力投入,減少鏈路切換時的資料不一致,整體開發人力成本減少200人日,環比去年降低50%以上;減少了100+用於即時重保的備份鏈路作業,減少計算資源2000CU。 
  2. 阿里巴巴資料產品與技術部(Data Technology,以下簡稱DT)使用Hologres讀寫分離方案,高吞吐寫入和靈活查詢互不干擾;分析查詢QPS增長80%的同時,查詢抖動明顯減少。

我們認為即時數倉的生產系統化是一個必然的趨勢,相信各個即時數倉產品都會逐步加碼這方面的開發投入。 

三  分析服務一體化(HSAP)

第三個趨勢是分析服務的一體化(HSAP)。
Hologres是這方面的首倡者,源頭是阿里集團內的業務對分析服務一體化有強訴求,分析服務一體化最佳實踐首先在阿里內部落地,但我們在業界也看到越來越多的產品和企業在倡導和實踐分析服務一體化。
分析服務一體化(HSAP)可以從幾個層面上去理解:
最基礎的是使用者可以使用一套技術棧(Flink+Hologres)去解決Ad-hoc Query分析(對內)和線上服務(對內、to B、to C)兩個任務,從而降低開發運維成本。傳統上,即時數倉做的是Ad-hoc Query,而lambda架構實現的是線上服務。這兩個在技術棧、資料鏈路、開發運維等都完全不同,但處理的資料來源往往是同一份資料,導致了大量的開發作業冗餘,同時資料的一致性也是大難題。而透過使用統一技術棧同時滿足這兩方面的需求,開發、運維、治理變的簡單。
以阿里CCO的場景為例,資料寫入到Hologres行存表後(行存表寫入吞吐高,主鍵查詢快,更新場景Binlog開銷低),會透過Hologres表的binlog被Flink二次消費加工後,存入Hologres的列存表提供分析(列存對於統計類查詢速度快)。行存表提供線上服務/點查,列存表提供分析能力。
更高層次的HSAP是使用者可以在一個平臺上用一份資料去實現Ad-hoc Query和線上服務兩個任務,同時實現良好的資源隔離和可用性。
例如,今年雙11 DT部門上了Hologres讀寫分離方案(由兩個Hologres例項分別負責即時寫入和即時查詢,但共享一份底層資料儲存),同時有多個讀例項分別負責不同型別的查詢,這樣就可以保證讀寫隔離、分析查詢和服務查詢隔離,且只有一份資料。也就是所謂的One Data,Multi Workload。
分析服務一體化除了上述的好處外,另外一個顯著的優勢是服務上線速度明顯加快。因為一體化後,分析和服務的邊界變的模糊,所以服務的開發和分析差異不大,可以認為服務就是一種簡單、固定pattern的分析。這樣,傳統上服務上線的複雜流程就被大大簡化了。當有緊急需求需要臨時開發,也能馬上就上線,無需繁瑣的流程了。
我們相信分析服務一體化的理念隨著像Hologres這樣的產品的發展,會在更多的場景落地。而這也會反哺像Hologres這樣的HSAP產品,將HSAP的理念、方法論、支援能力在產品中更好的沉澱下來,從而讓更多的使用者更容易的從HSAP中獲益。

四  即時資料治理成為剛需

第四個趨勢是即時資料治理變的越來越重要。
即時資料對於企業來說,有著致命的吸引力。因此,企業會自覺不自覺的逐步加大即時數倉上的投入。而各企業的即時數倉因為即時性的要求,往往沒有實施離線數倉那麼嚴密的方法論和管理體系。因為沒有治理,資料大量冗餘或者不合理,往往會導致成本急劇增大,資料可信度下降。在阿里這樣的超大企業中,這塊的成本就會突顯出來,這已經成為即時數倉的一種剛需。
透過對即時數倉、離線數倉、流式計算、訊息佇列等全鏈路進行資料治理,可以實現資料沒有“法外之地”,從而在節省成本的同時,提高資料的質量,真正將資料變為企業的資產。

五  即時數倉的類資料庫化

第五個趨勢是即時數倉的類資料庫化。
大資料誕生於對傳統資料庫的揚棄,從NoSQL到NewSQL,大資料產品走出了一條獨立於資料庫的路。但就像從NoSQL到NewSQL一樣,大資料產品中的即時數倉也在像資料庫學習,提供了和資料庫更好的相容性,從而讓使用者能以更低的成本使用即時數倉產品。
這包含幾個方面:
  1. 操作SQL化以及和傳統資料庫在協議、語法上的相容性,從而方便開發同學可以用習慣的工具(BI、開發工具等)去對接開發。大資料在這方面的積累還是及不上資料庫幾十年的積累的,相當多的業務同學對於資料庫很熟練,但對於大資料(特別是即時數倉)就感覺不容易上手了。 
  2. 資料模型和語義向傳統資料庫靠攏。例如,主鍵(Primary Key)概念是傳統數倉類產品所缺乏的,操作的原子性數倉產品往往也不能保證,這就限制了很多場景的應用。比方說,Clickhouse缺乏資料庫意義上的主鍵(CK所說的主鍵是另外一個東西,非唯一性約束),所以就不合適處理資料庫CDC同步場景。這兩年,大資料業界可以明顯看到對這塊的增強。最典型的例子是DeltaLake、Iceberge和Hudi等為代表的近即時數倉增加了ACID能力。當然,受制於架構,這種近即時ACID在頻繁更新場景下的效能和延時是有瓶頸的。
在阿里,大量場景需要這種基於主鍵的更新能力,以阿里巴巴內部場景為例: 
  1. 資料庫的即時同步:透過將上游的分庫分表和多個業務庫即時同步(映象)到一個大資料即時數倉中,可以提供對業務資料的強大分析能力,而這就需要很好的處理純即時的高頻UPDATE和DELETE操作。 
  2. Flink 計算產生的UPDATE和DELETE(RETRACTION)操作:例如統計GMV,Flink在結果更新時會生成UPDATE記錄,而在有些場景下會生成RETRACTION記錄(DELETE),這都要求下游系統能很好的處理這兩類事件。 
  3. 風控等業務的計算是由多路作業共同完成的,這些作業共同即時更新一張大寬表(每個作業更新部分欄位),這就要求下游系統能提供基於主鍵的部分更新能力。

傳統上,這樣的業務是由HBase、Redis這樣的NoSQL系統或者MySQL、PostgreSQL等資料庫RDS來承接的。但NoSQL的問題是分析能力普通偏弱,而資料庫問題是寫入效能和規模有限制。

這些業務在大資料處理中普遍存在。但在阿里的挑戰是因為規模的巨大(特別是雙11這樣的場景),對基於主鍵的更新效能和延遲有苛刻的要求。
Hologres從設計之初就考慮了這兩點。Hologres完全相容了PostgreSQL 11的協議、語法、函式等,很多PostgreSQL擴充套件(例如PostGIS)可以直接使用。同時,Hologres提供了完整的主鍵概念和強大的更新能力,並提供了單SQL的ACID。今年雙11,有業務測得了每秒350萬+的即時寫入更新效能。這些能力極大的放寬了即時數倉的應用場景,將傳統由NoSQL和RDS承載的場景改由即時數倉來承載,為使用者提供了更加強大的分析處理工具。 
即時數倉的類資料庫化並不就等價於HTAP資料庫了。HSAP相比於HTAP,在事務能力上是削弱的。因為在服務(serving)場景,並不需要傳統資料庫完整的事務能力。而這種捨棄,帶來的是在即時寫入效能和查詢效能上的極大提升,以及可擴充套件性上的提升(因為不需要全域性事務管理器了)。因此,HSAP相比HTAP也就更加適合大資料場景。

六  即時數倉開發敏捷化

最後一個趨勢是開發方法論上的變化,即時數倉的開發越來越敏捷,以適應分析場景的靈活多變。
過去數倉的開發往往按照經典的方法論,採用ODS->DWD->DWS->ADS逐層開發的方法,層與層之間採用事件驅動,或者微批次的方式排程。分層帶來更好的語義層抽象和資料複用,但也增加了排程的依賴、降低資料的時效性、減少資料靈活分析的敏捷性。
即時數倉驅動了業務決策的即時化,在決策時通常需要豐富的上下文資訊,因此傳統的高度依據業務定製ADS的開發方法受到了較大挑戰,成千上萬的ADS表維護困難,利用率低,更多的業務方希望透過DWS甚至DWD進行多角度資料對比分析,這對查詢引擎的計算效率、排程效率、IO效率都提出了更高的要求。
隨著計算運算元向量化重寫、精細化索引、非同步化執行、多級快取等多種查詢引擎最佳化技術,Hologres的計算力在每個版本都有較大改善。因此我們看到越來越多的使用者採用了敏捷化的開發方式,在計算前置的階段,只做資料質量清理、基本的大表關聯拉寬,建模到DWD、DWS即可,減少建模層次,同時,將靈活查詢在真正分析時在互動式查詢引擎中執行,透過秒級的互動式分析體驗,支撐了資料分析民主化的重要趨勢。

七  總結

阿里巴巴在業界是較早應用即時數倉來處理海量資料的公司。即時數倉在阿里的發展也逐漸走入深水區。無論是生產系統化、分析服務一體化、即時資料治理(平臺化)還是類資料庫化、敏捷化,即時數倉正在隨著業務需求的快速發展而快速迭代,並在雙11這樣的年度大戲中煥發出越來越明亮的光彩,成為業務必不可少的夥伴和助手。
業務驅動技術,資料帶來價值,即時數倉Hologres同阿里巴巴核心業務一起成長一起打磨,從多維複雜OLAP分析到高QPS點查,高效能即時寫入與更新到高可用,為大資料平臺提供統一分析服務出口,滿足一站式即時數倉的儲存、開發、治理、服務全流程全場景。
我們相信,這些即時數倉的趨勢也適用於整個業界,我們會逐步把在阿里雙11中積累的能力在雲上產品中透出,幫助客戶用好即時數倉,共同成長!

限時免費領雲上超級電腦,曬出評測贏萬元豪禮
還在吐槽傳統PC電腦的缺陷?還在糾結如何提升自己的雲上辦公體驗?那你真的OUT了。無影雲電腦——限時免費領取中,隨時隨地盡享4核8G暢快體驗,讓你的辦公效率瞬間快人一步。還在等什麼,趕快領取吧!參與產品測評更有價值數千元的天貓超市卡、無影卡片式雲電腦終端,阿里雲MVP晉升通道等權益等你來拿!點選閱讀原文了解詳情。

相關文章