當前位置:
首頁 > 最新 > 2017年資料庫技術盤點

2017年資料庫技術盤點

作者 | 那海藍藍,小編0.7,大米

責編 | 仲培藝

在資料庫領域,回顧2017這一年,精彩紛呈,熱點不斷,而且不乏標誌性的事件發生。

如Oracle提出的自治資料庫這樣的概念,把資料庫技術帶入一個新世界。其實AI技術應用於資料庫由來已久,如AI技術調優資料庫的性能、AI技術優化SQL、AI技術自動創建資料庫索引(Learned Index)等。但是能把AI和資料庫結合使之進入大眾視野的,還非「自治資料庫」莫屬。

再如NDBC(中國計算機學會資料庫學術年會)慶祝四十華誕、阿里入股MariaDB、國內類Aurora架構的產品爭相發布、資料庫事務處理等核心技術的原創書籍出版、社區活動遍地開花……無一不在彰示著國內資料庫界的精彩和繁榮。

我們將從學術界、工程界的角度,從國外到國內,從資料庫內核技術到資料庫運維等多種角度,一起來回顧精彩的2017。

百看不厭的資料庫排行榜

截至2017年12月,在DB-Engines上排名的資料庫引擎已多達361種。

從圖1可見,Oracle、MySQL和Microsoft SQL Server穩居前三,一路遙遙領先。

圖1 2017年12月資料庫Top5圖

但位於成熟期的同時,其成長空間也受到了一定的限制。Oracle雖保持第一,但處於明顯下滑趨勢;MySQL在2017年6月表現出色,幾乎與Oracle持平,但後半年開始有所下滑;Microsoft SQL Server自2015年9月跌至谷底後一路回升,於2017年趨於穩定,但總體仍處於下滑趨勢。雖說沒有顯著上升,但RDBMS三巨頭雄踞排行榜top3已然且在不久的將來仍會是事實。

再把目光延伸至top20,就會驚人地發現,NoSQL家族正在爆炸式崛起。MongoDB、Redis、Cassandra、HBase和Hive年輕氣盛,一路飆升,從2014年到2017年均已實現分值翻倍(圖2)。穩坐非關係型資料庫第一把交椅的MongoDB,從2009年的首度推出到現在不過十年,便已躋身top5,其發展潛力讓人期待。

圖2 2013-2017 NoSQL資料庫Top5分值變化圖

資料庫產品的起起伏伏,是資料庫工程界的一個風向標,但不是資料庫界的全部。2017這一年,資料庫的理論界也因AI而亮點多多。接下來,讓我們睜眼看看世界,然後瞪大眼睛反觀一下國內的情景。

地球就那麼大,世界的大門早已打開

以前,國內資料庫技術一直在跟跑國外的資料庫技術,學術研究隊伍如此,工程實踐隊伍也如此。可以說,在資料庫技術的世界裡,我們前30多年一直在學習、一直在探索。而國際的前沿技術引路者,還在不斷引領資料庫技術的潮流。2017這一年,世界上的一些重大事件如自治資料庫的概念推出、Aurora相關技術的論文發表、Spanner用論文宣告成為關係型資料庫系統等,都在影響著國內的技術圈子。


2017年的Oracle Open World大會上,Oracle總裁拉里·埃里森公布了新殺器,Oracle自治資料庫雲。這款全球首款「自動駕駛」的資料庫,集成了人工智慧和自適應的機器學習技術,實現全面自動化。

自治資料庫雲的實現,是基於Oracle Database 18c的。對比目前的Oracle資料庫,Oracle 18c在性能、內存優化、可用性、安全性、數據倉庫等方面都作出優化提升,向HTAP資料庫的目標更進一步。

Oracle自治資料庫雲,消除了複雜性、人為錯誤和人工管理,能夠以更低的成本提供更高的可靠性、安全性和運營效率。通過融合機器學習技術,自治資料庫雲具備這些特點:

自主驅動:完全自動化的打補丁、升級、備份和可用性架構,可執行所有日常資料庫維護任務,無需任何人工干預。

消除人為錯誤:

自動恢復功能可自動檢測並應用糾正措施,Oracle 自治資料庫雲將自動實施 Oracle Real Application Clusters (RAC) 和跨區域 Oracle Active Data Guard,確保持續的可用性。

Oracle SLA確保99.995%的可靠性和可用性,把代價高昂的計劃內和計劃外停機控制在每年30分鐘內。

無需手動性能調優:採用自適應機器學習技術,自動激活列式緩存、存儲索引、壓縮和資源優先排序,根據負載所執行的實際工作分配資源,避免代價高昂的過度供應。

Oracle推出Oracle 18c和自治資料庫雲,正指出了資料庫領域的發展趨勢:資料庫HTAP化,和人工智慧結合,機器學習代替人工完成繁瑣的資料庫操作。放眼看去,如卡內基·梅隆的ottertune,一些開源項目順應潮流,向智能化、自動化資料庫靠近。

另外,這一年,Oracle發布12c R2版本,也就是12.2.0.1,多方面得到提升,包括:

可用性方面:數據保護、邏輯複製、在線操作、分片等的表現得到提升,同時簡化了升級操作。

大數據和數據倉庫:完善大數據管理系統結構、提供資料庫內的多維度分析、加強查詢處理和優化等。

性能方面:優化共享隊列,全局共享Oracle雲連接池,增強Java虛擬機上Oracle資料庫的性能,完善內存資料庫,簡單支持非結構化數據存取等。

壓縮、管理、公有雲、安全性、空間和圖等特性得到增強。

在資料庫的世界裡,Oracle依舊是獨佔鰲頭。


2017年,Amazon在SIGMOD上發表了論文《Amazon Aurora: Design Considerations for High Throughput Cloud Native Relational Databases》,描述了Amazon的雲資料庫Aurora的架構。基於MySQL的Aurora對於單點寫多點讀的主從架構做了進一步的發展,使得事務和存儲引擎分離,為資料庫架構的發展提供了具有實戰意義的已實踐用例。其主要特點如下:

實踐了「日誌即資料庫」(參考《High Performance Transactions in Deuteronomy》) 的理念。

事務引擎和存儲引擎分離。

數據緩衝區提前預熱。

REDO日誌從事務引擎中剝離,歸併到存儲引擎中。

儲存層可以有6個副本,多個副本之間通過Gossip協議可以保障數據的「自愈」能力。

主備服務的備機可達15份,提供強大的讀服務能力。

持續可靠的雲資料庫服務能力。

數據存儲跨多個區:提供了多級別容災能力。

數據容災能力:數據冗餘、備份、實時恢復等多種能力集成到雲服務,提高數據保障能力。

萬能資料庫的概念呼之欲出。

而2017年尾,AWS的技術大會上,又爆料稱AWS支持:multi write、類TureTime、Serveless等,這些都和最新的趨勢緊密相融,前兩者對應分散式資料庫,後者對應資料庫雲化。

Aurora對國內的計算與存儲分離的產品研發影響深遠,阿里的PolarDB、X-DB,華為的FusionInsight系列等都在向Aurora對齊。相傳,騰訊、京東等都躍躍欲試準備做類Aurora的產品。可見Aurora對國內的影響深遠。


2012年的《Spanner: Google』s Globally-Distributed Database》論文描述了基於KV系統(《Bigtable: A Distributed Storage System for Structured Data》)實現的一個半資料庫式的「分散式系統」(《Spanner: Becoming a SQL System》:Spanner is built on ideas from both the systems and database communities.) ,這個系統具備了大規模的擴展性,具有如下幾個方面的特色:可擴展性、自動分片、容錯性、一致性複製、外部一致性,和數據廣域分布。這些特色是通過提供了多行事務、外部一致性、跨數據中心的透明故障轉移等功能實現的。Spanner開創了NoSQL分散式資料庫的新時代,主要解決了如下問題:

1. 數據分布

2. 多副本高可用:failover

3. 分散式事務處理:外部一致

4. 計算分布(通過F1支持SQL,松耦合結構)

5. KV存儲模型

2017年,Google發表了一篇題為《Spanner: Becoming a SQL System》的論文。這篇論文描述了查詢執行的切分、瞬態故障情況下查詢重新執行、驅動查詢做路由和索引查找的範圍查詢,以及改進的基於塊的列存等分散式查詢優化技術。

較之2012年的Spanner,本篇論文提到新增功能為:強類型的模式管理系統、查詢處理器和關係模型存儲及列存系統,並論述了2012年以來,Spanner系統向關係型資料庫演進的歷程,新論文愉快地表示Spanner從一個NoSQL系統已經全面演進為了一個關係型分散式資料庫系統。

這篇論文表明如下幾點事實:

1. 有分散式基因的NoSQL是可以進化為NewSQL的,進化的途徑可參考Spanner的發展歷程,而Spanner也給出了進化方式的建議(有了分散式處理能力後及早向關係型演進)。

2. 這種進化具有「快樂」的「進步」意義。快樂如論文標題宣稱「成為了」一個SQL系統,口氣十分自豪;進步如論文標題宣稱Spanner已經是一個「SQL」系統了,即具備了關係存儲和關係運算的能力。

3. NewSQL的一個特徵是支持混合數據類型存儲,如Spanner支持NoSQL也支持關係存儲模型。而支持關係模型將是NewSQL系統的一個重要特徵。

4. Spanner的另外一個特徵是由松耦合的系統進化到一個高效的緊耦合系統,這樣的系統能夠處理各種類型的大數據。與此不同的是目前的大數據處理組件因松耦合而導致三難(選型難、使用難、維護難)。這表明大數據處理的技術架構可能從松耦合向緊耦合演進。

從Spanner的演化,我們可以感知關係型資料庫的春天重返故里,而分散式關係型資料庫已經踏著資料庫前進的節拍走到了我們眼前。現在,已經不是潮流來臨,而是在席捲2017年的我們,並繼續橫掃2018。以此來觀察資料庫界,這一年,OceanBase、TDSQL、TiDB、CockroachDB等主流分散式資料庫即NewSQL系統正如火如荼地發展著,技術層面不斷向Spanner靠攏。


