2017年資料庫技術盤點

来源:https://www.cnblogs.com/qcloud1001/archive/2018/03/01/8487742.html
-Advertisement-
Play Games

在資料庫領域,回顧2017這一年,精彩紛呈,熱點不斷,而且不乏標誌性的事件發生,如Oracle提出的自治資料庫這樣的概念,把資料庫技術帶入一個新世界。再如NDBC(中國電腦學會資料庫學術年會)慶祝四十華誕、阿裡入股MariaDB、國內類Aurora架構的產品爭相發佈、資料庫事務處理等核心技術的原創... ...


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

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

作者 | 小編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框架,必須遷就資料庫的設計嗎?

移花接木:當泛型方法遇上抽象類----我的“記憶體資料庫”誕生記


 

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近開始大面積使用ES,很多地方都是知其然不知其所以然,特地翻看了很多資料和大牛的文檔,簡單彙總一篇。內容多為摘抄,說是深入其實也是一點淺嘗輒止的理解。希望大家領會精神。 首先學習要從官方開始地址如下。 es官網原文:https://www.elastic.co/guide/en/elasticse ...
  • 一、概述 本篇文章主要介紹MySQL視圖,觸發器,存儲過程,函數,事務,索引等內容,本節內容在Navicat上進行試驗,具體軟體安裝及操作不再贅述。 二、視圖 視圖是一個虛擬表(非真實存在),其本質是【根據SQL語句獲取動態的數據集,併為其命名】,用戶使用時只需使用【名稱】即可獲取結果集,可以將該結 ...
  • navicat 1.簡介: navicat是一個軟體,旗下針對不同資料庫有不同的軟體版本,支持以下資料庫,還是挺厲害的: ...
  • 在一次電腦不知道為什麼重啟之後資料庫某表出現了 is marked as crashed and should be repaired這個錯誤,百度了一下,很多都是去找什麼工具然後輸入命令之類的,因為是公司電腦不知道當初mysql安裝到了哪兒,所以也沒有去找,於是自己便找了找上面的工具欄,我用的是S ...
  • imp YG_XSOA_NEW/[email protected]/XSSJZX file=d:\daochu.dmp full=y (導入) exp YG_XSOA_NEW/[email protected]/XSSJZX file=d:\daochu.dmp owner=YG_XSOA_NEW ...
  • 跟蹤標記:834 功能: 在64位的windows環境下,為SQL Server開啟這個跟蹤標記,那麼SQL Server 會使用大頁(Large pages)為記憶體緩衝區(buffer pool)分配記憶體,從而可以提高CPU轉換檢測緩衝區(TLB: Translation Lookaside Bu ...
  • java ElasticSearch訪問控制上存在以下多種接入實現方式: 1)基於ES JAVA API實現;2)基於ES HTTP API實現;3)基於Spring Data ES實現; 那麼問題來了,到底哪種方式最好,靈活性、擴展性和完備性等更勝一籌呢? 為了找到最權威的答案,搜索了各大權威技術 ...
  • 在Windows Server 2012平臺使用命令啟動監聽服務時遇到了TNS-12560 & TNS-00530錯誤。 C:\Users>lsnrctl start GEW_LISTENER LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Prod... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...