2017年資料庫技術和市場盤點 :分散式架構下數據、業務多樣性支持成為未來方向王濤

進入2017年,資料庫技術持續向前發展,分散式架構下,資料庫對於數據多樣性、業務多樣性的支持成為了業界的共識。

隨著大數據概念與技術不斷深入各個行業,分散式技術正在飛速地發展,甚至在一些傳統行業中也已經漸漸顯示出取代傳統資料庫技術的趨勢。2017年,新一代的資料庫技術正在從快速發展和期開始轉入了產品成熟期,MongoDB經過十年終於IPO,可以說為新一代資料庫又打下一記強心針。

同時,隨著我國「去IOE」浪潮的不斷進步,伺服器與存儲層面的「I」與「E」早已經被國內硬體公司取代;而最難被替換的「O」,如今在國內也出現了多家自主研發資料庫的廠商,漸漸被國內外用戶所認可。阿里巴巴的Oceanbase資料庫在「雙十一」再次突破了資料庫性能的記錄,交易峰值達到25.6萬/秒,也為中國資料庫行業在整個資料庫業界又一次打響了名聲。

以此為引,我們也來盤點一下整個2017年的資料庫技術和行業。

資料庫行業動態

1.分散式資料庫向核心業務邁進

2017年隨著分散式資料庫技術持續發展,「金融級資料庫」概念的提出,標誌著新型分散式資料庫從互聯網非核心應用開始漸漸向傳統企業的核心業務滲透。

相對於在互聯網行業被廣泛應用的開源分散式資料庫,「金融級」資料庫意味著一系列在金融或相關對數據可靠性穩定性要求極高的行業中,被大規模驗證與應用的資料庫產品。一般來說,一款被廣泛使用的金融級資料庫除了在性能與功能上擁有優秀的表現以外,其穩定性、可靠性、可運維性等最重要的數據安全特性也被得到證明。

長期以來,金融級資料庫市場被Oracle、IBMDB2、Microsoft SQL Server等傳統關係型資料庫所壟斷。在經歷了幾十年的發展與迭代後,傳統關係型資料庫已經無法適應新型金融科技發展的需要。因此,由新型分散式資料庫替代傳統架構,成為金融級資料庫市場的主流趨勢。

在過去的幾十年中,受限於傳統資料庫的存儲與計算能力,企業中不同業務部門之間的數據往往以獨立的方式分別存放。而伴隨著金融科技新型業務的不斷發展,跨部門、跨業務的數據訪問成為企業的核心需求。但是,各業務系統獨立存放的數據往往形成一個個「數據孤島」,使得企業內部的數據管理面臨極大的挑戰。

2.資料庫類型多樣化

新型分散式資料庫的出現旨在打破傳統數據管理的體系,將跨業務、多類型的數據進行統一的管理與維護,從數據的層面將企業內部的各個部門與業務線融會貫通。

在Gartner的資料庫報告中可以看出,進入2017資料庫象限的資料庫產品數量比以往較少。而新型分散式資料庫市場也逐步成熟,資料庫在往著多模式的方向發展。「NoSQL」這個詞語已經被「Non-Relational Database」所取代,一些過去不支持SQL的非關係型分散式資料庫也開始擁抱傳統資料庫的特性,例如標準SQL支持、OLTP特性與ACID支持等。

同時,在新型資料庫高速發展的同時,傳統關係型資料庫不管是從可持續型、生態、用戶數還是技術普遍性來講,都不能被忽視。但是傳統資料庫在大數據量與高並發操作上有時候也捉襟見肘。非關係型的資料庫不斷地發展對於操作事務的支持,且同時具有多模(multi-model)來滿足不同的應用場景,尤其是分散式OLTP的發展,使新型分散式資料庫在不遠的將來會成為傳統交易型資料庫最大的威脅。

3.聯機操作型場景大規模增長

從使用場景來看,傳統關係型資料庫依然牢牢把持著交易型業務的頭把交椅,而新型分散式資料庫的管理和應用方向則集中在兩個領域。第一,大數據分析相關,針對海量數據的挖掘、複雜的分析計算;第二,在線數據操作,包括分散式交易型操作、和海量數據的實時訪問與高並發查詢操作。一般來說,用戶會根據業務場景以及對數據處理結果的期望選擇不同的分散式資料庫產品。

如今企業中分散式資料庫最主要的應用場景則集中在聯機類業務中。與在線交易業務不同,聯機類業務對於分散式事務一致性的要求相對較低,傳統企業中當前使用場景主要以核心系統瘦身肩負、歷史數據的在線以及高性能的互聯網化應用居多。

相比起以面向內部業務居多的數據倉庫,由於聯機類業務往往面對最終客戶,因此傳統企業對該類資料庫的可靠性與安全性尤其關注。因此,僅僅通過三副本保障單集群中高可用遠遠不夠,大多數企業對於面向最終客戶的業務系統提出了兩地三中心甚至雙活的架構需求,使得真正滿足金融級需求的聯機類資料庫受到關注。

