邵麒,李亞鵬,佟文朋
(中國人民解放軍31401部隊,吉林長春,130000)
在信息時代下,網(wǎng)絡領域的應用模式和數(shù)據(jù)量不斷發(fā)生著變化,物聯(lián)網(wǎng)、云計算以及通信技術的快速發(fā)展,給數(shù)據(jù)的共享、存儲與管理提出了較高的要求,信息化領域關鍵數(shù)據(jù)庫技術的發(fā)展也由關系數(shù)據(jù)庫發(fā)展到NoSQL數(shù)據(jù)庫,再發(fā)展到如今的NewSQL數(shù)據(jù)庫,NewSQL數(shù)據(jù)庫吸收了NoSQL數(shù)據(jù)庫的分布式能力和傳統(tǒng)關系數(shù)據(jù)庫的強一致性特性,支持海量數(shù)據(jù)的儲存,同時具備很好的擴展性能,可支持并滿足原子性一致性、持久性、隔離性特性的事務,在分布式系統(tǒng)的設計與應用中發(fā)揮著關鍵作用[1]。
隨著互聯(lián)網(wǎng)的普及,互聯(lián)網(wǎng)用戶數(shù)量逐年增加,產(chǎn)生的數(shù)據(jù)越來越多,因此,應用系統(tǒng)必須具備對海量數(shù)據(jù)的存儲、管理能力和能夠支持用戶高并發(fā)訪問。分布式系統(tǒng)技術和分布式數(shù)據(jù)庫技術已經(jīng)成為云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)等信息領域的重點研究方向。
數(shù)據(jù)庫單機在容量上有一定的限制,采用數(shù)據(jù)分片的方式可以突破這個限制,將數(shù)據(jù)建立在多節(jié)點上,可增強數(shù)據(jù)處理高效性和靈活性,實現(xiàn)系統(tǒng)的彈性擴展,提高分布式系統(tǒng)的綜合性能?;跀?shù)據(jù)分片的方式有兩種,其中一種是水平分片,此分片方式將數(shù)據(jù)按照元組進行劃分,分為很多組,然后分散到多個節(jié)點上;另一種數(shù)據(jù)分片方式為垂直分片,垂直分片是將數(shù)據(jù)表在豎列的排列方向上進行數(shù)據(jù)切割,也可將數(shù)據(jù)分為很多小片段,各個片段之間除了主鍵外沒有交集,再將數(shù)據(jù)分散到不同的節(jié)點上。
為保證數(shù)據(jù)的正常使用,分布式系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)會存有多個副本,利用充足的物理存儲資源將數(shù)據(jù)備份存儲,以防因為硬件的意外故障造成數(shù)據(jù)的丟失且不可恢復,采用存儲多副本的方式保證數(shù)據(jù)的容災性、安全性,即使出現(xiàn)硬件設備的故障丟失數(shù)據(jù),也可使用事先存儲的副本,避免造成經(jīng)濟損失。同樣,對海量數(shù)據(jù)進行重復備份,勢必需要足夠的存儲空間、可靠的副本定位技術、完善的副本創(chuàng)建策略等,也需要解決多個副本彼此之間的一致性問題,這些都提升了分布式數(shù)據(jù)庫技術的難度和復雜性。
分布式系統(tǒng)是建立在通信網(wǎng)絡之上,由一組為完成共同任務而進行分工、協(xié)調(diào)合作的計算機節(jié)點組成。獨本數(shù)據(jù)在使用上不需要建立副本,系統(tǒng)也不需要考慮副本之間的數(shù)據(jù)一致性問題,有著較高的數(shù)據(jù)一致性。但是,分布式系統(tǒng)在數(shù)據(jù)庫上的設計需要建立副本以提高系統(tǒng)的運行效果,顯著提升了數(shù)據(jù)的安全性和準確性。但不同節(jié)點之間的信息的管理,造成了較高的通信成本。分布式系統(tǒng)對數(shù)據(jù)庫提出在降低成本的基礎上保障數(shù)據(jù)的一致性需求[2]。
數(shù)據(jù)庫技術發(fā)展至今,中間研發(fā)并應用過多種數(shù)據(jù)庫技術,當前分布式系統(tǒng)的核心技術以及主流發(fā)展方向是NewSQL數(shù)據(jù)庫技術。NewSQL數(shù)據(jù)庫不僅結(jié)合了NoSQL數(shù)據(jù)庫對大量數(shù)據(jù)的處理能力,也具備傳統(tǒng)數(shù)據(jù)庫的ACID和SQL等特性。具有以下顯著優(yōu)勢。
NewSQL數(shù)據(jù)庫對于服務器資源具有統(tǒng)一集群的構架思想,可將這些分散的資源進行整合,化為一個服務整體,供客戶使用。統(tǒng)一集群的方式一定程度上解決了小集群之間的障礙,使得對集群資源的使用和管理更加合理、高效,有效提高了整體資源的利用率,可增強數(shù)據(jù)庫的資源共享能力。
NewSQL數(shù)據(jù)庫的統(tǒng)一存儲架構思想不再將數(shù)據(jù)分片存儲,而是進行統(tǒng)一、集中的存儲,統(tǒng)一存儲的方式,實現(xiàn)了各種數(shù)據(jù)之間的整合管理,增強了數(shù)據(jù)庫的數(shù)據(jù)分享能力。統(tǒng)一、整體的數(shù)據(jù)資源具有分片資源缺乏的全量數(shù)據(jù)分析優(yōu)勢,為系統(tǒng)的數(shù)據(jù)分析、總結(jié)與預測方面提供了較大幫助,同時,統(tǒng)一存儲避免了因重復備份和不同節(jié)點溝通造成的物理資源的浪費,也實現(xiàn)了多樣化業(yè)務數(shù)據(jù)的統(tǒng)一存儲與管理[3]。
在互聯(lián)網(wǎng)時代,數(shù)據(jù)安全問題頻繁發(fā)生,造成人們的數(shù)據(jù)信息曝光和丟失。數(shù)據(jù)庫技術不僅面臨著來自自然故障的壓力,也需要嚴防網(wǎng)絡黑客的惡意攻擊,分布式數(shù)據(jù)庫具備應對單點故障、網(wǎng)絡故障等自然故障的應對策略,針對惡意的竊聽、越權攻擊、破譯密文等網(wǎng)絡安全問題,NewSQL數(shù)據(jù)庫建立了統(tǒng)一安全架構,通過統(tǒng)一鑒權、保密通信、細粒度資源隔離與訪問控制以及庫文加密等手段,從多方面保證了數(shù)據(jù)資產(chǎn)的安全。
分布式系統(tǒng)中NewSQL數(shù)據(jù)庫的應用,可使得平臺底層的集群服務維護和監(jiān)控能力過強,應用開發(fā)者可在此良好基礎上使用平臺服務接口進行應用的設計與研發(fā),且易于數(shù)據(jù)分析人員和數(shù)據(jù)科學家的使用,便利了其對于數(shù)據(jù)的查詢和分析過程。
分布式系統(tǒng)中NewSQL數(shù)據(jù)庫在數(shù)據(jù)存儲上保持分布式,其統(tǒng)一存儲的思想構架可依靠鍵值對存儲引擎技術,將主體數(shù)據(jù)進行統(tǒng)一存儲,放到統(tǒng)一的集群中,基于分布式共識算法協(xié)議保證分布式各節(jié)點之間數(shù)據(jù)的一致性,當有數(shù)據(jù)進行變更后會自動生成一條共識算法日志,通過這條日志,將分布式系統(tǒng)中的每一節(jié)點都進行數(shù)據(jù)的同步復制,在所有節(jié)點中,只要同步復制成功的節(jié)點占大多數(shù),就能安全、可靠地完成數(shù)據(jù)的寫入,一定程度上減小了數(shù)據(jù)同步復制的難度,保障了數(shù)據(jù)變更過程的正確性,如果在這一過程中出現(xiàn)了硬件設備的故障,只要同步復制成功的節(jié)點在一半以上,可后期通過共識算法協(xié)議將副本自動補全即可,有效提升了數(shù)據(jù)存儲的可靠性[4]。
分布式系統(tǒng)NewSQL數(shù)據(jù)庫中數(shù)據(jù)的存儲、運算以及管理均采用分組的方式,系統(tǒng)的整體存儲空間由多個組域組成,并盡量均勻地分散于系統(tǒng)的眾多節(jié)點上,盡量使統(tǒng)一集群中每個節(jié)點的負載均衡,在此基礎上實現(xiàn)系統(tǒng)存儲容量的水平擴展。分布式存儲引擎技術以組域為單位進行數(shù)據(jù)的分散和復制,增加了數(shù)據(jù)存儲的安全性。數(shù)據(jù)分布式存儲示意圖如圖1所示。
圖1 分布式儲存
在分布式系統(tǒng)設計中,NewSQL數(shù)據(jù)庫相比于采用主鍵索引模式的傳統(tǒng)關系數(shù)據(jù)庫,具有更加實時的次級索引機制,在海量數(shù)據(jù)的處理中,可進行快速、靈活的篩選,同時可與基于內(nèi)存計算的大數(shù)據(jù)分布式計算框架進行融洽銜接,實現(xiàn)區(qū)間裁剪和計算下推功能,為用戶提供實時分析和查詢功能。在查詢過程上也進行了更加合理的設計,以降低遠程執(zhí)行函數(shù)的調(diào)用成本,將SQL數(shù)據(jù)庫命令集中的謂詞條件下推到存儲節(jié)點進行計算,簡化了數(shù)據(jù)傳輸路徑,每個節(jié)點只需返回此節(jié)點中符合用戶分析與查詢條件的數(shù)據(jù),各節(jié)點返回的數(shù)據(jù)和結(jié)果在系統(tǒng)的解析層進行匯聚以后統(tǒng)一處理。實時分析和查詢引擎的運行示意圖如圖2所示。
圖2 計算下推、逐層返回數(shù)據(jù)
分布式系統(tǒng)設計中NewSQL數(shù)據(jù)庫具備HTAP混合負載架構,因其實現(xiàn)了NewSQL數(shù)據(jù)庫技術、列式存儲類在線分析類型數(shù)據(jù)庫技術、聯(lián)機交易類型數(shù)據(jù)庫技術的結(jié)合。在系統(tǒng)同時對聯(lián)機交易類業(yè)務和在線分析類業(yè)務進行處理時,可省略數(shù)據(jù)復制這一環(huán)節(jié),直接進行業(yè)務的處理。數(shù)據(jù)庫技術的混合負載架構采用列存儲方式,數(shù)據(jù)之間無較多關聯(lián),同時結(jié)合了高效處理層和分布式協(xié)同共識算法,在數(shù)據(jù)的存儲和復制上采用組域的形式,使系統(tǒng)具有良好的分布式特性[5]。
綜上所述,網(wǎng)絡的普及和發(fā)展,引起了海量數(shù)據(jù)的儲存和管理挑戰(zhàn),分布式系統(tǒng)中NewSQL數(shù)據(jù)庫技術不僅傳承了傳統(tǒng)關系數(shù)據(jù)庫技術的強一致特性,還兼具了NoSQL數(shù)據(jù)庫的分布式能力。NewSQL數(shù)據(jù)庫技術的各種優(yōu)勢能夠較好滿足分布式系統(tǒng)對數(shù)據(jù)庫技術的需求,是當今以及未來數(shù)據(jù)庫管理系統(tǒng)的主流發(fā)展方向。相信隨著云計算、物聯(lián)網(wǎng)等技術的不斷發(fā)展,NewSQL數(shù)據(jù)庫技術在分布式系統(tǒng)中的應用將會更加廣泛。