天天看點

實時數倉Hologres新一代彈性計算組執行個體技術揭秘

作者:阿裡雲Hologres

作者:王奇(花名慧青) 阿裡雲Hologres研發

随着實時數倉在業務生産系統的普及,資源彈性、資源隔離等保障業務穩定性方面的技術需求開始變得越來越迫切。Hologres在保障業務方面持續優化核心技術競争力,過去一年中,Hologres創新提出并實作了新一代彈性計算組執行個體,旨在通過更強的隔離和彈性能力,進一步提高業務系統的穩定性。Hologres彈性計算組在2022年雙11也成功落地阿裡衆多核心業務場景,比如阿裡巴巴CCO客服體驗部,助力CCO在大促場景中實作更加平穩的客服排程和問題處理。

通過本文,我們将會詳細介紹Hologres彈性計算組執行個體的實作原理,助力更多業務進一步提升企業級資源隔離和彈性能力。

大資料面臨資源、成本、隔離、彈性的綜合挑戰

在業務發展初期,資料量和并發通路量較小的情況下,利用傳統的實時數倉可以輕松滿足各類業務資料的分析。随着業務的極速發展,業務複雜度、資料量、并發通路量逐漸增加,實時數倉技術開始被越來越多的業務使用,并逐漸在生産業務中落地。于此同時,業務也開始不可避免的遇見分析場景、服務場景、離線加工場景等場景的系統負載沖突等資源隔離問題,業務對系統的隔離和彈性能力都提出了更高更嚴苛的要求,尤其是像雙11等大促場景上,系統需要有負載隔離、彈性等高可用能力來支撐更加迅猛的流量峰值。

傳統分布式系統是通過副本和隔離來實作業務生産系統的進一步穩定,而要實作生産更高的穩定也需要面臨一定的取舍和挑戰:

  • 系統面向流量洪峰時的動态可擴充能力
  • 系統因意外或者故障當機時的快速恢複能力
  • 多副本隔離帶來的資源成本問題
  • 業務高低峰時資源的彈性能力
  • .......

為了解決以上挑戰,實作更加穩定、彈性、低成本的系統,Hologres不斷演進其技術能力:

  • 在産品設計之初,就采用存儲計算分離模式,可以非常高效的實作資源水準擴充能力,滿足不同流量洪峰對資源的不同需求
  • 内置排程系統,實作了節點故障、Failover的快速檢測以及自動排程恢複能力,即使有節點挂了,也能快速的拉起和切換,保障節點的可用性
  • 支援資源組隔離、多形态Replication包括Binlog、單執行個體Replication、主從執行個體等,有效解決資料讀寫分離、實作資源隔離、故障隔離
  • ....

更多關于高可用的實作請見>>Hologres高可用技術揭秘

随着業務的發展和技術的演進,以及企業對降本增效的訴求加深,如何在降低成本的同時還能保持更加極緻的隔離和資源彈性能力,又成為實時數倉技術的另一大挑戰。為了應對這個挑戰,在今年Hologres創新提出建設實作了新一代彈性計算組執行個體技術,與主從執行個體不同之處在于,業務可以通過将計算資源分解為不同的計算組模式,不同的計算組共享一份存儲,計算資源可彈性配置設定,按需建立,可同時完美支撐讀寫分離、資源隔離、業務隔離等諸多場景。

下面我們将會介紹Hologres彈性計算組執行個體的具體技術實作原理和最佳使用實踐。

Hologres技術再更新:新一代彈性計算組執行個體

Hologres彈性計算組執行個體設計的最終目的是為使用者提供高更強的資源隔離,不僅具有靈活性(即買即用)、資源隔離、彈性和極緻擴充性等特點,最大化解決使用者在資料分析上的諸多痛點難點問題,讓“資料價值”不再可望不可即。

1、整體架構

Hologres彈性計算組執行個體采用 Multi-cluster&Shared Data架構,将計算資源分解為不同的計算組(一個計算組可以了解為一個Virtual Warehouse,下文統一簡稱Warehouse),計算組獨立彈性可擴充(彈性配置設定、按需建立),計算組之間共享資料、中繼資料。

