閱讀116 返回首頁    go 技術社區[雲棲]


分布式HTAP數據庫PetaData(HybridDB for MySQL) —— OLTP與OLAP一站式解決方案

一、前言

      在大數據推動行業發展的年代,大型企業級應用往往選擇多種數據庫產品,分別支持在線交易、報表生成、日誌存儲、離線分析等,用以驅動業務的高速發展,但這種組合式解決方案,需要精細的控製不同產品間的數據流轉和一致性問題,使用難度頗高,每個數據庫產品間的數據同步和冗餘,也帶來了很高的成本開銷,進一步限製了企業級應用的發展。

      近年來Gartner提出了HTAP數據庫概念,一個數據庫既能支持OLTP(在線事務處理),又能支持OLAP(在線分析處理),涵蓋大部分企業級應用的需求,一站解決這些問題。數據庫雲服務供應廠商,紛紛響應支持,企業級應用案例也如雨後春筍般湧現。

     HTAP數據庫在架構上做了哪些創新,解決了哪些關鍵問題?又能為企業級應用降低哪些應用難度,減少哪些成本開銷?本文將為您揭示HTAP數據庫為大數據行業帶來的新變化。

二、OLTP + OLAP vs. HTAP

      企業級應用的兩個業務場景:在線交易和數據分析,是OLTP和OLAP的典型應用。在線交易對數據庫的ACID特性有嚴格的要求,更關注數據庫在低延遲、高並發方麵的能力,數據分析對並發和延遲要求不高,反而更關注數據庫的算法支持、容量、計算處理能力。在企業級應用的不同成長階段,為這兩類業務選擇的技術有很大差別:

  1. 小型應用階段:為了節省成本,企業選擇將這兩類業務放在同一個OLTP數據庫中運行,在數據規模小時,可以運轉的很好;
  2. 中型應用階段:在數據規模上來時,會麵臨資源爭搶的問題:分析業務會消耗數據庫大量的cpu和io資源,影響到交易業務的延遲,最終使得每個業務都得不到很好服務。此時,企業選擇了數據庫讀寫分離和分時複用,一個主庫用於交易,多個讀庫用於分析,且在線業務和離線業務分時複用;
  3. 大型應用階段:數據規模進一步上升,單一的主庫已經不能滿足交易需求,讀庫也跑不動越來越複雜的分析SQL。此時,企業選擇了分庫分表和分析型數據庫,利用分庫分表中間件,拆分交易主庫,水平擴展交易性能,同時將數據同步到OLAP數據庫中,進行分析計算,做到徹底的資源隔離;
  4. 巨型應用階段:數據規模再次上升,每次為OLTP數據庫擴容都要消耗極大的人力物力,數據同步到OLAP數據庫的時延和成本很高,使用時要為不同業務選擇不同數據庫入口,管理複雜度極大。此時,企業可以選擇HTAP數據庫進一步改善業務架構,降低成本,提升易用性,改善運維體驗;


圖1. 企業級應用的架構演進曆程

      仔細分析這幾個不同階段可以發現,使用HTAP數據庫雲服務,便能省去企業的選型麻煩:

  1. 無論業務規模多大,企業使用HTAP數據庫的方式,始終都與小型應用階段相同,無需改變使用習慣;
  2. 業務規模擴大,企業也可以為HTAP數據庫添加更多的計算存儲資源,提升數據庫的能力,以適應業務,每個階段無需付出額外的成本;
  3. 企業無需關心數據庫的運維,進一步減少了人力開銷;

      阿裏雲提供的HybridDB for MySQL便是一款HTAP數據庫雲服務,兼容MySQL的協議、語法、生態,用戶無需改變使用習慣,采用全自研的鏈路存儲計算分離架構,可以滿足不同業務規模的企業級應用需求,並與之共同成長。

三、HTAP數據庫架構優勢

      阿裏雲HybridDB for MySQL是鬆耦合分布式架構的HTAP數據庫雲服務,核心技術架構如下所示:

圖2. 阿裏雲HybridDB for MySQL核心架構

1. 數據分區

      HybridDB for MySQL采用了數據分區的架構,分區間share nothing,從而支持線性擴容,鏈路、存儲、計算分離,合理利用數據庫的整體硬件資源,降低整體成本。

圖3. 阿裏雲HybridDB for MySQL數據分區原理

      數據分區架構使得節點擴容變得更為簡單,加減節點隻涉及到局部的數據搬動,而且不影響業務使用。統一的鏈路入口,不會改變用戶的使用習慣,一份存儲,不會帶來更多的成本,獨立的計算資源,充分適應不同業務的計算需求。

