庫里南作為豪車已經稱霸多年。同樣,數據庫領域的Oracle也是豪車級的“庫里南”,是集中式數據庫的天花板。但是,面對異軍突起的分布式數據庫,在自主創新的環境下,我國自主研發的數據庫能否厚積薄發成為“庫里南”,將面臨時代的考驗。
金融行業數據庫發展狀態分析
數據庫技術產生于20世紀60年代末70年代初,關系數據庫模型初期在1970年由IBM研究員E.F.Codd博士率先提出,之后成為數據庫領域主流模型,其主要研究數據如何管理、存儲和使用。隨著時代的快速進步,計算機硬件和軟件技術快速迭代,數據庫的創新技術也不斷蓬勃發展,在理論研究和系統開發上都取得了輝煌的成就。在當下,用戶希望關系數據庫穩定運行的同時,能夠橫向擴展,能夠無限大、無限快。
在目前市場上,數據庫特指占市場主導地位的傳統OLTP(聯機事務處理)領域的關系數據庫。只有這個產品,才是困擾我們多年的,無數人為之嘗試的數據庫產品。
依據數據模型發展的主要路線,數據庫技術的形成過程和發展歷程可主要分為如下幾個重要階段。
1.關系型數據庫
關系數據庫可以理解為使用二維表來表示。維護數據間的關系優點是滿足ACID原則,嚴格遵守數據完整性約束,保證數據一致性;具有標準化語言SQL。面對事務處理和分析決策的需求,OLTP事務型數據庫和OLAP分析型數據庫應運而生。
(1)OLTP。OLTP數據庫發展初期更多屬于集中式數據庫。OLTP業務系統必須保證數據強一致性,通常使用關系型數據模型,支持多并發、快速實時地實現增刪查改。集中式OLTP數據庫的局限性是缺乏橫向可擴展性,需要解決跨服務器擴充的問題,海量數據和高并發條件下讀寫效率較低。
(2)OLAP。系統可從多種維度并且高速分析來自數據集市、數據湖的數據,主要面向分析師和管理者,支持對歷史數據的復雜分析操作,OLTP是指業務在線交易系統,OLAP是指業務分析系統。OLTP和OLAP是相輔相成,互相補充的過程,同時OLAP多采用MPP架構。
2.NOSQL非關系型數據庫
針對關系型數據庫存在數據模型、性能、擴展性、伸縮性等方面的缺點,出現了NoSQL(非關系型數據庫技術)。NoSQL泛指非關系型數據庫,其中典型的以Key-Value為主要模式。NoSQL數據庫重點解決了傳統關系型數據庫硬件垂直擴展的局限性。通過分庫分表方式實現水平擴展。在互聯網行業中,基礎平臺追求省錢,不會去買商業化的產品。數據的操作模式很簡單,而NoSQL因為簡單所以最先能夠無障礙搭建分布式環境,能夠得到廣泛使用。筆者認為,它不是數據庫發展的后繼力量。如:內存數據庫(Redis)、列式儲數數據庫(HBase)等。其優點是可擴展性高,在犧牲一致性的前提下,通過橫向擴展提高可用性,無明顯的單點故障。缺點是在數據一致性方面有所犧牲;SQL標準化有待完善;事務的一致性無法保障,無法滿足ACID特性。
3.NEWSQL數據庫
NewSQL,新一代數據庫技術的研究和發展。2011年前后,451Group的MatthewAslett首先提出了NewSQL定義,用來表示新型、可橫向擴展的關系型數據庫。其中,大多NewSQL數據庫有兩個特點:其一,保持NoSQL數據庫的高性能和可擴展性;其二,必須保證事務的ACID特性,保證事物的一致性。采用標準SQL為主要接口的關系數據模型。如:TiDB、OceanBase。
下面再來分析NewSQL數據庫的分類:原生分布式和中間件(非原生)分布式。
對于金融機構而言,隨著時代的發展,大數據分析潛力無限,特別對數據庫“強一致性、高可用性、低時延性”的要求更為苛刻,同時眾多金融機構將分布式數據庫納入下一步選型的重點。分布式數據庫選型主要遵循“原生分布式”和傳統的“中間件+分庫分表”。基于中間件分布式數據庫優點在于:方案成熟;整體性能類似于單機數據庫,適用于金融機構低延時的要求。缺點在于:對業務開發的侵入強、不透明,開發工作量龐大;拓展性較差,數據分片后靜態、不可變;中間件負擔過重。
原生分布式數據庫完全拋棄小型機體系,從底層全新研發,具有分布式數據庫的高并發處理能力、高可用、高可擴展性,且對用戶透明管理。采用計算、管理、存儲分離的系統架構。實現計算下推到存儲節點的特性,提高了響應效率,實現各層獨立擴展、按需配置硬件設備的特點。優點在于:數據分片能夠依據熱點自動平衡到不同節點;業務開發沒有侵入,研發人員專注于業務開發;利用計算下推的強大能力,多個節點并行計算,提高業務處理效率,滿足輕量級實時分析。缺點是:架構較新,實踐案例相對較少;基于CAP理論“擴展性、可靠性、性能”三者只能同時滿足兩個;存算分離的架構,對運維人員要求較高。
將傳統關系型數據庫(集中式)、NOSQL、NEWSQL從橫向進行的一個比較(如表所示)。
表 傳統關系型數據庫(集中式)、
NOSQL、NEWSQL橫向比較