基于彈性、隔離和低成本的前提,Hologres彈性計算組執行個體的核心元件的設計都具有靈活擴充擴充、資源隔離的特性。核心元件主要有分為三個層面:以一個執行個體為例

  1. 計算組:計算組是獨立彈性可擴充的計算資源,負責執行使用者的查詢請求。使用者可以根據業務需求,建立不同的計算組,通過不同的計算組來支撐業務需求,比如寫入、查詢等。
  2. 資料存儲:資料存儲在Alibaba Pangu存儲服務上,不同的計算組共享一份pangu存儲,有效節省存儲資源。
  3. 雲服務元件:雲服務元件包括網關、Meta Service、Holo Master 等,主要有資料管理、安全認證管理、統一接入管理,以及節點管理等能力。
實時數倉Hologres新一代彈性計算組執行個體技術揭秘

下面針對每個元件做更詳細的介紹。

2、計算組Warehouse

購買了一個Hologres執行個體之後,就擁有了計算資源。而計算組Warehouse是由 Hologres的一組計算節點組成,使用者可以通過SQL的方式十分靈活的按需定制每個計算組的計算資源大小。

--示例:建立一個128Core的Warehouse
CALL hg_create_warehouse ('warehouse_1', 128);           

目前Hologres每個執行個體預設最多可以建立 10 個 計算組(可調整),每個計算組最小為 32 Core,最大 512 Core(guc可控制),使用者可以根據需要設定合适的大小。

Warehouse之間共享資料、中繼資料,不同的計算組通路同一個資料目錄;計算組的記憶體部分的資料(mem table)會進行同步,預設是最終一緻模式,也支援配置為強一緻模式。

Warehouse具有資源隔離、彈性等核心能力,下面我們主要逐一介紹。

資源隔離

可以根據業務需求建立多個計算組,每個計算組之間是共享同一份資料,并任意按需擴充計算組的數量和配置,底層隻需要存儲一份資料。不同負載的查詢任務可以運作在不同的計算組上,計算組之間的計算資源是互相獨立的。每個計算組上可以并發運作多個查詢,每個查詢請求會被路由到某個計算組進行執行;不同的計算組不會共享計算節點,是以不同 計算組 上運作的查詢之間互相不會有資源競争和性能影響,這樣可以保證不同負載的查詢之間互不影響性能,做到很好的資源隔離。

因為不同的Warehouse之間天然的計算資源隔離,是以可以通過多個計算資源組的方式實作不同的隔離需求:

  • 讀寫隔離:一個執行個體既有寫入又有查詢時,如果因為寫入過猛,會使用大量的資源,就會導緻查詢因等待資源而出現逾時、變慢等問題,通過設定不同的計算組,能很好的解決因寫入争搶資源,導緻查詢變慢的問題。
  • 讀讀隔離:在實時數倉場景上,一個執行個體可能會有多種查詢需求,比如對内的BI報表OLAP分析,對外的風控、推薦等線上服務,且不同的OLAP分析業務的保障程度可能也會不同,當有大query需要消耗較多資源時,可能會導緻其餘SQL因等待資源而變慢、逾時等問題,尤其是線上服務場景,如果變慢可能會影響線上業務。可以通過設定不同的計算組,來支撐不同的查詢場景,查詢之間互相隔離,互不影響,能有效的提高線上服務的穩定性
  • 寫寫隔離:根據不同的業務需求,不同寫入任務之間的優先級會有不同,通過設定不同的計算組,可以很好的實作寫入分離、離線寫入分離,以及 實時寫入 和 離線寫入等寫入之間的隔離,保障寫入的穩定性。
  • 業務場景隔離:除了任務、查詢和寫入之間的隔離,還可以通過Warehouse實作不同業務之間的隔離。将多個業務部門按照不同的計算組 隔離開,實作業務之間的完全的資源隔離,避免業務之間相關影響。

彈性

作為純粹、彈性的計算資源,可以通過SQL的方式在任意時間進行按需地建立、删除或者重新配置Warehouse。建立或者删除計算組不會影響底層存儲的使用者資料。可以根據業務需求動态地建立或者擴容計算資源,實作最大程度上的資源彈性,這樣就能很好的滿足使用者在高峰和低谷對不同資源的訴求。

