伴隨著雲計算、大數據技術的發展,傳統信息技術及應用受到了巨大衝擊,資料庫作為基礎軟體也迎來了新的挑戰和機遇。未來,各行各業在信息化應用的資料庫選型將會越來越傾向分布式資料庫。本文將從典型業務應用類型來分析未來行業信息化對分布式資料庫的需求。
1、分布式資料庫是適應新技術及行業應用發展的需要
分布式資料庫可以認為是由位於不同位置的多個計算機節點通過網絡互相連接,共同組成一個完整的、全局的、邏輯上集中、物理上分布的資料庫。未來,傳統的基於單物理伺服器節點的資料庫將在更多的場景下被分布式資料庫取代,分布式資料庫應用前景將越來越廣。
分布式資料庫的發展至少從以下幾個方面看是必要的:
● 單體小型機已經逐步被集群PC伺服器替代.。現有數據中心更多的是採用集群而非小型機來提升計算存儲能力,這種趨勢必然促使資料庫也要適應分布式集群而非小型機的基礎設施;
● 未來數據中心將更多基於雲基礎設施來提供服務。雲計算環境的基本特點就是按需分配計算存儲資源,而雲的計算存儲資源是建立在分布式的節點上,自然,在雲環境下的資料庫也需要適應分布式的環境;
● 單一伺服器無法管理數據不斷增長的資料庫。很顯然,資料庫系統不跨出單一伺服器的局限,是難以應對數據規模的不斷增長並確保性能的需要,而跨節點、可橫向擴展的資料庫可以很好解決大規模海量數據的計算存儲需要;
● 單一伺服器無法提供大數據平臺的高可用服務。大數據時代,有限的2個或若干個的節點是無法滿足未來大數據環境的需要,而數據資源的跨節點分布既可以保證數據高可用也可以適應未來數據大規模增長的需要,而且跨多節點分布在大規模數據分析處理速度上也有明顯優勢。
Gartner預計,2018年-2023年間,雲資料庫市場將會保持31%的年複合增長,並且到2021年,雲資料庫在整個資料庫市場中的佔比將達到50%,而在2023年,這一佔比更是達到75%。相關調查顯示,目前企業上雲的意願劇增到84%,隨著企業越來越習慣採用雲上的IT架構,適應部署在雲環境的分布式資料庫技術也將成為資料庫的發展趨勢。
2、分布式資料庫在OLTP業務應用趨勢
分布式資料庫用在OLTP應用場景已經越來越多。特別是最近幾年,隨著新興網際網路加在線應用的快速增長,分布式OLTP資料庫得到更加廣泛的應用。由於這些應用對資料庫的強一致要求不是很高,很多相應快、規模化應用是遵循資料庫的BASE理論,來提升分布資料庫吞吐量和性能的。這些分布式OLTP應用與傳統依賴小型機的模式相比,至少在成本和擴展靈活性上具有顯著優越性。
對於應用強一致要求高的行業,特別是金融行業的核心系統,分布式資料庫應用也在發展,但由於這些特殊行業對一致性要求苛刻,所以分布式OLTP資料庫的深入廣泛應用尚需技術的進一步完善。由於分布式資料庫的一個重要特點是採用多副本機制來保證系統的安全可靠,而資料庫一旦跨節點分布,那麼,節點故障、網絡故障、磁碟故障及綜合故障,都會帶來一系列複雜難以解決的多副本一致性問題。現在,在解決多副本一致的方法上,業界的Paxos和Raft一致性協議,提供了很好的理論支持,特別是Raft協議,是一種易於理解和實現的分布式一致性協議,但raft算法也存在兩方面性能瓶頸問題:一是每次日誌寫入後都需要刷盤才能返回成功,而刷盤是一個比較耗時的操作。另一是由於算法限制,所有的請求都由 Leader 處理,很難做到所有節點皆可提供服務。所以,在算法實現中,往往還需要對raft算法進行優化。
當然,分布式OLTP還有不少技術難點也需要進一步完善,比如,全局時鐘服務問題,由於全局時鐘服務受制於局部節點的計算能力,容易造成整體系統擴展瓶頸。OLTP技術難點還有不少有待進一步解決,不過各種技術應對策略也不少。目前,國內外也有不少開源和自研的分布式OLTP產品,這些產品已經在政務、零售、電信、製造、物流、氣象等各個行業得到應用,在金融行業的應用也在進一步深化。分布式OLTP資料庫的進一步成熟,也將是國產化資料庫替換傳統Oracle等資料庫的需要。
以下是經典的OLTP分布式資料庫架構:
3、分布式資料庫在OLAP業務應用趨勢
分布式資料庫在OLAP業務應用已經成熟, 在OLAP應用上使用分布式資料庫有明顯優勢並成為趨勢。現在OLAP應用場景幾乎都會面臨海量數據,很顯然,單伺服器是無法應對未來海量數據的快速增長。國內十年前OLAP場景還大量使用Teradata、Sybase等國外分布式資料庫,隨著國內分布式資料庫產品技術及生態的發展,替換國外產品已經不是問題,至少在成本及服務上具有明顯優勢。
國內比較著名的分布式OLAP產品有南大通用的Gbase 8a,阿里 AnalyticDB 和華為的GaussDB 200等。目前國內OLAP產品已經在數據倉庫及大數據平臺得到廣泛應用,金融這個對數據存儲處理特別苛刻的行業也已經大規模使用分布式OLAP資料庫。其中,經典的OLAP應用有農業銀行的數據倉庫應用,該數據倉庫的數據來源包括核心系統、信貸、財務、投資、電子銀行等120多個業務系統,集群規模共1156個節點,其中主庫112*2節點,數據集市8個,分別為個人客戶集市、對公客戶集市、財務數據集市、監管數據集市、風險數據集市、運營風控集市、審計內控集市和分行數據集市,數據總量超過20PB 單庫裸數據超過5PB,每日增量4.7TB及38W張表,最大表超過2.5萬億行,每天運行15000個以上的庫內加工作業,日加工數據時間8小時。其應用規模已經超過歷史上國外產品在國內的應用規模。
技術上,OLAP不要求強一致,讀數據的比例遠高於寫比例,所以OLAP支撐的數據規模也會遠大於OLTP的規模。OLAP資料庫重要技術特點通常包括列存技術、數據分片技術等。OLAP通常要支持列存技術,列存可以只讀取需要的列,跳過無用數據,同質數據存儲更緊湊,編碼壓縮友好,這些優勢可以減少IO。數據分片可以支持資料庫擴展、容錯及讀取性能,同時數據分片還可以讓運維更自動化,橫向擴展更靈活,好的數據分片技術還可以避免部分節點IO負載過熱而另外一些節點IO負載過冷,達到負載均衡。
除了以上常見關鍵技術外,OLAP的計算檢索效率、生態適應能力也是非常重要的,經過最近多年的技術發展,國產OLAP分布式資料庫在與數據湖的融合、雲環境的適應以及國產化作業系統、晶片的適配等多個關鍵技術方面都取得了突破,隨著大數據的進一步發展,未來OLAP分布式資料庫依然發展潛力巨大。
以下是經典的OLAP分布式資料庫架構:
4、分布式資料庫在HTAP業務應用趨勢
在信息化應用中,也有許多業務場景,其涉及的業務類型大部分是數據的讀取分析,少部分是數據的更新;還有許多業務場景,同時包含了事務處理以及對最新歷史數據的實時分析,這些業務類型,既不是單純的OLTP也不是單純的OLAP業務類型,而是OLTP和OLAP兩種類型的混合。比如,常見的各個行業的在線銷售, 其在線訂單管理是OLTP業務類型,銷售統計分析是OLAP業務類型,而熱銷推薦及促銷調價,則既不是OLTP也不是OLAP,這種業務類型需要的是在交易發生的同時也能夠迅速的計算出熱銷的是什麼東西,而且還能依據促銷的情況作少量的價格調整,這種業務類型屬於HTAP(混合事務 / 分析處理)。HTAP是Gartner提出的一個名詞,是指一個資料庫同時能具備OLTP和OLAP兩種能力。
為了面對各種需求,OLTP和OLAP的技術特點是有區別的,傳統上,OLAP數據通常來自OLTP,而且OLAP和OLTP系統間也會有幾分鐘甚至幾小時的時延,這樣,對分析的實時性要求很高的業務場景不容易實現,而且由於企業需要維護不同的資料庫、支持兩類不同的任務,會帶來維護成本的提高。 因此,能夠統一支持事務處理和業務統計分析的資料庫成為一種需求。HTAP資料庫可以避免在傳統架構中,在線與離線資料庫之間大量的數據交互,HTAP也是基於分布式架構,支持彈性擴容,可按需擴展吞吐或存儲,能應對高並發、海量數據場景。
目前實現HTAP的方式通常有兩種:一種是對OLTP和OLAP業務類型分別採用各自的計算解釋引擎,但對數據資源統一管理,不同的計算解釋引擎執行不同的業務類型,OLTP和OLAP也分別使用同一數據的不同副本,更好實現均衡負載和隔離;另一種實現HTAP的方式是仍保持OLTP和OLAP各自的相對獨立,數據也是兩套,但兩套數據之間,從OLTP到OLAP通過同步工具實現快速同步複製。顯然,第一種模式,數據冗餘程度低,一致性更好,但OLAP的吞吐能力及性能局限大,而第二種方式,基本保留了OLTP和OLAP的特色,允許各自發揮特長。
分布式資料庫在OLTP和OLAP的應用優勢也是HTAP的優勢,HTAP雖然是個比較新的概念,但許多綜合OLTP和OLAP的應用場景早已經存在,HTAP也可以通過OLTP和OLAP融合技術實現,最佳一體化解決方案應該與實際業務關係很大,可以根據實際情況採用相應的方案。
以下是經典的HTAP分布式資料庫架構圖: