天天看點

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

點選免費下載下傳

《實時數倉技術入門一本通》>>>

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

也可在PC端打開

https://developer.aliyun.com/topic/download?id=961

下載下傳

一、傳統資料倉庫

目前來說,大資料相關的業務場景一般有實時大屏、實時BI報表、使用者畫像和監控預警等,如下圖所示。

  • 實時大屏業務,一般用在公司上司做決策的輔助工具,在對外展示,比如實時成交額等場景也會經常用到,是一種展示公司實力的方式。
  • 實時BI報表是營運和産品經理經常用到的一個業務。
  • 使用者畫像常用在廣告推薦場景中,通過更詳細的算法給使用者貼上标簽,使得推薦算法更加有針對性,更加有效。
  • 預警監控,比如對網站、APP進行流量監控,在達到一定門檻值的時候可以進行報警。
Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

對于上面這些大資料業務場景,在很早之前業界就開始通過資料倉庫的建設來滿足這些場景的需求,比較傳統的是如下圖所示的離線資料倉庫,其大緻流程就是:首先,将各類資料收集起來;然後經過ETL處理,再經過層層模組化對資料進行聚合、篩選等處理;最後在需要的時候通過應用層的工具對資料進行展現,或者生成報表。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

上面這種方式雖然可以對接多種資料源,但是存在一些很明顯的痛點:

  • ETL邏輯複雜,存儲、時間成本過高;
  • 資料處理鍊路非常長;
  • 無法支援實時/近實時的資料,隻能處理T+1的資料。

二、Lambda架構 

随着實時計算技術的興起,出現了Lambda架構。Lambda架構的原理如下圖所示,其思路其實是相當于在傳統離線數倉的基礎上再加上一個處理實時資料的層,然後将離線數倉和實時鍊路産生的資料在Serving層進行Merge,以此來對離線産生的資料和實時産生的資料進行查詢。

從2011年至今,Lambda架構被多數網際網路公司所采納,也确實解決了一些問題,但是随着資料量的增大、應用複雜度的提升,其問題也逐漸凸顯,主要有:

  • 由多種引擎和系統組合而成,開發和維護成本高,學習成本高;
  • 資料在不同的View中存儲多份,空間浪費,資料一緻性的問題難以解決;
  • 從使用上來說,Batch,Streaming以及Merge Query等處理過程中均使用不同的language,使用起來并不容易;
  • 學習成本非常高,增大了應用成本。
Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

下圖是阿裡巴巴在2011年到2016年間沉澱下來的一套實時數倉架構,其本質上也是Lambda架構,然而随着業務量的增長,随着資料的增長,關系複雜度越來越大,成本急劇增加,上面講到的問題,在阿裡内部也都遇到了,是以,我們迫切的需要一種更優雅的方案去解決類似的問題。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

三、HSAP:分析、服務一體化

基于上述背景,我們提出了HSAP解決方案,HSAP是指Hybrid serving and analytical processing,我們的理念是能夠支援這種很高QPS的Serverless場景的查詢寫入,并且将複雜的分析場景在一套體系裡面完成。 那麼其核心是什麼呢?首先,要有一套非常強大的存儲,能夠把實時的資料和離線的資料存儲進來,實作資料的通存,同時還要有一種高效的查詢服務,能夠支援高QPS的查詢,支援複雜的分析以及聯邦查詢和分析,這樣的話就可以把離線資料和實時資料都導入到系統裡去,然後将前端的資料應用,比如BI報表和一些線上服務,對接到系統中去。如此,上面提到的架構複雜的問題,其實就可以迎刃而解。我們把這樣的設計理念叫做HSAP設計理念。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

四、Hologres簡介

有了上面HSAP的設計理念,我們要去做相應的産品來實作這種理念,于是有了Hologres。Hologres這個詞是holographic和Postgres的組合,Postgres指的是相容PostgreSQL生态,holographic指的是全息,也就是全部資訊,我們希望通過Hologres對資料進行全息的分析,并且能夠相容PostgreSQL生态。

用一句話來總結,Hologres就是基于HSAP理念,相容PostgreSQL生态、支援MaxCompute資料直接查詢,支援實時寫入實時查詢,實時離線聯邦分析,低成本、高時效、快速構築企業實時資料倉庫,其架構圖如下所示。