隨著互聯網Web2.0網站的興起,傳統的關係資料庫在應付超大規模和高並發的SNS類型的純動態網站時已經顯得力不從心,而NoSQL資料庫由於其本身的特點得到了非常迅速的發展。

NoSQL家族主要分為鍵值(Key-Value)存儲資料庫、列存儲資料庫、文檔型資料庫和圖資料庫四大類,其產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,故場景化也格外明顯。

鍵值存儲資料庫適用於內容緩存,主要用於處理大量數據的高訪問負載,也用於一些日誌系統等。

列存儲資料庫適用於分散式的文件系統;文檔型資料庫適用於Web應用(與Key-Value類似,Value是結構化的,不同的是資料庫能夠了解Value的內容)。

圖資料庫適用於社交網路、推薦系統等,專註於構建關係圖譜,如果與AI結合起來,我們可以設想一下他們美好的未來。

NoSQL資料庫並沒有一個統一的架構,而是各有所長,一個成功的NoSQL必然特別適用於某些場合或者某些應用。

還有意思的是,Kafka今年終於正式迎來了1.0.0版本,不僅標識著各組件功能的穩定性,還引入了一些新的功能:Kafka Streams API的優化(增加了一些全新的操作運算元如cogroup等);JMX監控指標的完善(引入很多集群健康度檢查指標,對Kafka Connect監控體系做了較大程度的補足);優化SASL認證錯誤的處理;強化對JBOD磁碟崩潰的處理;冪等producer的優化。此外,Kafka新引入了KSQL引擎,使得其更像一個流資料庫而存在。

2017年,從關係型資料庫之外的其他資料庫,我們看到,資料庫正在朝場景化方向發展,不同類型的資料庫適用於不同的場景,資料庫產品只有做好自己的場景定位,才能謀取到更大的發展。


2017年5月,微軟還發布了首款全球分散式多模型資料庫Azure Cosmos DB,這是一款全球可用的JSON資料庫平台。可以看到,關係資料庫廠商搶佔NoSQL市場的鏖戰也將日趨激烈,幾年前,PostgreSQL和MySQL已經支持了JSON類型數據,另外還有老牌的Infomix也是如此。

2017年10月,微軟發布了SQL Server 2017 CTP2.1正式版。這是SQL Server歷史上首次同時發布Windows和Linux版,並支持Docker部署。從資料庫排行榜看,微軟佔據第三位,遙遙領先第四位PostgreSQL。SQL Server似乎風光依舊。

但是,在國內,SQL Server已經很難打開高端市場的局面了(幾乎就是Oracle和MySQL的天下)。其實在國內,得益於在教育領域的耕耘和出色的產品易用性,SQL Server有著比較好的群眾基礎和親和形象。但一直以來,SQL Server都給大部分人群留下「適用於中小企業」的陳舊印象,再加上缺乏本地技術社區的建設,SQL Server已經漸漸淡出「高端玩家」的視野。若想要反轉局面,那麼進一步塑造品牌、打造標杆案例、不斷提升產品和建設本地技術社區是SQL Server浴火重生的必經之路。

無獨有偶,起源於上世紀80年代的Informix,一個全球市場佔有率曾經超過10%的元老級資料庫,如今也面臨著窘境。一個曾經是世界上最好的關係型資料庫,卻因為企業自身的經營問題,掩蓋了技術上的成功。2001年,Informix被IBM公司接管,雖然一直保持更新,但是銷售始終不盡人意。終於在2017年5月1日,印度的HCL公司宣布正式接管Informix研發和支持團隊,這將重寫Informix與國內三家公司的關係。在此之前,IBM公司將Informix授權給了南大通用、華勝信泰和福建星瑞格這三家中國資料庫廠商以期合作。現在變數未定。Informix或許再也不能恢復當年的輝煌,但我們有理由相信,一定能夠在眾多國內知名資料庫里看到Informix的影子,看到它的技術精華被傳承下去。

其實在IBM公司接管Informix期間,就融合了Informix的技術成就了DB2資料庫。到了2017年6月22日,DB2已經發布了V11.1 Mod Pack 2 and Fix Pack 2版本,增強了crash recovery和SQL直接對JSON格式的數據進行操作的能力,包含了更多函數的支持。在DB-Engines上,DB2也有著排名第六的不錯成績。相較Informix,DB2顯然更受IBM公司的青睞,但這仍掩蓋不了DB2在中國銷售不佳的事實(主要集中於金融行業)。DB2因其入門慢、市場推廣差,往往不是用戶的第一,甚至第二選擇。

2017年9月,SAP發布了HANA 2.0 SPS 02最新版本,為支持使用最新內存技術運行業務,主要新增了以下四大功能:一是資料庫功能的增強,包括高可用性和災難恢復等。二是提供了高級分析處理能力,如使用SAP HANA預測分析庫(PAL),以簡化調用演算法的方式加速預測性應用程序開發,並能夠使用SAP Web HANA for SAP HANA開發預測性和機器學習模型等。三是應用程序開發和工具增強。四是數據管理功能增強等。但HANA在國內的表現,尚在普通之列。


