1. 程式人生 > >2017年數據庫技術盤點

2017年數據庫技術盤點

適用於 mysql技術內幕 誕生記 狀態 enter 大會 ffice 銀行 潮流

歡迎大家前往雲+社區,獲取更多騰訊海量技術實踐幹貨哦~。

作者 | 那海藍藍,騰訊金融雲數據庫技術專家

作者 | 小編0.7,騰訊TDSQL分布式數據庫專家

作者 | 大米,騰訊TDSQL分布式數據庫專家

責編 | 仲培藝

由騰訊技術工程官方號發布在雲+社區

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

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

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

CCF數據庫專委會主任杜小勇教授說:客觀來說,如今的中國數據庫已經處於與世界並跑的位置了!

現在,讓我們一起並跑,沿途中,我們將從學術界、工程界的角度,從國外到國內,從數據庫內核技術到數據庫運維等多種角度,一起來回顧精彩的2017。

1.百看不厭的數據庫排行榜

截至2017年12月,在DB-Engines(https://db-engines.com/en/ranking)上排名的數據庫引擎已多達361種。

從圖1可見(對比去年同期數據如圖2),Oracle、MySQL和Microsoft SQL Server穩居前三,一路遙遙領先。

技術分享圖片

2017年12月數據庫Top5圖

技術分享圖片

2016年11月數據庫Top5圖

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

技術分享圖片

2013-2017數據庫top3分值變化圖

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

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

技術分享圖片

2013-2017NoSQL數據庫top5分值變化圖

2.地球就那麽大,世界的門早已打開

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

2.1 Oracle,開啟自治數據庫時代

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依舊是獨占鰲頭。

2.2 AWS Aurora,啟動計算與存儲分離的熱潮

2017年,Amazon在SIGMOD上發表了論文《Amazon Aurora: Design Considerations for High Throughput Cloud Native Relational Databases》。

這篇論文,描述了Amazon的雲數據庫Aurora的架構。基於MySQL的Aurora對於單點寫多點讀的主從架構做了進一步的發展,使得事務和存儲引擎分離,為數據庫架構的發展提供了具有實戰意義的已實踐用例。其主要特點如下:

  • 實踐了“日誌即數據庫”[1]的理念。

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

  • 數據緩沖區提前預熱。

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

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

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

  • 持續可靠的雲數據庫的服務能力。

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

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

  • 萬能數據庫的概念呼之欲出。

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

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

2.3 Spanner,引領分布式數據庫潮流

2012年的《Spanner: Google’s Globally-Distributed Database》論文描述了基於KV系統[2]實現的一個半數據庫式的“分布式系統”[3],這個系統具備了大規模的擴展性,具有如下幾個方面的特色:可擴展性(scalability)、自動分片(automatic sharding)、容錯性(fault tolerance)、一致性復制(consistent replication),外部一致性(external consistency),和數據廣域分布(wide-area distribution)。這些特色是通過提供了多行事務(multirow transactions)、外部一致性(external consistency)、跨數據中心的透明故障轉移(transparent failover across datacenters)等功能實現的。Spanner開創了NoSQL分布式數據庫的新時代,主要解決了如下問題:

1. 數據分布。

2. 多副本高可用:failover。

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

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

5. KV存儲模型。

2017年,Google發表了一篇題為《Spanner: Becoming a SQL System》的論文。這篇論文描述了查詢執行的切分(query execution in the presence of resharding)、瞬態故障情況下查詢重新執行(query restarts upon transient failures)、驅動查詢做路由和索引查找的範圍查詢(range extraction that drives query routing and index seeks)、以及改進的基於塊的列存(the improved blockwisecolumnar storage format)等分布式查詢優化技術。

較之2012年的Spanner,本篇論文提到新增功能為:強類型的模式管理系統 (a strongly-typed schema system)、查詢處理器(a SQL query processor)和關系模型存儲及列存系統,並論述了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靠攏。

2.4 NoSQL、圖數據庫、流數據庫等場景化明顯

隨著互聯網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年,從關系型數據庫之外的其他數據庫,我們看到,數據庫正在朝場景化方向發展,不同類型的數據庫適用於不同的場景,數據庫產品只有做好自己的場景定位,才能謀取到更大的發展。

2.5 一些老牌數據庫,在變革中漸漸老去

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

2017年10月,微軟發布了SQL Server2017 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 Pack2版本,增強了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在國內的表現,尚在普通之列。

2.6 一些開源的數據庫,前途光明燦爛

開源,是一種成功的商業模式。在開源社區的支持下,眾多開源數據庫如百花齊放,前途一片光明燦爛,比較知名的如MySQL,PostgreSQL,MongoDB,HBase,Cassandra和MariaDB等等。

讓我們來看看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乃至更長遠的未來,開源數據庫會越走越好。

2.7 CockroachDB,開源NewSQL

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

對於SSI,CockroachDB受“write-snapshot isolation[4]”技術影響較大,著力於解決讀-寫沖突,以實現SSI。

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

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

1. 從遺留數據庫進行無縫遷移 。

2. 簡化集群管理。

3. 為雲環境提高性能。

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

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

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

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

技術分享圖片

NewSQL類型圖

3.中國數據庫起源與發展

3.1 NDBC大會,中國數據庫四十年

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

今年,恰逢中國數據庫學術會議四十華誕,NDBC2017回顧了中國數據庫的四十年歷程。這一屆的NDBC,可謂中國數據庫界2017年的最大事。

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

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

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

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

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

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

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

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

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

NDBC,四十年裏,一直在深深地影響著中國的數據庫界。NDBC用團結、執著、和諧、瀟灑的優良學術文化,熏陶出了一批又一批的具有國際視野、腳踏實地的人才隊伍。

技術分享圖片

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

技術分享圖片

分布式數據庫等書籍封面圖

3.2 春天裏的數據庫

數據庫行業,又迎來了一個春天。春天裏,百花開,眾多的數據庫產品、研發團隊、數據服務團隊在2017充滿生機,各自芬芳。

3.2.1 百花齊放的數據庫技術大會

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

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

中國數據庫技術學會(NDBC):自1977年至今,擁有四十年歷史。始終秉承為大陸、港、澳、臺和海外華裔數據庫研究者、開發者和用戶提供大中華數據庫論壇,交流成果經驗,探討挑戰問題和研究方向的宗旨。近年來,更吸引了海外數據庫研究者、開發者投稿和參會。

中國大數據技術大會(BDTC),前身是Hadoop中國雲計算會議,由中國計算機學會主辦,大會內容涵蓋數據庫、大數據雲服務、機器學習和深度學習、知識圖譜、區塊鏈等方方面面,是國內最具影響力、規模最大的大數據領域技術盛會。

國際的學術會議在國內召開:

  • DASFAA 2017(The 22nd International Conference on Database Systems for Advanced Applications),2017年3月在中國蘇州召開。

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

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

  • 中國數據庫技術大會(DTCC):2017年DTCC吸引5000多名IT人士參會,是國內影響力最大的數據庫技術大會,主題涵蓋Oracle、MySQL、NoSQL、雲端數據庫、智能數據平臺、區塊鏈、數據可視化、深度學習等領域的前瞻性話題與技術。為數據庫人群、大數據從業人員、廣大互聯網人士及行業相關人士提供最具價值的交流平臺。

  • Oracle數據技術大會:2017年11月在北京召開,吸引了千人以上參會交流。擁有高質量、高新尖、高專業的特點,邀請業內頂尖的技術專家、企業客戶、分享數據領域內的最新技術進展和實踐。

  • 中國MySQL用戶組(ACMUG)年會、MySQL技術嘉年華(IMG):中國MySQL技術領域兩朵花,在2017年12月的同一天,各自在北京和上海綻放。前者國際化意味濃厚,後者追求分享的質量。

  • PostgreSQL中國用戶大會(PCC):是一場匯聚各界PostgreSQL大拿交流最新技術動態和應用案例的盛宴,推動了PostgreSQL在中國的發展,也起到了聯系PG中國社區和國外社區的作用。

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

3.2.2 百舸爭流的數據庫產品

一 .傳統的數據庫產品

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

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

  • 南大通用(GBASE):2017年3月,旗下的通用型數據庫登錄青雲App Center2.0平臺,提供雲化數據庫服務。

二. 分布式數據庫

國內分布式數據庫的代表有騰訊分布式數據庫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企業版。

3.2.3 百馬奔騰的數據庫研發團隊

從薩師煊老師起步,中國數據庫已經有了四十年的歷史。

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

從擁有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、博陽數據管理系統、東方國信、優炫雲數據庫、新華三、鼎天盛華、Open base、Huayisoft、HUABASE等

3.3 雙11,源自中國的需求大於技術突破的意義

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

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

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

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

3.4 TiDB,國內開源界的一抹亮色

這一年,成立近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開源可能會使更多的人多方面受益,相較於一些產品從開源到閉源,這一點更有意義。

3.5 立言,原創有深度

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

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

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

技術分享圖片

2013-2017數據庫類圖書出版量統計圖

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

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

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

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

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

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

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

4.數據庫發展小故事

本篇是發生在2017年的小故事,故事的選取,有一定的隨機性,未必能代表數據庫界的整體情況。放在這裏,我們希望能通過研發、運維這麽幾朵小小的浪花,折射幾點太陽的光輝。

4.1 蓋老師深度思考的浪花

Oracle 18c,是一個時代的終結。這是蓋國強老師在2017年的的感悟。

2017年10月1日,蓋國強老師在舊金山OOW大會現場,感受了Larry Ellison發布Oracle Database 18c產品的盛況,18c被稱為數據庫領域的第一個自治產品,能夠實現自我驅動、自我安全和自我修復,事實上就是最大程度的減少了人工的參與。

業界在感嘆技術進步的同時,也存在一股淡淡的憂慮和哀傷,因為一個重要的崗位 - DBA可能不再重要,或者不再被需要。

而事實上,蓋老師認為更重要的變化是18c這個版本,從12c到18c,Oracle公司改變了數據庫的命名策略,以後每年都將發布一個以年為單位的版本,例如19c,20c,這,意味著一個時代的終結。

傳統的商業軟件叠代,通常以數年為單位,研發一個目標明確、更新眾多的發布版本,而這種方式在快速變化的互聯網時代,已經過時,用戶習慣了快速看到新的變化、快速感受、快速試錯,從產品研發到產品發布,一切都在加速,顯然Oracle的這一變化就是在適應時代,期望以快速的叠代降低讓用戶長時間等待的風險。其實無獨有偶,微軟也已經宣布Windows 10將是最後一個版本,同樣改變了重量級大版本的發布模式,變革為小版本快速革新。傳統大規模商業軟件的運作方式正在改變,Oracle和微軟都在通過雲平臺去重構兩家公司的產品輸出形態,當一切都可以通過服務的形態輸出之後,商業和開源的界限事實上就已經不存在了。

基於此,蓋老師在思考:在企業級數據庫領域,下一個時代是什麽?

蓋老師認為下一個時代是自動化、智能化的時代,從靠人去解決問題,過渡到靠產品、靠架構去解決問題,讓數據庫回歸存儲的本質,新的時代已經開啟。

這是一朵深度思考的浪花,浪花背後是對產業前進之路的探索。

4.2 向MySQL提交bug的小浪花

2017年9月,鵝廠實習生曉宇同學向MySQL官方提交了BugID為87637的一個有關緩沖區刷臟頁時消耗CPU資源嚴重的性能bug,並給出一個解決了涵蓋多種場景下消耗CPU的patch。

Bug hunter並未重視這個有場景描述有代碼分析有測試數據的bug,反而修改bug狀態為“not a bug”,曉宇同學在bug被標識為“not a bug”後,有理有據地指出bug的成因、patch的原理等,然後有禮貌地再次打開bug,請MySQL官方重視。這樣的過程,反反復復,反反復復,竟然反復了五次。直到一個月之後,持久的爭執引起InnoDB研發老大Sunny Bains的關註,Sunny Bains認同了曉宇同學的patch,這場拉鋸戰才宣告結束。

現在,這朵小浪花已經隨潮而去,但是這麽一朵小小浪花,卻能折射出較大的意義:

  1. 國內研發人員的素養和MySQL官方的傲慢形成了對比。

  2. 當世界並沒有足夠重視國內數據庫技術研發的力量時,我們可以用實力說明事實。

  3. 現如今,我們還需要積極參與開源社區,提交Bug與patch,甚至提交有影響力的模塊/WorkLog,這樣才能逐步扭轉“國內數據庫尚未被國際認可,尚不達先進水平,發展尚任重道遠”這樣的現狀。

在采訪這個小故事結束時,曉宇所在團隊TDSQL研發負責人說:TDSQL源自MySQL,我們鼓勵TDSQL的組員為社區多做貢獻。曉宇的這個故事,是我們團隊的一個小事,相信更是中國數據庫界的一個小事,但是勿以善小而不為,積善助善為這個世界多做一點好事是有意義的。

這,應該是一種情懷吧。

4.3 規範運維的小浪花

數據庫運維中會制定各種流程和規範,很多運維同學不以為意,覺得太繁瑣,殊不知這些都是在大量的失敗經驗中總結而來,是運維保障的基石。

讓我們用發生在建榮同學身邊的一個故事,一起感受DBA的生活。

公司每隔一段時間會發布一些活動,來提高人氣和熱度。

而發布一個活動的常規流程是這樣的:

  1. 開發同學提交了一個DB變更,會打包發布到了ftp中。

  2. DBA會從ftp得到指定的數據壓縮包,解壓把數據導入數據庫。

  3. 測試同學會驗證測試,驗證後上線活動。

  4. 業務運營的同學會跟進活動,做活動反饋。

結果有一次卻發生了一個詭異的問題。

活動已經接近尾聲,運營的同學才發現數據比以往差了很多,然後測試的同學排查發現導入的數據比預期的少,然後追查到DBA這邊,DBA發現數據導入是成功的,然後繼續追根溯源,發現開發同學提供的數據更新包和DBA導入的包大小不一致。

經過一番排查和驗證,發現原因就在於開發同學上傳到ftp中的文件因為網絡的原因,提示上傳成功了,但是文件是不完整的,DBA解壓的時候就少了很多數據,後續測試,運營跟進活動都會受到影響。

我們做故障復盤的時候,發現雖然整個流程是完整的,但是很多環節還是沒有形成閉環。

怎麽改進呢?

  1. 第一就是使用md5的校驗碼,能夠做到文件校驗。

  2. 第二就是通過平臺化管理來杜絕人為問題。

  3. 第三就是業務的及時跟進。

所以說很多問題都不是純粹的技術問題,要靠一套完整的制度和流程來規範和完善,規範本身雖不能夠解決問題,但是能夠減少出問題的概率。

5.跨年之夜,我們一起進步

隨著雲計算產業的發展,數據庫雲化趨勢已經形成,而雲化對大規模的數據庫群、數據庫集群等的運維提出挑戰,於是數據庫智能運維因需而生,而Oracle在AI火熱的環境下,用自治數據庫一舉點燃了本年度數據庫燃爆點。自治數據庫已經不再是自動運維的數據庫,而是智能運維的雲端數據庫。

總結2017,我們看到的不僅僅有技術的創新,也有國內公司在國際化背景下主動出海尋航的思維變革,還有技術沈澱之下的有深度的技術書籍的出版,更有引領中國數據庫技術發展的四十華誕的NDBC,這些,都在提高著國內數據庫技術的質量,增強了中國數據庫技術在世界的影響力,使之上升、使之前進。

但是,國內數據庫的發展,依舊有很多不足,正視不足,中國數據庫將輕裝前行,且快且穩、不斷創新。

5.1 2017,前行中有很多不足

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

5.1.1 浮誇之風日盛

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

而國內的一些媒體和自媒體在產品或成果的宣介上,往往用詞宏大,舉輕若重,笑話不斷。如“事務的核心是鎖和並發”、“破解世界性技術難題!

XXX讓分布式事務簡單高效”等宣講詞,前者對事務的理解不到位,封鎖機制是並發控制的技術之一,鎖和並發並不能在此語境下處於同等地位;後者則更是誇大其詞,誇張的詞語之後顯露出一顆浮躁的心。

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

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

5.1.2 借東風片面式宣傳日盛

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

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

中國數據庫技術的發展,源於高校的老專家們、興於高校科研力量數代的師徒傳承,之後才演化出各種研發、運維的力量。

現在,貌似部分團隊做數據庫紅紅火火,但是數據庫前輩專家和師徒傳承才是根之所在,幹之所撐,才有眾多團隊之花汲養而開;更為本質的,是國內尚沒有一個團隊真正掌握數據庫核心技術、更不用談有真實的創新之舉。

當我們在講述自己成績的時候,應該把自己放到歷史的環境當中,放到世界的範圍內,尋找到自己的位置,客觀地加以描述,方能正確地自我評價。

德國前總理勃蘭特有一句名言:“誰忘記歷史,誰就在靈魂上有病”。如果只能看到自己的一點點成績,蠟燭之光便會變成太陽,尼采便會再生。

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

5.1.3 自說自話的背後

2017年12月13日,一個值得紀念的事情,是中國有三家數據庫產品進入Gartner的數據庫行業報告,這是個喜事,於三家入圍的公司形象有益。這也是個好事,代表著國產數據庫廠商在商業意識上有所“突破”,入圍Gartner的行業報告,畢竟入選需要資金的支持。

對國產數據庫入圍,不管花錢與否,可以肯定的是,主動宣傳推薦而不誇大不誤導是正解所在。

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

這些行為,實是不該。

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

5.1.4 人才的匱乏

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

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

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

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

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

5.2 2018,我們清楚方向在哪裏,但需要加速前行

5.2.1 AI對數據庫的影響

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

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

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

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

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

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

5.2.2 硬件對數據庫的影響

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

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

技術分享圖片

關系數據庫的未來展望-硬件技術圖

6.未來是什麽?卸載包袱,實踐現在

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

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

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

[1] 參考《High performance transactions in deuteronomy》

[2] 《Bigtable: A Distributed Storage System for Structured Data》

[3] 《Spanner: Becoming a SQL System》:Spanner is built on ideas from both the systems and database communities.

[4] 詳情參見《數據庫事務處理的藝術:事務管理與並發控制》6.3.4節

轉載聲明:轉自 《程序員》 雜誌 2018年 第一期,本文為《程序員》原創文章,未經允許不得轉載,更多精彩文章請訂閱《程序員》。

相關閱讀:

數據庫讀寫分離架構,為什麽我不喜歡

使用orm框架,必須遷就數據庫的設計嗎?

移花接木:當泛型方法遇上抽象類----我的“內存數據庫”誕生記


此文已由作者授權雲+社區發布,轉載請註明文章出處

2017年數據庫技術盤點