整體來看,其架構非常簡單,是存儲計算分離的架構,資料全部存在一個分布式檔案系統裡面,在阿裡内部指的是盤古分布式檔案系統;服務節點叫做Backend,真正去接收資料,存儲和查詢,并且能夠支援資料的計算;Frontend接收路由分發過來的SQL,然後生成真正的實體執行計劃,釋出到Backend做分布式的執行;在接入端由LBS來做相應的負載均衡任務。下圖中黃色部分均部署在容器中,整個分布式系統可以做到高度容錯。同時,因為相容PostgreSQL生态,是以一些開源或者商業化的BI工具,或者WebIDE可以直接跟Hologres進行對接。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

Hologres有着強大的性能,主要包括:

 1)統一存儲

Hologres能夠滿足多種場景中的資料存儲方式,支援Point Query(Hbase場景)、Ad-hoc Query(Durid場景)和OLAP Query(Impala場景)等。

2)以實時分析為中心設計

Hologres的設計理念就是為了快,支援壓秒級的資料實時分析,極速查詢響應,還支援實時寫入、批量資料導入,擁有超高導入性能。

3)存儲計算分離

Hologres采用存儲計算分離架構,使用者可以根據需求進行彈性擴縮容,如果存儲用的比較多可以多買存儲,CPU用的比較多可以多買CPU。另外,Hologres支援異構資料源互動分析以及離線資料和實時資料的聯邦查詢。Hologres已經和MaxCompute無縫打通,能夠直接在Hologres中對MaxCompute表進行查詢。

4)PG生态

Hologres相容PostgreSQL生态,能夠與PG開發工具、BI工具進行對接,同時在阿裡雲提供了一套原生的開發平台,能夠在WebIDE中進行SQL的開發,并且支援任務的排程。

(一)存儲計算分離

在傳統的分布式系統,尤其是分布式存儲中,常用的架構有如下三種。

其中Shared Disk/Storage就是在存儲叢集上挂載了很多盤,每個計算節點都可以通路這些盤;

Shared Nothing架構就是每個計算節點自己挂載存儲,節點之間可以通信,但是各個節點之間的盤不共享,存在資源浪費的情況;

Storage Disaggregation就是相當于把存儲叢集看做一個大的磁盤,每個計算節點都可以通路,且每個計算節點都有一定的緩存空間,可以對緩存資料進行通路,也無需關心存儲叢集的管理,這種存儲計算分離的架構便于靈活擴容,能夠有效節省資源,Hologres就是采用的這種架構。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

(二)流批統一的存儲

Hologres定位是能夠做離線資料和實時資料的存儲。對于典型的Lambda架構,是将實時資料通過實時資料的鍊路寫入到實時資料存儲中,離線資料通過離線資料的鍊路寫入到離線存儲中,然後将不同的Query放到不同的存儲中,再做一個Merge。對于Hologres,如下圖所示,資料收集之後可以走不同的處理鍊路,但是處理完成之後的結果都可以寫入Hologres中,這樣就解決了資料的一緻性問題,也不需要去區分離線表和實時表,降低了複雜度,也大大降低了使用者的學習成本。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

Hologres底層支援行存儲和列存儲兩種檔案格式,對于兩者的處理也有略微不同,具體如下圖所示。資料寫入的時候先寫log,log是存儲在分布式檔案系統中的,保證整個服務的資料不會丢失,因為即便伺服器挂掉也可以從分布式系統中恢複。Log寫完之後再寫MemTable,就是記憶體表,這樣子才認為是資料寫入成功。MemTable有一定的大小,寫滿了之後會将其中的資料逐漸flush到檔案中,檔案是存儲在分布式系統中的。而對于行存儲和列存儲的差別就在Flash到檔案的這個過程中,這個過程會将行存表flush成行存儲的檔案,列存表會Flash成列存檔案。在Flash的過程中會産生很多小檔案,背景會将這些小檔案合并成一個大檔案,這裡也會有所不同,大家可以自行查閱文檔了解。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

(三)極緻查詢性能

如果希望得到一個快速的系統,除了高性能的存儲,更少不了高性能的查詢。Hologres其自身有着極緻的查詢性能,主要包括:

  • 同時支援行寸列存;
  • 向量化等執行層優化;
  • 高并發充分利用計算資源;
  • 純C++實作保證穩定的低延遲;
  • 優化的排程保證SLA;
  • 基于成本的優化器,針對存儲特點高度優化。
Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

總得來說,Hologres的技術亮點包括雲原生、統一存儲和極緻性能,具體的細節大家可以參考