計算組的彈性可以為使用者帶來成本效益更高的服務:在幾乎同樣的價格下,使用者可以享受更快的性能。

例如:如果某個工作負載在4個計算節點上執行需要花費15個小時,那麼在30個計算節點上執行可能隻需要花費2個小時。雖然這兩種模式的價格差不多,但是帶給使用者的體驗卻有着根本的差別:在同樣花費的情況下,性能越快使用者感受就越好。而計算組的彈性恰恰提供了極佳體驗的選擇,通過動态配置計算組,以更快地完成計算任務,但是并不需要額外多的花費開銷。

Hologres 具有天然的計算存儲分離架構,是以可以同時做到計算、存儲高度可擴充,在彈性計算組的加持下做到雙重彈性。

3、資料存儲

Alibaba Pangu是阿裡巴巴自研的分布式檔案系統,将并不高可靠的伺服器中的磁盤連接配接成一個整體,向外提供安全穩定易用的檔案存儲能力,具備無限容量及性能擴充、單一命名空間、多共享、高可靠和高可用等特性。

Hologres借助Pangu 分布式檔案系統,對使用者提供高性能、高可靠、高可用、低成本、彈性存儲空間、強大穩定安全等核心存儲服務。不同的計算組共享一份pangu存儲資源,這樣就能有效的節省存儲資源,資料不需要存儲多份,沒有備援,同時也保障了資料的一緻性。

4、雲服務元件

在Hologres彈性計算組執行個體模式下,雲服務元件也标準模式一緻,包括中繼資料管理、安全認證管理、統一接入管理等能力,其中:

  • 中繼資料管理:每個執行個體有統一的中繼資料管理的服務,被各個計算組共享。
  • Hologres Gateway 主要負責 統一的 安全認證、接入管理 等,并負責統一的高性能路由轉發和連接配接管理Warehouse的能力

Hologres彈性計算組執行個體産品優勢

通過Hologres彈性計算組執行個體可以非常友善的支援/實作以下優勢:

1、生态相容

Hologres彈性計算組執行個體相容Hologres已有産品形态,已有執行個體可無縫平滑遷移至彈性計算組執行個體,使用計算組時可以像使用一個單獨執行個體一樣友善。功能使用上也無任何差異, Hologres本身内置的函數、 SQL擴充等全面相容。

2、彈性

可根據業務負載需求即時擴縮容計算組,同時也可以按時或按需暫停或者拉起計算組(Scale Out),此外計算組可動态熱擴縮容(Scale Up),這樣就能使得資源得到最充分的利用。

計算和存儲都可以高度按需水準擴充,滿足業務的不同資源需求,真正做到雙重彈性。

3、資源隔離

計算組之間的資源是天然隔離的,可以實作寫寫隔離、讀寫隔離、讀讀隔離、不同業務隔離等,在保障性能的同時滿足複雜業務對資源的隔離需求,減少業務之間的互相影響。

4、低成本

可按需彈性使用資源,成本可控制到最低,同時計算組之間共享同一份存儲資料,節省存儲成本。

5、簡單易用

彈性計算組執行個體隻有一個Endpoint,解決隻讀執行個體模式下多個Endpoint的配置問題。同時相關運維操作(擴縮容、啟動暫停等)均可以通過SQL實作,通過簡單配置就能支援多種業務場景,簡單易用,有效降低使用和學習成本。

Hologres 彈性計算組執行個體最佳實踐

目前Hologres彈性計算組執行個體可以實作但不僅限于如下三種典型應用場景,也可以是這幾種場景的任意組合等。

1、讀寫分離場景

此種方式是實作完整的讀寫隔離、讀讀隔離,是資源隔離的部分場景,是比較常見的需求場景,一般業務場景可以考慮使用這種方式。

實時數倉Hologres新一代彈性計算組執行個體技術揭秘

讀執行個體多個Endpoint的問題,業務也不被需要不同的應用配置不同的Endpoint;

2、可以通過 SQL 一鍵切換預設Virtual Warehouse,無需執行JDBC資料源的切換操作;

3、隻讀執行個體 目前 和主執行個體之間 資料完全同步,Virtual Warehouse可以根據 Table Group 進行資料的定制同步,更加友善和靈活;

4、Hologres彈性計算組可以實作更靈活定制的資源隔離:比如寫寫隔離等;

5、可根據業務情況,在任意時間進行按需地建立、銷毀或者重新配置Virtual Warehouse,實作資源更極緻的彈性。

2、資源隔離場景

此種方式是更典型的資源隔離場景,可靈活的将多種場景隔離開,比如寫寫之間的隔離,讀寫隔離,以及查詢隔離,适用于有更加靈活定制的資源隔離的需求。

實時數倉Hologres新一代彈性計算組執行個體技術揭秘

3、業務隔離場景

此種方式是業務隔離場景,一個執行個體可能是有多個業務部門在使用,是以多個業務部門可以通過補貼計算組的方式進行隔離,實作完全的業務隔離。業務隔離也可以在此基礎上再進行 寫寫分離、讀寫分離、讀讀分離等多種資源隔離的組合等十分靈活的多種資源隔離方式。

實時數倉Hologres新一代彈性計算組執行個體技術揭秘

典型使用者案例

CCO為阿裡巴巴集團客戶體驗事業部,通過觸達消費者和商家的最前線,為消費者、商家和經濟體提供專業的客戶服務和客戶體驗,業務範圍涵蓋全阿裡集團的客戶體驗,典型的如88VIP客服。

CCO通過與Hologres高度共建,将傳統數倉更新為集實時化、自助化、系統化于一體的使用者體驗實時數倉,支撐CCO内部的客服排程實時大屏,智能客服坐席配置設定、使用者聲音洞察分析等多個實時數倉場景,并支撐CCO曆年雙11大促,支撐上千+服務大屏,節約成本近30%。

同時随着業務的快速發展,為了更好的洞察使用者聲音,提升産品體驗的同時,CCO也不斷的與Hologres共建實時數倉核心能力:

  • 2020年年雙11大促首次采用以Hologres為核心實時數倉方案,統一了實時核心資料與部分離線資料的存儲,為了保障業務系統的高可用,通過資料雙寫的方式來支撐。見>>Hologres是如何完美支撐雙11智能客服實時數倉的?
  • 2021年通過對實時數倉進行高可用架構更新,由鍊路雙寫順利更新為讀寫分離高可用以及災備架構,并在雙11以及雙12等核心場景規模應用。實時任務規模由幾百+增加至上千+,寫入壓力增加至1700萬+每秒,資料規模高達幾百TB,直接服務數十個線上服務場景,數百個核心分析業務,有效降低了建構實時數倉主備鍊路的人力以及機器成本,減輕了核心業務對于讀取穩定的壓力,完美經受住各大促核心場景的檢驗,實作生産高可用。見>>CCO x Hologres:實時數倉高可用架構再次更新,雙11大規模落地
  • 在今年,CCO也将讀寫分離的架構更新為Hologres彈性計算組執行個體。相比去年的架構實作了資源的彈性按需使用,寫寫隔離,業務讀寫隔離等需求,同時在使用上不需要維護多個執行個體Endpoint,系統變得更加靈活,也減少了運維壓力。下圖為今年CCO其中一個業務場景更新後的技術架構:

1)資料通過Flink實時寫入至Hologres,在Hologres中采用彈性計算組執行個體來支撐高可用。

2)因為寫入的保障需求不同,将寫入場景用多個寫入計算組支撐,比如實時寫入為一個計算組,離線寫入為一個計算組,維表關聯為一個計算組。在查詢側也拆分成不同的計算組,實作查詢之間的資源隔離,比如線上查詢場景分為一個計算組,OLAP分析分為一個計算組。

實時數倉Hologres新一代彈性計算組執行個體技術揭秘

總結與未來展望

實時數倉Hologres新一代彈性計算組執行個體在今年阿裡巴巴部分核心業務場景落地和驗證,并在穩定性、性能等方面經受大促的考驗,為業務在資源隔離、彈性、易用性等發揮了重要作用,最終為業務降本提效。

随着業務的發展和技術的演進,Hologres也将持續優化核心技術競争力,未來持續在資源隔離、彈性、高可用等方面進行技術完善和産品演進,助力更多業務建構企業級一站式實時數倉。

實時數倉Hologres新一代彈性計算組執行個體技術揭秘

繼續閱讀