2. 統一的數據庫雲服務

      在數據庫雲服務方麵,HybridDB for MySQL與RDS for MySQL對齊,幾個解決方案的綜合對比如下:

 

HybridDB for MySQL

RDS for MySQL

OLTP+OLAP混合方案

訪問入口

統一入口

統一入口

多點入口

ACID事務特性

全局ACID

全局ACID

組件間ACID

SQL兼容性

全局一致

全局一致

組件間兼容性不同

數據延遲

有同步延遲

穩定性

統一的穩定性保障

統一的穩定性保障

組件間穩定性不同

性能擴容

線性擴容

不支持線性擴容

線性擴容

計算功能擴展

多種計算功能擴展

不支持計算功能擴展

多種計算功能擴展

存儲成本

一份存儲

一份存儲

多份存儲

計算成本

一份計算

一份計算

多份計算

異構數據同步成本

數據同步成本較高

備份恢複

支持

支持

組件局部支持

監控

支持

支持

組件局部支持

表1. 阿裏雲HybridDB for MySQL與其他數據庫服務的對比

3. 高可用

      HybridDB for MySQL全鏈路均有高可用設計,鏈路引擎、計算引擎為無狀態設計,副本擴增可以帶來更高的可用性,存儲引擎為一主多備半同步複製的存儲引擎,數據庫本身也支持實時備份,並支持按備份集恢複。

圖4. 阿裏雲HybridDB for MySQL高可用架構

四、應用場景

      HTAP數據庫,常用於混合業務場景,以綜合能力著稱,可以替代大部分OLTP、OLAP數據庫混用的技術架構,實際的應用場景可見下文。

1. 分庫分表+實時分析

      企業級應用的最典型業務為在線交易和數據分析,使用HTAP數據庫能有更多的收益:

  1. 在線交易業務使用單機數據庫+分庫分表中間件,而HTAP數據庫的水平分區架構,天然兼容分庫分表中間件的業務場景,企業級用戶無需再關心底層單機數據庫的運維問題;
  2. 數據分析業務使用數據同步+大數據處理平台,HTAP數據庫支持直接對數據進行分析處理,且不影響在線業務,在時效性和成本方麵,有很大的優勢;


圖5. 分庫分表+實時分析業務使用HTAP數據庫

2. 物聯網實時數據處理

      物聯網大數據應用,具有海量的傳感器數據,實時更新和查詢需求,非常密集,對數據庫的性能要求很高。使用HTAP數據庫,能夠獲得KV數據庫的讀寫性能,NoSQL數據庫的容量,OLTP關係數據庫的多位查詢能力,以及OLAP數據庫的複雜分析能力。

圖6. 物聯網業務使用HTAP數據庫

3. 實時數據倉庫

      數據倉庫通常僅允許導入,並且是隻讀的,不允許實時更新,使用模式是將一批完整的數據導入到數據倉庫中,然後利用數據倉庫的計算和存儲能力,進行各種維度的計算。通俗點講,數據倉庫存儲的數據通常是“二手數據”,一般由關係數據庫的“一手數據”生成,進入數據倉庫的數據,對齊在事務邊界。

      對於某些時效性要求極高的大數據業務,Hadoop+MapReduce甚至是Spark都無法滿足低延時大數據服務的需求,此時可以選擇HTAP數據庫,既支持批量導入原始數據,進行實時聚合分析,又支持實時從大數據處理平台上同步結果,充當高性能緩存和二級數倉,提升企業級應用的整體響應能力。此外,HTAP數據庫也能直接生成實時報表,進一步提升HTAP數據庫在大數據業務的應用範圍。

圖7. 實時數據倉庫業務使用HTAP數據庫

五、後記

      隨著業務的爆炸式增長,越來越多的企業,需要重量級的數據庫產品和更好的服務,來避免技術架構成為企業的瓶頸,從而解放企業,以更專注於核心業務。

      阿裏雲的創新產品HybridDB for MySQL,是阿裏雲全自研的HTAP數據庫產品,緊貼企業級用戶的需求,為企業級應用帶來了新的選擇,也體現了阿裏雲在數據庫行業的技術實力和自研決心,HybridDB for MySQL會為用戶帶來更好的數據庫服務體驗。

最後更新:2017-08-13 22:41:38

  上一篇:go  微服務架構上雲最佳實踐
  下一篇:go  醫療大健康行業案例(老人健康實時監測和預警) - 阿裏雲RDS PostgreSQL最佳實踐