http://www.vldb.org/pvldb/vol13/p3272-jiang.pdf

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

五、Hologres典型應用場景

從Hologres的設計理念來看,其典型的應用場景主要有以下三類:

(一)離線資料查詢加速場景

這種場景下,就是将以前在離線系統裡面的資料和查詢通過Hologres來進行加速,來達到量級提升的加速效果。通過Hologres,對離線資料秒級互動式查詢響應,無需額外ETL工作,便捷地把冷資料轉換成易于了解的分析結果,提升企業決策效率,降低時間成本。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

(二)實時數倉場景

在下圖所示場景中,實時數倉通過搭建使用者洞察體系,實時監測平台使用者情況,并從不同視角對使用者進行實時診斷,進而采取針對性的使用者營運政策,進而達到精細化使用者營運目的, 助力實時精細化營運。這種場景下,離線資料和實時資料都可以寫入到Hologres中,不需要再通過Lambda架構做多個系統中資料的Merge,減少異質性,降低學習成本。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

(三)實時離線聯邦計算場景

如下圖所示場景,基于實時計算引擎RealtimeCompute、離線數倉MaxCompute和互動式分析,從商業邏輯出發,實作離線資料分析實時化,實時離線聯合分析, 構築實時全鍊路精細化營運。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

六、典型客戶案例

下圖所示的是阿裡資料業務基于Hologres的架構演進,從下圖(左)可以看出,在沒有Hologres之前,整個資料鍊路以及架構非常的複雜,比如圖中所示的5條紅線代表的5個鍊路;在有了Hologres之後,整個資料鍊路就變得清晰明了,資料進入系統之後通過Flink做實時的ETL,然後直接寫入到Hologres中,之後可以通過Hologres進行歸檔、曆史資料的加速等,資料服務也非常簡單,點查詢、分析查詢等操作都可以通過Hologres來完成,整個鍊路就變的非常簡單,大大降低了架構複雜度,降低了成本。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

下面三張圖展示的分别是Hologres在基于實時分析引擎搜尋推薦實時分析和算法應用、基于實時分析引擎行業精細化營運、基于實時分析引擎建構安全風控系統實時分析場景中的應用。

(1)基于實時分析引擎搜尋推薦實時分析和算法應用

本案例是阿裡巴巴的一個實時搜尋推薦的場景,其特點是資料量相當大,單日資料達到了PB級别,且寫入資料量也非常大,QPS也非常高。該場景對資料的靈活性要求非常高,分析場景多樣化,在應用了Hologres之後,可以将原來衆多的業務資料通過實時ETL導入Hologres中(離線資料通過離線ETL導入離線數倉再加載到Hologres中),然後再通過JDBC查詢進行資料的應用,比如分析報表、實時大屏等。通過Hologres的引入,開發效率大大提升,且成本降低了一半,整個業務系統的性能也得到了很大的提升,資料生産到消費端到端秒級實時,互動式查詢毫米級傳回。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

(2)基于實時分析引擎行業精細化營運

該案例針對的是行業精細化營運的場景,使用對象一般是營運小二或者商家。這種場景下,通過将業務資料資料通過ETL導入到Hologres中,然後去做多元的篩選,提供給使用者分析報表或者進行實時大屏的展現,解決了之前各種OLAP産品UV計算性能差,使用Blink實時作業計算UV成本高、業務靈活性差等痛點,實作了UV計算的秒級響應。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

(3)基于實時分析引擎建構安全風控系統實時分析

本案例是一個風控場景,通過将實時、離線的資料寫入到Hologres中,加速查詢的過程,最終産生相應的分析報表或者實時預警的規則,通過Hologres的引入,節約了大量成本,大大降低了學習成本,且與BI工具可以無縫對接。

Hologres産品介紹與技術揭秘一、傳統資料倉庫二、Lambda架構 三、HSAP:分析、服務一體化四、Hologres簡介五、Hologres典型應用場景六、典型客戶案例

上面三個場景各有各的業務特點,也有各自的痛點問題,通過Hologres可以針對性的解決所面臨的問題,達到降低成本,節約資源的效果。

目前,Hologres已經在阿裡内部衆多場景得到應用來解決面臨的問題,并且Hologres也已經完成了商業化,歡迎大家使用,希望能夠給雲上的客戶帶來業務上的實質性幫助。

繼續閱讀