Hadoop框架中的HBase一定程度上滿足企業對於分散式聯機類資料庫的需求,但是其複雜的運維以及開發模式對於一些傳統企業來說門檻相對較高。而在國內金融行業中SequoiaDB巨杉資料庫則佔據了大量的市場份額,其SQL與OLTP的支持能力、兩地三中心、與Apache Spark緊密結合等眾多企業級特性受到大量銀行客戶的青睞。

技術方向

1.分散式架構

分散式架構是資料庫發展的大勢所趨。分散式架構顯著提升大容量數據存儲和管理能力,既保障面對大量用戶的高並發需求,又保障了面對業務變化的彈性增長能力。分散式資料庫的使用成本,也遠低於傳統資料庫。

由於分散式架構主要使用PC伺服器與內置盤,因此幾乎全部新型分散式資料庫均使用多副本技術來保障數據的可靠性與安全性。而對於對象存儲領域來說,隨著Hadoop 3.0版本的發布,糾刪碼技術也被正式引入HDFS。如今,包括Ceph在內的業界大部分分散式對象存儲均支持三副本與糾刪碼機制,可以使用戶針對不同場景,在性能、可靠性、與成本幾個要素中進行選擇。

另外,企業對於分散式交易系統的主流做法依然是在應用層分庫分表,或使用Proxy Server。原生支持分散式事務與OLTP的分散式資料庫依然僅停留在互聯網的外圍系統進行簡單使用,而對於核心應用以及金融級服務還尚有很長的路要走。

2.多模Multimodel

分散式資料庫在近幾年有著極大的轉型,從單一的關係型數據模型向多模的數據模型轉移,將OLTP、聯機高並發查詢以及支持大數據加工和分析結合起來,不再單獨以OLAP作為設計目標。

Multi-Model多模是指在單個資料庫平台中支持非結構化結構化數據在內的多種數據類型。一直以來,傳統關係型資料庫僅支持表單類型的結構化數據存儲和訪問能力,而對於層次型對象、圖片影像等半結構化與非結構化數據管理無能為力。如今,隨著應用類型的多樣化和存儲成本的降低,單一數據類型已經無法滿足許多綜合性業務平台的需求。

資料庫層面的Multi-Model和非結構化數據管理,將能實現結構化、半結構化和非結構化數據的統一管理,實現非結構化數據的實時訪問,大大降低了運維和應用的成本。

同時,非關係型資料庫在訪問模式上也漸漸將SQL、K/V、文檔、寬表、圖等分支互相融合,支持除了SQL查詢語言之外的其他訪問模式,大大豐富了過去NoSQL資料庫單一的設計用途。

一般來說,多模資料庫通過支持不同類型的存儲結構甚至資料庫引擎,來達到存儲不同類型數據的目的。譬如像IBM DB2使用BLOB方式來進行JSON的支持;MongoDB則通過將對象切片存入JSON記錄來實現GridFS;而類似SequoiaDB巨杉資料庫則是提供原生的JSON存儲與塊存儲來分別對JSON、表記錄與對象進行有效存放。

3.交易分析混合場景(HTAP)

根據Gartner的最新定義,混合負載(HTAPHybrid Transactional/Analytical Processing)在保留原有在線交易功能的同時,也強調了資料庫原生計算分析的能力。支持混合負載的資料庫能夠避免在傳統架構中,在線與離線資料庫之間大量的數據交互,同時也能夠針對最新的業務數據進行實時統計分析。

HTAP這種事務和分析能力並存的資料庫需求旺盛,但是這越來越依賴於一體化基於資料庫分析能力(In-DBMS Analytics),特別是對於實時以及過程處理中的數據分析要求。這種分析能力與目前大數據的數據分析和挖掘不同,強調更多的實時性和交互操作能力,而不僅僅滿足於T+1的傳統離線統計分析。

當前HTAP資料庫主要有兩類實現方式。類似SAPHana的內存計算機制,通過使用大內存PC伺服器將全部數據緩存在內存中,確保分析與在線交易業務同時運行時也不會產生大量的I/O競爭。

而另一類分散式資料庫則通過讀寫分離的機制,將統計分析類業務與在線交易業務運行在不同的物理設備中,以避免分析與交易業務的I/O競爭。如一個3副本的主從節點結構,高性能的實時在線業務運行在主節點上,保證實時性能,而不同物理機器的兩個從節點則可以對接分析型業務,不影響主節點的業務性能。同時,針對業務的需求,還可以靈活的提供更高性能的硬體設備以滿足在線業務的性能需求或是分析業務的大數據量。

4.OLTP和分散式事務能力

業界是否需要原生的分散式交易型資料庫,在非互聯網行業中還存在一定的爭論。在大部分的傳統行業中,其核心業務所涉及到的業務量相比起流水與後台分析系統來說較小,在大部分業務場景中使用傳統Oracle綽綽有餘。因此,分散式交易型資料庫在大部分行業中還停留在行業調研階段。

而主流的互聯網公司或傳統行業中部分互聯網應用開始使用分庫分表或Proxy Server等機制,將類似MySQL、Oracle等傳統關係型資料庫使用XA機制並聯起來,已達到處理分散式事務的目的。Oracle 12c Sharding架構是一個非常典型的通過Proxy Server實現分庫分表的架構實現。

