116
技術社區[雲棲]
分布式HTAP數據庫PetaData(HybridDB for MySQL) —— OLTP與OLAP一站式解決方案
一、前言
在大數據推動行業發展的年代,大型企業級應用往往選擇多種數據庫產品,分別支持在線交易、報表生成、日誌存儲、離線分析等,用以驅動業務的高速發展,但這種組合式解決方案,需要精細的控製不同產品間的數據流轉和一致性問題,使用難度頗高,每個數據庫產品間的數據同步和冗餘,也帶來了很高的成本開銷,進一步限製了企業級應用的發展。
近年來Gartner提出了HTAP數據庫概念,一個數據庫既能支持OLTP(在線事務處理),又能支持OLAP(在線分析處理),涵蓋大部分企業級應用的需求,一站解決這些問題。數據庫雲服務供應廠商,紛紛響應支持,企業級應用案例也如雨後春筍般湧現。
HTAP數據庫在架構上做了哪些創新,解決了哪些關鍵問題?又能為企業級應用降低哪些應用難度,減少哪些成本開銷?本文將為您揭示HTAP數據庫為大數據行業帶來的新變化。
二、OLTP + OLAP vs. HTAP
企業級應用的兩個業務場景:在線交易和數據分析,是OLTP和OLAP的典型應用。在線交易對數據庫的ACID特性有嚴格的要求,更關注數據庫在低延遲、高並發方麵的能力,數據分析對並發和延遲要求不高,反而更關注數據庫的算法支持、容量、計算處理能力。在企業級應用的不同成長階段,為這兩類業務選擇的技術有很大差別:
- 小型應用階段:為了節省成本,企業選擇將這兩類業務放在同一個OLTP數據庫中運行,在數據規模小時,可以運轉的很好;
- 中型應用階段:在數據規模上來時,會麵臨資源爭搶的問題:分析業務會消耗數據庫大量的cpu和io資源,影響到交易業務的延遲,最終使得每個業務都得不到很好服務。此時,企業選擇了數據庫讀寫分離和分時複用,一個主庫用於交易,多個讀庫用於分析,且在線業務和離線業務分時複用;
- 大型應用階段:數據規模進一步上升,單一的主庫已經不能滿足交易需求,讀庫也跑不動越來越複雜的分析SQL。此時,企業選擇了分庫分表和分析型數據庫,利用分庫分表中間件,拆分交易主庫,水平擴展交易性能,同時將數據同步到OLAP數據庫中,進行分析計算,做到徹底的資源隔離;
- 巨型應用階段:數據規模再次上升,每次為OLTP數據庫擴容都要消耗極大的人力物力,數據同步到OLAP數據庫的時延和成本很高,使用時要為不同業務選擇不同數據庫入口,管理複雜度極大。此時,企業可以選擇HTAP數據庫進一步改善業務架構,降低成本,提升易用性,改善運維體驗;
圖1. 企業級應用的架構演進曆程
仔細分析這幾個不同階段可以發現,使用HTAP數據庫雲服務,便能省去企業的選型麻煩:
- 無論業務規模多大,企業使用HTAP數據庫的方式,始終都與小型應用階段相同,無需改變使用習慣;
- 業務規模擴大,企業也可以為HTAP數據庫添加更多的計算存儲資源,提升數據庫的能力,以適應業務,每個階段無需付出額外的成本;
- 企業無需關心數據庫的運維,進一步減少了人力開銷;
阿裏雲提供的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數據庫能有更多的收益:
- 在線交易業務使用單機數據庫+分庫分表中間件,而HTAP數據庫的水平分區架構,天然兼容分庫分表中間件的業務場景,企業級用戶無需再關心底層單機數據庫的運維問題;
- 數據分析業務使用數據同步+大數據處理平台,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