讓我們來看看2017年,開源資料庫都有哪些精彩的表現。

MySQL

10月發布最新的穩定版本5.7.20,修復很多bug,針對審計、Docker、安全、插件、複製、參數配置和管理等方面做了更新和調整。

日誌審計功能增強;安全功能增強;X plugin更新;複製功能增強和更新。

修復Docker中MySQL鏡像丟失的bug。

棄用、去除了一些配置參數,比如tx_isolation和tx_read_only將被棄用。

9月發布最新MySQL 8.0.3 RC版本,此版本在賬戶管理、原子DDL、性能優化、安全等方面做出優化,並且修復了大量bug。

支持角色管理,角色是一系列許可權的集合,可以給某個用戶授予和回收角色,使用角色可以更方便進行許可權管理。

InnoDB存儲引擎支持原子DDL操作,包括表相關DDL和非表相關DDL。

採用新的數據字典,所有元數據都用InnoDB引擎存儲,以解決DDL的原子性問題。

修復歷史悠久的bug,8.0版本不再重置auto_increment值。

MariaDB

11月發布最新版本10.2.11,此版本在優化、系統變數、主備複製、存儲引擎等方面做出補充和改進。

現在InnoDB作為默認存儲引擎,添加MyRocks存儲引擎的alpha版本。

引入窗口函數。

更新InnoDB到5.7.18版本。

更新TokuDB到5.6.7-82.2。

PostgreSQL

11月發布新版本10.1,PostgreSQL 10的重磅特性有並行計算、邏輯訂閱、FDW pushdown和sharding等。

支持陳述性表分區。

支持預寫日誌支持哈希索引。

主備複製,支持邏輯複製,同步複製的仲裁提交。

性能提升,支持並行點陣圖堆掃描、B-樹索引掃描、合併連接。

TiDB

10月發布GA版本(TiDB1.0),該版本對 MySQL 兼容性、SQL 優化器、系統穩定性、性能等方面做了大量的工作:

SQL查詢優化器(調整代價模型,Analyze下推,函數簽名下推)。

優化內部數據格式,減小中間結果大小。

提升MySQL兼容性。

支持NO_SQL_CACHE語法,控制存儲引擎對緩存的使用。

重構Hash Aggregator運算元,降低內存使用。

支持Stream Aggregator運算元。

MongoDB

於2017年10月19日在納斯達克上市,11月發行最新版本3.6,伴隨著MongoDB 3.6的 發布,MongoDB Team提供了一個方便開發者的指南社區。新版本主要提供以下幾個功能:

Change stream,通過Oplog監聽一個集合的DML事件,用來實現pubsub類型的場景。

Retryable writes,當集群出現換主現象時,寫入操作會被自動重試從而保證應用端的透明。

Tunable consistency,MongoDB提供可調的一致性(一致或最終一致),並在query中定義。

Greater query and update expressivity,支持操作嵌套數組;提供新的聚合操作符,以及在查詢語法中使用聚合表達式。

Apache Cassandra

最新版3.11.1,發佈於2017年10月,此版本在完善功能、提高性能等方面做出大量工作,並且修復眾多bug:

sstableloader忽略「ignore」選項。

實現分區邊界的short read protection。

提升TRUNCATE性能、提升short read protection性能。

修復對SuperColumn表的支持。

總體上來看,在DB-Engines排名top5中,開源資料庫就佔了三席,分別為MySQL、PostgreSQL和MongoDB。這些開源的資料庫,究其成功的根本原因,是在放棄部分著作權的前提下,贏得了三大好處:培養開源社區,獲得更大的用戶群體;降低該產品和相關產品的技術支持成本;通過開源社區得到更多的衍生作品,提供更好的生態環境。

我們相信,在2018乃至更長遠的未來,開源資料庫會越走越好。


CockroachDB是一個分散式類Spanner架構的資料庫,通過基於時間戳的MVCC技術,完整地支持了ACID語義。在隔離級別層面,支持SSI和SI,且SSI作為默認級別。

對於SSI,CockroachDB受「write-snapshot isolation 」(詳情參見《資料庫事務處理的藝術:事務管理與並發控制》6.3.4節)技術影響較大,著力於解決讀-寫衝突,以實現SSI。

CockroachDB支持外部一致性,支持有限的線性一致性。

2017年10月CockroachDB發布1.1版本,引入了快速並發導入數據的功能,主要做了三方面的工作:

1. 從遺留資料庫進行無縫遷移 。

2. 簡化集群管理。

3. 為雲環境提高性能。

在《What』s Really New with NewSQL?》這篇論文里,如圖3,NewSQL被分為了三種類型,CockroachDB、Spanner、TiDB歸屬第一類NewSQL。

圖3 NewSQL類型圖

TDSQL、DRDS等這樣的產品歸屬第二類NewSQL,但是從2017年TDSQL的發展來看,TDSQL從架構上更加靠近第一類NewSQL。

而Aurora這樣的產品,被劃分為第三類NewSQL系統。但Aurora公布了multi write之後,其架構是否也會向第一類NewSQL靠近呢?