純粹的分散式交易型資料庫在國外以CockroachDB、NuoDB等為代表,國內則包括SequoiaDB與TiDB等,均通過實現分散式事務與鎖機制來提供跨節點跨表的OLTP支持能力。

預計在未來很長一段時間,以支持傳統資料庫Proxy Server的分散式事務能力與原生分散式OLTP資料庫將會並存,企業只有當漸漸接受並信任新型分散式資料庫內核後,才會大規模在核心生產系統中使用新型分散式OLTP資料庫。

5.資料庫雲架構

雲架構整合對於資料庫未來發展也是一個比較重要的特性,雖然分散式架構下是原生支持雲架構的,但是對於資料庫雲DBaaS來說,仍有許多新的要求。

對於資料庫雲服務的定義,是具有一定程度自助服務的可伸縮的,彈性的多租戶訂閱服務。它由雲服務提供商(CSP)本身或是基於了CSP的基礎架構的第三方軟體供應商提供的產品或是服務。同時資料庫雲服務,是不允許直接訪問後台底層的系統服務如操作系統和存儲軟體的。這一領域上,Gartner也有意將DBaaS劃分在 PaaS的層面,與IaaS或者IaaS+區分開。

資料庫和雲的整合是業界的大勢所趨,其中AWS無可置疑是公有雲中提供最為全面資料庫服務的廠商。AWS的DynamoDB和RDS甚至包括其S3對象存儲等都是其資料庫雲服務的重要組成。同時,微軟的SQL Server依靠Azure在企業中大規模推廣,開始逐漸進入傳統以Unix為主的企業級環境中。從國內的市場看,以阿里雲資料庫為代表的產品在公有雲環境中大行其道。一般來說,大部分公有雲廠商會將MySQL或Oracle以服務或鏡像的方式部署在自己的雲市場或直接提供相關的服務。有些實力較強的雲服務上會基於開源資料庫產品進行一定的配置或改造,使其支持多副本、高可用等特性。

小結

2017年全球的資料庫市場在面臨巨大的變革。傳統關係型資料庫Oracle與Microsoft SQL Server正在面臨下行。在DB-Engine排名中,2017年12月與去年同期相比,這兩款資料庫評分分別下滑62.86與54.17。

同時,新型分散式資料庫則開始不僅僅停留在離線統計分析業務中,而是慢慢被在線業務所接受。在金融與電信行業中,基本上所有的大型機構均開始在生產環境使用Hadoop與HBase,而其他類似SequoiaDB巨杉資料庫的Multimodel+HTAP多模分散式資料庫也已經被大量金融機構所認可。

互聯網行業中,MySQL依然佔據主導地位,而PostgreSQL的使用量有了明顯增加,同時,這些社區型產品也漸漸開始被廣大互聯網企業應用於核心業務中。

2017年可以說是國內新一代自主研發資料庫崛起的元年,我國的資料庫產品首次上榜Gartner的資料庫廠商列表,並且一下子就出現了3家。這說明中國的基礎軟體發展已經被國際社會所認可,國內的基礎軟體產品不論從技術、商業化、與發展方向都與國際一線資料庫產品對齊,被海內外業界所認可。

本次Gartner所評選出的三家國內資料庫廠商分別為阿里巴巴雲資料庫、SequoiaDB巨杉資料庫、與南大通用GBase,分別代表雲關係型資料庫、多模分散式資料庫、以及數據倉庫三個領域。

對於中國資料庫市場,隨著中國互聯網行業的飛速窪站,移動互聯網變革的需求推動下,中國市場呈現出前所未有的活躍度,而巨大的國內市場和全球獨一無二的龐大用戶群和用戶需求,給國內技術廠商錘鍊技術提供了肥沃的土壤,在基礎軟體市場,特別是資料庫市場也不例外,這種在任何其他國家都不會遇到的複雜多變的應用場景。另一方面,中國在數據安全方面也有領先全球的監管和政策要求,特別是金融等核心行業,對「兩地三中心」等數據安全保證有著做高級別的要求。這些都從需求方向推動了中國基礎軟體,特別是資料庫軟體的不斷發展。

中國以前一直無法出現大的基礎軟體或者是資料庫軟體公司,很大一部分原因是由於基因問題,海外基礎軟體或者資料庫軟體公司大部分是從上一代的基礎軟體或者資料庫公司傳承下來的,因此在基礎技術方面有一定的積累。但從2010年開始,國內的企業開始積極的參與到了國際開源、國際社區的建設之中,一些由國人主導的項目也越來越多。再加上國內廠商通過多年和整個業界的交流,國內廠商已經逐漸彌補了在基因方面的不足,到了從量變到質變的階段,也期待未來中國資料庫行業的更大發展。


推薦閱讀:

PhxPaxos架構設計、實現分析
UCloud雲資料庫團隊誠招分散式資料庫研發
大國崛起:資料庫領域的中國力量
分散式時序資料庫 - LinDB

TAG:大數據 | 資料庫 | 分散式資料庫 |