4.HTAP數據庫
HTAP是混合OLAP和OLTP業務同時在線處理的系統,2014年由Gartner公司提出,它打破了事務處理和數據分析之間的壁壘,支持業務在線信息處理和業務分析決策同時進行。
由于OLAP型數據庫大多需要離線將OLTP數據導出,這就會造成數據時效性的降低。一些對決策時效性要求較高的場景就會對OLTP和OLAP混合的數據庫需求較大,所以衍生出了HTAP數據庫,其數據的存放方式大多為行列混存方式。
分布式和集中式數據庫的抉擇
綜上所述,集中式數據庫與分布式交易數據庫的處理性能、硬件擴展性,存在較大差距。這個性能差距存在的前提是“數據量”。在幾億數據量的級別下,集中式數據庫通過數據壓縮和服務器內存、CPU,完全能夠將這些數據存儲在單臺服務器的存儲或者內存中。這種情況下,分布式數據庫的二階段提交執行的代碼、網絡開銷都會對事務提交造成極大的延時。
分布式數據庫主要場景應用于單臺數據庫無法處理海量數據,對并發要求高,分布式數據庫是這類需求的絕佳選擇。這類業務的數據量往往以數百億甚至達到萬億級別。
筆者認為,如果應用數據量并不大,一個集中式數據庫實例就裝得下,并且傳統關系型數據庫架構的性能足以應對數據訪問負載,那么就不需要使用分布式事務,從而獲得更好的性能。在數據量、業務并發量可控的前提下,集中式數據庫可以帶來更低的響應延遲,減少投入成本,從而獲得最大性價比。如果業務系統集中式架構就可以完全滿足,卻選擇了分布式架構,無形中就會多投入很多服務器資源,而分布式數據庫更契合于海量數據(數億甚至達到萬億級別)、計算資源、存儲資源的擴縮容能力是集中式數據庫所不具備的。千萬不要為了分布式而分布式。
金融行業數據庫未來發展趨勢
1.趨勢一:HTAP
OLTP→OLAP→HTAP(混合型):融合OLTP和OLAP的HTAP發展迅速。大數據時代數據價值深入挖掘,更多企業對數據庫系統也提出了更高要求。當前階段,企業為滿足業務需求,最為常用OLTP結合OLAP的組合拳,但兩套系統之間數據交互延時的壁壘無法避免。同時還需要管理兩個數據庫平臺、投入更多硬件設備、組建兩支技術團隊,運維成本高。HTAP混合型數據庫,基于全新存、算分離部署架構,能同時處理OLTP和OLAP兩種業務能力,規避了傳統架構模型中,大數據量傳輸造成的硬件浪費和響應延遲。同時基于分布式架構,可在線按需擴展存儲和計算資源,應對高并發、海量數據場景。
筆者相信,國內數據庫未來是分布式與集中式并存,HTAP是未來的趨勢。
2.趨勢二:開源
2021年3月,開源正式被列入“十四五”規劃發展綱要。從產業發展角度來看,一方面開源社區匯聚了全球的技術力量,有助于產品的技術創新,為技術交流提供空間,加速企業創新能力誕生;另一方面提高了數據庫產品開發的效率,提高了基礎程序的共享、復用。對于系統廠商而言,雖然表面上看,企業推進開源要投入大量技術力量,而且不能獲得直接的利潤,但在這個過程中,可以布局軟件產品的生態圈,包括教育培訓、實踐反饋、產品影響力、配套周邊產品等,從而在戰略上占據有利的地形。如果不選擇開源,一來傳播速度會很慢,二來用戶的信任成本會很高,最致命的是用戶的增長并不會是一種病毒傳播式的增長,進而導致產品的迭代速度會變得很慢。數據庫產品作為一個“需要被用出來”的基礎軟件,只有產品不斷迭代,才能逐步完善。
瀟湘信安
聚銘網絡
關鍵基礎設施安全應急響應中心
一顆小胡椒
奇安信集團
中國信通院CAICT
看雪學苑
虹科網絡安全
信息安全與通信保密雜志社
商密君
一顆小胡椒
一顆小胡椒