未來的世界,我們相信,NewSQL會繼續引領資料庫的潮流,每種類型的NewSQL會相互借鑒、不斷融合、協同發展。

中國資料庫起源與發展


2017年金秋十月,第34屆中國資料庫學術會議(NDBC 2017)在西子湖畔成功召開,大會聚集了全國數據處理技術領域的前輩、專家、學者、師生。

在四十年前,即1977年,中國資料庫的開山鼻祖,薩師煊倡導召開了全國資料庫技術研討大會,中國資料庫萌芽,資料庫技術的研究和推廣就此展開。

從當初老一輩專家薩師煊、王能斌、羅曉沛、施伯樂等播下資料庫技術的火種,到楊冬青、馬應章、王珊、尹良濱、馮玉才、李建中、何守才、何新貴、張大洋、張少潤、張作民、鄭懷遠、鄭振楣、周立柱、周龍驤、徐秋元、徐潔磐、唐世渭、唐常傑、姚卿達、童頫、董繼潤、瞿兆榮、岳麗華等專家教授奮發圖強,再到新一代杜小勇、崔斌、高宏、李占懷、彭智勇、王國仁、周立柱、王建民、陳紅、於戈等教授(還有很多專家教授沒能一一列出,他們都是中國資料庫的脊樑),中國資料庫開始發展興旺。

相較世界資料庫技術,中國資料庫技術從起步、跟蹤、追趕,到並跑,凝結了數代老一輩專家的心血。

四十來,老一輩專家們培養了一批批的中國資料庫人,他們或投身工業實踐,或專心學術研究,或出國汲取經驗,或開創國內資料庫產品。這些人,正是中國資料庫技術的脊樑,在眾多資料庫人的努力下,中國的資料庫實現了:

1. 科研國際化:論文發表直逼美國(如圖4)、舉辦國際學術雜誌/會議(如CODAS、WAIM、APWEB、DASFAA、PAKDD、WISE、CIKM 、E-R、VLDB等)、國際學術界獲獎等。

圖4 中國在資料庫三大頂級會議發文章數量圖

2. 教學精品化:各種資料庫教材層出不窮,引領了國內資料庫技術的發展。例如,現在分散式資料庫技術非常火熱,而NDBC的老專家們1998年就開始研究並出版了一系列的分散式資料庫技術書籍,如圖5所示。

圖5 分散式資料庫等書籍封面圖

3. 成果產業化:科研成果轉化為實際的產品服務於中國的市場,並為中國資料庫界培養了一代又一代的資料庫工程實踐人才。如國內最早做數據研發的人大金倉、武漢達夢、神舟通用、南大通用等公司,其背後的技術源泉都是來自高校的資料庫研究團隊。

現在,活躍在中國的科研、教學一線的資料庫、大數據專家們,如資料庫領域的傑青包括哈爾濱工業大學的李建中教授、華東師範大學的周傲英教授、東北大學的王國仁教授、清華大學的王建民教授,都成績斐然;入選國家千人計劃的資料庫人才如周曉方、樊文飛、張彥春、林學民、文繼榮、王曉陽、申恆濤、武新,都領軍一方;成為長江學者特聘教授與長江學者講座教授如馮玲、周傲英、王國仁、崔斌、樊文飛、黃銘鈞、熊輝,都成績卓著。這些傑出的專家教授們,同時又培養出一代又一代的資料庫人才。

現在,活躍在華為、騰訊、阿里、京東等公司的資料庫核心研發人員,有很多專家、技術骨幹,都是出自人大金倉、武漢達夢、神舟通用、南大通用等公司,從他們身上,我們可以看到NDBC四十年前點燃的星火、四十年里培養澆灌的樹苗,現在已經成材,成為國內資料庫研發的骨幹棟樑。


百花齊放的資料庫技術大會

越來越多的技術人,或專心資料庫學術研究,或投身於資料庫產品開發,各資料庫技術大會在這樣的背景下產生,為喜愛和從事資料庫研究的技術人提供了交流、提高的平台。

國內規模較大的資料庫學術會議有中國資料庫技術學會(NDBC)和中國大數據技術大會(BDTC)。

今年,還有這些國際學術會議在國內召開:

DASFAA 2017(The 22nd International Conference on Database Systems for Advanced Applications):3月在蘇州召開。

The Asia Pacific Web (APWeb) 和 Web-Age Information Management (WAIM) Joint Conference:6月在北京召開。

工業界規模較大的資料庫技術大會,有中國資料庫技術大會(DTCC)、Oracle數據技術大會,中國MySQL用戶組年會(ACMUG)和MySQL技術嘉年華(IMG)、PostgreSQL中國用戶大會(PCC)等。

這一年,我們還看到,其他的社區活動也精彩不斷,CockroachDB社區成立,Redis、HBase等社區活動開展,這些活動為中國工程界的資料庫技術增添了亮色。

百舸爭流的資料庫產品

1.傳統的資料庫產品:

人大金倉(Kingbase):2017年8月,KingBaseES通用型資料庫產品,成功入駐阿里雲市場,具備適應當下雲計算環境的資料庫特徵。

達夢資料庫(DM):2017年,DM與多省展開合作,為四川地質環境信息建設、廣西電子政務等提供資料庫服務。

南大通用(GBASE):2017年3月,旗下的通用型資料庫登錄青雲App Center 2.0平台,提供雲化資料庫服務。

2.分散式資料庫:

國內分散式資料庫的代表有騰訊分散式資料庫TDSQL、阿里雲(DRDS)、OceanBase、TiDB等,這些產品代表了國內分散式資料庫的水平:

騰訊分散式資料庫TDSQL:

一款企業級面向金融類業務的資料庫產品。

支撐了騰訊自己的計費業務。

輸出到諸如微眾銀行等企業,穩定運行了三年之久。

2017年發布了分散式事務、分散式JOIN、多種數據分區、多級數據分區、熱點更新等特性。

阿里資料庫產品家族:

雲棲大會前夕,推出新一代高性能資料庫PolarDB、X-Cluster等,均採用分散式存儲引擎設計。

OceanBase,2017年發布1.4.51版本,提供了副本只讀、前後端協議checksum機制、同義詞功能和回收站等功能。

TiDB:

與騰訊雲和Ucloud先後達成合作。

發布GA版(TiDB 1.0),對MySQL兼容性、SQL優化器、系統穩定性、性能等做了大量工作。

矽谷Office落地,此舉標誌著PingCAP進一步在全球布局雲計算產業。

SequoiaDB:

SequoiaDB發布v2.8.3企業版。

「熱熱鬧鬧」的資料庫市場,產品眾多,篇幅有限我們不再一一羅列。但我們可以從這些產品的共性著手,看到其中的一些端倪。2017年國產資料庫發布的新品、新特性,似乎還不是很多,不很精彩。個中緣由,如果從「人」著手思考,相信你懂的。

百馬奔騰的資料庫研發團隊

現如今,國內的資料庫研發隊伍已經頗具規模。

從擁有200餘人規模的阿里資料庫技術團隊(阿里雲、螞蟻金服和阿里集團資料庫事業部),到人數300+的「中國最神秘研究基地」——華為2012高斯實驗室,以及騰訊的TEG金融雲、騰訊雲,百度的搜索架構團隊、京東的京東雲等,國內資料庫研發無不展現出一派生機勃勃的景象。

這些研發隊伍,不僅積極為開源社區添磚加瓦,也大力投入自主研發。

在此,讓我們羅列一下已知的資料庫引擎研發團隊(尚不完整),與他們一起見證國產資料庫研發的繁榮,也讓我們思考一下繁榮的背後,為什麼我們還沒有世界級產品?

1. 大型通用資料庫系列:人大金倉、達夢、神州通用、南大通用

2. 騰訊系:TDSQL、TXSQL、Tbase、PhxSQL

3. 阿里系三個團隊:阿里巴巴集團資料庫事業部、阿里雲、Oceanbase

4. 其他互聯網:京東雲、百度、小米

5. 華為系三個團隊:2012高斯、2012分散式實驗室、華為雲(IT企業產品線)

6. DB2中國研發團隊(曾經的存在)、EsgynDB中國團隊、國家電網、中國移動蘇州研究院、中國電信廣州團隊(尚存在否?)

7. NewSQL系列:PingCAP、巨杉

8. PostgreSQL系:亞信南京AntDB、中興GoldenDB 、Greenplum中國團隊、飛象

9. MySQL系列:愛可生、上海熱璞、萬里開源、MySQL中國區研發成員、OneSQL

10. 分析型系列/大數據系列:柏睿數據RapidsDB、酷克數據、偶數科技、Kylin創業團隊Kyligence、星環科技

11. Informix系列:華勝信泰、福建星瑞格、南大通用(重複)

12. 其他:Haisql、Highgo db、許繼集團SG-RDB、Cedar、上容、天曦TXDB、HHDB、博陽數據管理系統、東方國信、優炫雲資料庫、新華三、鼎天盛華Huayisoft、HUABASE


每年電商雙11大促,中國單一群體的巨量行為(同一文化氛圍下的同一種行為相較世界其他民族,有著不可預估的量,是不可預估的群體行為),對阿里、京東等電商的資料庫團隊都是一次巨大考驗。

經過9年的發展,雙十一場景對資料庫的穩定性、性能提出非常高的要求,尤其是零點高峰,無論國內國外,都難得一見。

面對交易洪流,阿里集團的資料庫扛住一波波洪峰,阿里的OceanBase扛住了交易洪峰,整個阿里交易創建峰值32.5萬筆/秒,支付成功峰值25.6萬筆/秒,資料庫處理峰值4200萬次/秒。而京東的交易,也是一路攀升。這些成績背後支撐業務發展的幕後英雄之一是資料庫技術。

雙11的成績,宣告的不僅是商業的勝利,也不僅是資料庫技術獲得「巨大」突破的勝利,而是中國式需求對資料庫技術提出的場景考驗,這種場景的考驗將持續不斷地對資料庫技術發出新的考題,促使在中國做資料庫研發的技術人員「被迫」進步,資料庫技術「被迫」創新。互聯網場景將引發多行業的創新場景,也許正是國產資料庫單點突破所在。


這一年,成立近3年的TiDB,亮點頗多(2017年10月份發布了GA V1.0版本,還提供了TiSpark查詢方案),已然成為國內鮮有的資料庫原創開源代表,甚至在國際上贏得頗多讚許(GitHub stars 11000+,contributors 155+,媲美CockroachDB)。

TiDB是PingCAP公司自主開發的開源分散式資料庫產品,模型參考了Google的分散式資料庫論文(Spanner / F1),解決了關係型資料庫水平擴展的難題,具備水平彈性伸縮、強一致的分散式事務、基於Raft演算法的多副本複製等特性。作為一個典型的SQL Above NoSQL的架構,TiDB底層是一個支持跨行事務和強一致性的分散式KV存儲引擎,上層是支持SQL語法和查詢的分散式執行引擎,這種存儲和計算分層的架構具有更好的靈活性,可以根據不同的業務負載做彈性的水平伸縮。

從使用者角度來看,TiDB高度兼容MySQL協議,在大多數情況下,應用層不需要修改一行代碼,就可以獲得支持高並發的擴展能力,同時支持智能的數據調度和故障自恢復功能,用戶遷移和維護成本都會非常低。

未來,TiDB會在資料庫雲的多租戶和資源隔離、高效實時的查詢分析引擎、新硬體下的新技術架構優化、完善智能的調度系統、HTAP等方面發力,為用戶帶來更多的價值。

因為有了OceanBase、TDSQL等,有了TiDB,國內資料庫界有了「創新」的味道,而TiDB開源可能會使更多的人多方面受益,相較於一些產品從開源到閉源,這一點更有意義。


一個領域內的圖書出版量和銷售量,往往能反映該領域的發展態勢。

一個領域內出版的圖書的質量,往往能反映該領域的深入程度。

讓我們先來看看近幾年國內幾家出版社的資料庫類圖書出版量(如圖6),可以發現,資料庫類圖書雖然在總出版量中佔比不大,但還是有逐年上升的趨勢,這其中大數據與數據分析類圖書佔據了相當大一部分,而資料庫理論類圖書則較低迷。

再來看看資料庫類圖書的銷售情況。線上銷售以亞馬遜銷售排行榜為例,截至2017年12月,在資料庫類實時銷售排行榜中,top3分別為《大數據時代:生活、工作與思維的大變革》、《SQL必知必會(第四版)》和《深入淺出數據分析》,而資料庫理論類圖書中僅《資料庫索引設計與優化》與《資料庫系統概念》兩本躋身top10。這一現象在線下銷售中得到了更充分的體現。

這難道是資料庫領域已經不需要理論知識紮實的人才了嗎?其實不然。在資料庫行業中,剛入門的新手渴求的是一本涵蓋全面的工具書,對理論類圖書大都是望而卻步;而已經摸爬滾打十幾年的老手們,憑藉豐富的經驗和閱歷,足以滿足企業研發所需,自然就不需要這方面的書了,所以資料庫理論類的書籍較少。

入門菜鳥希望得到老鳥的經驗,國內的圖書基本滿足了入門的需要。

經驗豐富的老鳥希望深入原理、深入代碼讓自己百尺竿頭更進一步,可是這方面的書籍太少。

國內資料庫原創書籍,深入到原理和源碼層面的,經典的有《MySQL技術內幕:InnoDB存儲引擎》、《PostgreSQL資料庫內核分析》、《資料庫查詢優化器的藝術》這幾本書,極高的質量和極佳的口碑為中國資料庫界增色不少。

而2017年出版的資料庫圖書中,《MySQL運維內參:MySQL、Galera、Inception核心原理與最佳實》銷量較好,《資料庫事務處理的藝術:事務管理與並發控制》一書則直接深入到資料庫最核心的技術——事務處理層面討論了並發訪問控制等核心技術,這種有深度的書籍折射出國內資料庫研發的水準在向最核心部分攀登前進。

站在2017年尾,資料庫界更加期盼,未來有更多高質量有深度的資料庫原創書籍,來推高國內資料庫研發、運維的水準。因為我們看到,國內資料庫研發團隊在日漸興旺。

圖6 2013-2017資料庫類圖書出版量統計圖

跨年之夜,我們一起進步


2017這一年,資料庫界熱鬧的背後,不足更甚。浮光掠影,採摘一小點兒,權作紀念,莫負了這春光美景。

浮誇之風日盛

跟跑作為事實,使得很多人渴望突破,這本是好事。

而國內的一些媒體和自媒體在產品或成果的宣介上,往往用詞宏大,舉輕若重,笑話不斷。如「事務的核心是鎖和並發」、「破解世界性技術難題! XXX讓分散式事務簡單高效」等宣講詞,前者對事務的理解不到位,封鎖機制是並發控制的技術之一,鎖和並發並不能在此語境下處於同等地位;後者則更是誇大其詞,誇張的詞語之後顯露出一顆浮躁的心。

這樣的錯誤或極其誇大的詞在公眾中傳播,危害甚大。技術來不得半點兒虛假,踏踏實實做技術,如實地說明成績,以求實為本才是技術人員的本質。

在2018,期望:資料庫界求實地回歸技術,回歸技術人員的樸實。

借東風片面式宣傳日盛

在這一年,還廣為流傳過一篇文章《中國資料庫四十年歷史》,文章借中國資料庫發展四十年的時節,藉助薩師煊的名,宣傳了個別公司、個別人。文章以「中國資料庫四十年歷史」為大背景,涵蓋範圍卻極其有限,用意十分明顯且可笑。

如果熟知中國資料庫發展歷程,可以看到作者一知半解的資料庫知識和資料庫歷史,很好地在其文、其圖中暴露。

我們需要看到業界的不足,繼續倡導求實之風。

自說自話的背後

2017年,國內資料庫產品熱鬧非凡的同時,我們依舊看不到有團隊公開自家產品的TPC-C、TPC-H、TPC-D等驗證方案以及結果數據。一方面傳奇般地宣稱自家產品的神奇,另一方面又對一些公認的標準三緘其口,不與國際接軌,這也是一種特色。更有甚者,用Sysbench的部分測試場景以展示特定場景下的特定測試數據,因場景特定而貌似很好的測試數據蒙蔽了大眾的眼。這些行為,實是不該。

我們認為,營造一個誠信、誠實的行業範圍,是很必要的。如果我們有實力真正做到了世界前列,相信未來必是:你若盛開蝴蝶自來。

人才的匱乏

國產資料庫引擎的研發,貌似資料庫研發團隊眾多,但人才寥寥,所以我們能夠感受到跟跑的步伐而不是並跑,能看到產品發布的速度慢而新特性不多,能夠看到產品的相似度高是因缺乏創新沒有深度人才。

國產資料庫研發,沒有大師,只有普通或略微好一點的工程師。真正的大師,不是十年、二十年就能修鍊而得的。在資料庫這個行業中,內外兼修,坐得了冷板凳者,才有望成為大師。

而略微好一點的工程師的定義是:基本能獨立承擔模塊的研發。

搞定個別問題,與掌握資料庫內核的核心技術,相距甚遠。莫讓他人浮躁的言語荼毒聽者的耳力。

人才匱乏,這在很長一段時間內是一個客觀存在。


AI對資料庫的影響

資料庫技術的發展,是一個眾多技術集成的過程,資料庫把編譯原理、操作系統等眾多技術「集合」在一起,開創了自己的時代。其特點是不斷融合新技術到資料庫體系內,讓業務開發簡化。所以,資料庫融合人工智慧技術,也將是一個趨勢。目前,我們可以看到AI將對資料庫技術的發展,產生較大影響,比如:

1. 現有資料庫系統的調優,嚴重依賴DBA的經驗。將人工智慧應用於資料庫調優,可以花費最低的人力,實現資料庫最高的效率。

2. 現有的資料庫系統,須嚴格遵循語法才能使用。利用自然語言處理技術,用戶可以使用自然語言描述查詢,經由Query Interface翻譯為SQL語法,大大降低用戶的學習難度。

3. 自資料庫誕生以來,查詢優化始終作為一大研究問題。目前查詢優化,只能依靠資料庫專家的經驗,人工智慧技術能夠幫助更廣泛地應用查詢優化技術。

4. 人工智慧技術能極大推動數據挖掘的發展,更充分地利用資料庫中存儲的信息。

人工智慧究竟對資料庫有多少益處,不能窮舉。但肯定的是,不論是資料庫開發還是資料庫使用,人工智慧都會幫助資料庫技術獲得長足的進步(除了功能外,架構方面的顛覆可能更甚),且AI技術會不斷集成到資料庫當中。

硬體對資料庫的影響

雲平台對於特定的硬體,可以進行定製。由於雲資料庫發展迅速,因此可以忽略一部分硬體對資料庫的影響。但是,這不代表著硬體將不再會對資料庫產生影響。

相反,硬體技術的發展對資料庫帶來的影響,依舊可能是革命性的。如圖7所示,我們借用鵝廠內部的一次分享的頁面,用NVM等對資料庫產生的影響簡述如下,一切盡在圖之外……

圖7 關係資料庫的未來展望-硬體技術圖

未來是什麼?卸載包袱,實踐現在

寫到這裡,也該收尾了,一篇冗長而又缺乏喜感還敢說諸多不足的雜文,在一個偌大的背景下以區區萬字就想回顧2017實在是螳臂當車之舉。就讓這些掛一漏萬且還惹人煩的言語隨著2017遠去吧。

輕輕地,你揮一揮衣袖,作別2017的浮雲。

默默地,你站在2018起頭的日子,重重地擼起袖子,低下頭去,在實踐中求實,口裡念叨著我尚不明白的一些詞語:YugaByte、BigChainDB、Learned Index……


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN技術頭條 的精彩文章:

三種常見的API設計錯誤及解決方案
從原理到策略演算法再到架構產品看推薦系統

TAG:CSDN技術頭條 |