數(shù)據(jù)庫(kù)的那些事:2017數(shù)據(jù)庫(kù)技術(shù)盤(pán)點(diǎn)
【數(shù)據(jù)猿導(dǎo)讀】 在數(shù)據(jù)庫(kù)領(lǐng)域,回顧2017這一年,精彩紛呈,熱點(diǎn)不斷,而且不乏標(biāo)志性的事件發(fā)生

在數(shù)據(jù)庫(kù)領(lǐng)域,回顧2017這一年,精彩紛呈,熱點(diǎn)不斷,而且不乏標(biāo)志性的事件發(fā)生。
如Oracle提出的自治數(shù)據(jù)庫(kù)這樣的概念,把數(shù)據(jù)庫(kù)技術(shù)帶入一個(gè)新世界。其實(shí)AI技術(shù)應(yīng)用于數(shù)據(jù)庫(kù)由來(lái)已久,如AI技術(shù)調(diào)優(yōu)數(shù)據(jù)庫(kù)的性能、AI技術(shù)優(yōu)化SQL、AI技術(shù)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)索引(Learned Index)等。但是能把AI和數(shù)據(jù)庫(kù)結(jié)合使之進(jìn)入大眾視野的,還非“自治數(shù)據(jù)庫(kù)”莫屬。
再如NDBC(中國(guó)計(jì)算機(jī)學(xué)會(huì)數(shù)據(jù)庫(kù)學(xué)術(shù)年會(huì))慶祝四十華誕、阿里入股MariaDB、國(guó)內(nèi)類(lèi)Aurora架構(gòu)的產(chǎn)品爭(zhēng)相發(fā)布、數(shù)據(jù)庫(kù)事務(wù)處理等核心技術(shù)的原創(chuàng)書(shū)籍出版、社區(qū)活動(dòng)遍地開(kāi)花等等,無(wú)一不在彰示著國(guó)內(nèi)數(shù)據(jù)庫(kù)界的精彩和繁榮。
CCF數(shù)據(jù)庫(kù)專(zhuān)委會(huì)主任杜小勇教授說(shuō):客觀來(lái)說(shuō),如今的中國(guó)數(shù)據(jù)庫(kù)已經(jīng)處于與世界并跑的位置了!
現(xiàn)在,讓我們一起并跑,沿途中,我們將從學(xué)術(shù)界、工程界的角度,從國(guó)外到國(guó)內(nèi),從數(shù)據(jù)庫(kù)內(nèi)核技術(shù)到數(shù)據(jù)庫(kù)運(yùn)維等多種角度,一起來(lái)回顧精彩的2017。
1.百看不厭的數(shù)據(jù)庫(kù)排行榜
截至2017年12月,在DB-Engines(https://db-engines.com/en/ranking)上排名的數(shù)據(jù)庫(kù)引擎已多達(dá)361種。
從圖1可見(jiàn)(對(duì)比去年同期數(shù)據(jù)如圖2),Oracle、MySQL和Microsoft SQL Server穩(wěn)居前三,一路遙遙領(lǐng)先。
圖1 2017年12月數(shù)據(jù)庫(kù)Top5圖
圖2 2016年11月數(shù)據(jù)庫(kù)Top5圖
但從圖3也不難看出,位于成熟期的同時(shí),其成長(zhǎng)空間也受到了一定的限制。Oracle雖保持第一,但處于明顯下滑趨勢(shì);MySQL在17年6月表現(xiàn)出色,幾乎與Oracle持平,但后半年開(kāi)始有所下滑;Microsoft SQL Server自15年9月跌至谷底后一路回升,于17年趨于穩(wěn)定,但總體仍處于下滑趨勢(shì)。雖說(shuō)沒(méi)有顯著上升,但RDBMS三巨頭雄踞排行榜top3已然且在不久的將來(lái)仍會(huì)是事實(shí)。
圖3 2013-2017數(shù)據(jù)庫(kù)top3分值變化圖
再把目光延伸至top20,就會(huì)驚人地發(fā)現(xiàn),NoSQL家族正在爆炸式崛起。MongoDB,Redis,Cassandra,Hbase和Hive年輕氣盛,一路飆升,從14年到17年均已實(shí)現(xiàn)分值翻倍(圖4)。穩(wěn)坐非關(guān)系型數(shù)據(jù)庫(kù)第一把交椅的MongoDB,從09年的首度推出到現(xiàn)在不過(guò)十年,便已躋身top5,其發(fā)展?jié)摿ψ屓似诖?/p>
數(shù)據(jù)庫(kù)產(chǎn)品的起起伏伏,是數(shù)據(jù)庫(kù)工程界的一個(gè)風(fēng)向標(biāo),但不是數(shù)據(jù)庫(kù)界的全部。2017這一年,數(shù)據(jù)庫(kù)的理論界也因AI而亮點(diǎn)多多。接下來(lái),讓我們睜眼看看世界,然后瞪大眼睛反觀一下國(guó)內(nèi)的情景。
圖4 2013-2017NoSQL數(shù)據(jù)庫(kù)top5分值變化圖
2.地球就那么大,世界的門(mén)早已打開(kāi)
以前,國(guó)內(nèi)數(shù)據(jù)庫(kù)技術(shù)一直在跟跑?chē)?guó)外的數(shù)據(jù)庫(kù)技術(shù),學(xué)術(shù)研究隊(duì)伍如此,工程實(shí)踐隊(duì)伍也如此??梢哉f(shuō),在數(shù)據(jù)庫(kù)技術(shù)的世界里,我們前30多年一直在學(xué)習(xí)、一直在探索。而國(guó)際的前沿技術(shù)引路者,還在不斷引領(lǐng)數(shù)據(jù)庫(kù)技術(shù)的潮流。2017這一年,世界上重大的一些事件如自治數(shù)據(jù)庫(kù)的概念推出、Aurora相關(guān)技術(shù)的論文發(fā)表、Spanner用論文宣告成為了關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)等等,都在影響著國(guó)內(nèi)的技術(shù)圈子。
2.1 Oracle,開(kāi)啟自治數(shù)據(jù)庫(kù)時(shí)代
2017年的Oracle Open World大會(huì)上,Oracle總裁拉里·埃里森公布了新殺器,Oracle自治數(shù)據(jù)庫(kù)云。這款全球首款“自動(dòng)駕駛”的數(shù)據(jù)庫(kù),集成了人工智能和自適應(yīng)的機(jī)器學(xué)習(xí)技術(shù),實(shí)現(xiàn)全面的自動(dòng)化。
自治數(shù)據(jù)庫(kù)云的實(shí)現(xiàn),是基于Oracle Database 18c的。對(duì)比目前的Oracle數(shù)據(jù)庫(kù),Oracle 18c在性能、內(nèi)存優(yōu)化、可用性、安全性、數(shù)據(jù)倉(cāng)庫(kù)等方面都作出優(yōu)化提升,向HTAP數(shù)據(jù)庫(kù)的目標(biāo)更進(jìn)一步。
Oracle自治數(shù)據(jù)庫(kù)云,消除了復(fù)雜性、人為錯(cuò)誤和人工管理,能夠以更低的成本提供更高的可靠性、安全性和運(yùn)營(yíng)效率。通過(guò)融合機(jī)器學(xué)習(xí)技術(shù),自治數(shù)據(jù)庫(kù)云具備這些特點(diǎn):
• 自主驅(qū)動(dòng):完全自動(dòng)化的打補(bǔ)丁、升級(jí)、備份和可用性架構(gòu),可執(zhí)行所有日常數(shù)據(jù)庫(kù)維護(hù)任務(wù),無(wú)需任何人工干預(yù)。
• 消除人為錯(cuò)誤:
自動(dòng)恢復(fù)功能可自動(dòng)檢測(cè)并應(yīng)用糾正措施,Oracle 自治數(shù)據(jù)庫(kù)云將自動(dòng)實(shí)施 Oracle Real Application Clusters (RAC) 和跨區(qū)域 Oracle Active Data Guard,確保持續(xù)的可用性。
Oracle SLA確保99.995%的可靠性和可用性,把代價(jià)高昂的計(jì)劃內(nèi)和計(jì)劃外停機(jī)控制在每年30分鐘內(nèi)。
• 無(wú)需手動(dòng)性能調(diào)優(yōu):采用自適應(yīng)機(jī)器學(xué)習(xí)技術(shù),自動(dòng)激活列式緩存、存儲(chǔ)索引、壓縮和資源優(yōu)先排序,根據(jù)負(fù)載所執(zhí)行的實(shí)際工作分配資源,避免代價(jià)高昂的過(guò)度供應(yīng)。
Oracle推出Oracle 18c和自治數(shù)據(jù)庫(kù)云,正指出了數(shù)據(jù)庫(kù)領(lǐng)域的發(fā)展趨勢(shì):數(shù)據(jù)庫(kù)HTAP化,和人工智能結(jié)合,機(jī)器學(xué)習(xí)代替人工完成繁瑣的數(shù)據(jù)庫(kù)操作。放眼看去,如卡內(nèi)基·梅隆的ottertune,一些開(kāi)源項(xiàng)目順應(yīng)潮流,向智能化、自動(dòng)化數(shù)據(jù)庫(kù)靠近。
另外,這一年,Oracle發(fā)布12c R2版本,也就是12.2.0.1,多方面得到提升,包括:
• 可用性方面:數(shù)據(jù)保護(hù)、邏輯復(fù)制、在線操作、分片等的表現(xiàn)得到提升,同時(shí)簡(jiǎn)化了升級(jí)操作。
• 大數(shù)據(jù)和數(shù)據(jù)倉(cāng)庫(kù):完善大數(shù)據(jù)管理系統(tǒng)結(jié)構(gòu)、提供數(shù)據(jù)庫(kù)內(nèi)的多維度分析、加強(qiáng)查詢(xún)處理和優(yōu)化等。
• 性能方面:優(yōu)化共享隊(duì)列,全局共享Oracle云連接池,增強(qiáng)Java虛擬機(jī)上Oracle數(shù)據(jù)庫(kù)的性能,完善內(nèi)存數(shù)據(jù)庫(kù),簡(jiǎn)單支持非結(jié)構(gòu)化數(shù)據(jù)存取等。
• 壓縮、管理、公有云、安全性、空間和圖等特性得到增強(qiáng)。
• 在數(shù)據(jù)庫(kù)的世界里,Oracle依舊是獨(dú)占鰲頭。
2.2 AWS Aurora,啟動(dòng)計(jì)算與存儲(chǔ)分離的熱潮
2017年,Amazon在SIGMOD上發(fā)表了論文《Amazon Aurora: Design Considerations for High Throughput Cloud Native Relational Databases》。
這篇論文,描述了Amazon的云數(shù)據(jù)庫(kù)Aurora的架構(gòu)。基于MySQL的Aurora對(duì)于單點(diǎn)寫(xiě)多點(diǎn)讀的主從架構(gòu)做了進(jìn)一步的發(fā)展,使得事務(wù)和存儲(chǔ)引擎分離,為數(shù)據(jù)庫(kù)架構(gòu)的發(fā)展提供了具有實(shí)戰(zhàn)意義的已實(shí)踐用例。其主要特點(diǎn)如下:
• 實(shí)踐了“日志即數(shù)據(jù)庫(kù)”[1]的理念。
• 事務(wù)引擎和存儲(chǔ)引擎分離。
• 數(shù)據(jù)緩沖區(qū)提前預(yù)熱。
• REDO日志從事務(wù)引擎中剝離,歸并到存儲(chǔ)引擎中。
• 儲(chǔ)存層可以有6個(gè)副本,多個(gè)副本之間通過(guò)Gossip協(xié)議可以保障數(shù)據(jù)的“自愈”能力。
• 主備服務(wù)的備機(jī)可達(dá)15份,提供強(qiáng)大的讀服務(wù)能力。
• 持續(xù)可靠的云數(shù)據(jù)庫(kù)的服務(wù)能力。
• 數(shù)據(jù)存儲(chǔ)跨多個(gè)區(qū):提供了多級(jí)別容災(zāi)能力。
• 數(shù)據(jù)容災(zāi)能力:數(shù)據(jù)冗余、備份、實(shí)時(shí)恢復(fù)等多種能力集成到云服務(wù),提高的數(shù)據(jù)的保障能力。
• 萬(wàn)能數(shù)據(jù)庫(kù)的概念呼之欲出。
而2017年尾,AWS的技術(shù)大會(huì)上,又爆料稱(chēng)AWS支持:multi write、類(lèi)TureTime、Serveless等,這些都和最新的趨勢(shì)緊密相融,前兩者對(duì)應(yīng)分布式數(shù)據(jù)庫(kù)、后者對(duì)應(yīng)數(shù)據(jù)庫(kù)云化。
Aurora對(duì)國(guó)內(nèi)的計(jì)算與存儲(chǔ)分離的產(chǎn)品研發(fā)影響深遠(yuǎn),阿里的PolarDB、華為的FusionInsight系列等都在向Aurora對(duì)齊。相傳,騰訊、京東等都躍躍欲試準(zhǔn)備做類(lèi)Aurora的產(chǎn)品??梢?jiàn)Aurora對(duì)國(guó)內(nèi)的影響深遠(yuǎn)。
2.3 Spanner,引領(lǐng)分布式數(shù)據(jù)庫(kù)潮流
2012年的《Spanner: Google’s Globally-Distributed Database》論文描述了基于KV系統(tǒng)[2]實(shí)現(xiàn)的一個(gè)半數(shù)據(jù)庫(kù)式的“分布式系統(tǒng)”[3],這個(gè)系統(tǒng)具備了大規(guī)模的擴(kuò)展性,具有如下幾個(gè)方面的特色:可擴(kuò)展性(scalability)、自動(dòng)分片(automatic sharding)、容錯(cuò)性(fault tolerance)、一致性復(fù)制(consistent replication),外部一致性(external consistency),和數(shù)據(jù)廣域分布(wide-area distribution)。這些特色是通過(guò)提供了多行事務(wù)(multirow transactions)、外部一致性(external consistency)、跨數(shù)據(jù)中心的透明故障轉(zhuǎn)移(transparent failover across datacenters)等功能實(shí)現(xiàn)的。Spanner開(kāi)創(chuàng)了NoSQL分布式數(shù)據(jù)庫(kù)的新時(shí)代,主要解決了如下問(wèn)題:
1. 數(shù)據(jù)分布。
2. 多副本高可用:failover。
3. 分布式事務(wù)處理:外部一致。
4. 計(jì)算分布(通過(guò)F1支持SQL,松耦合結(jié)構(gòu))。
5. KV存儲(chǔ)模型。
2017年,Google發(fā)表了一篇題為《Spanner: Becoming a SQL System》的論文。這篇論文描述了查詢(xún)執(zhí)行的切分(query execution in the presence of resharding)、瞬態(tài)故障情況下查詢(xún)重新執(zhí)行(query restarts upon transient failures)、驅(qū)動(dòng)查詢(xún)做路由和索引查找的范圍查詢(xún)(range extraction that drives query routing and index seeks)、以及改進(jìn)的基于塊的列存(the improved blockwisecolumnar storage format)等分布式查詢(xún)優(yōu)化技術(shù)。
較之2012年的Spanner,本篇論文提到新增功能為:強(qiáng)類(lèi)型的模式管理系統(tǒng) (a strongly-typed schema system)、查詢(xún)處理器(a SQL query processor)和關(guān)系模型存儲(chǔ)及列存系統(tǒng),并論述了2012年以來(lái),Spanner系統(tǒng)向關(guān)系型數(shù)據(jù)庫(kù)演進(jìn)的歷程,新論文愉快地表示Spanner從一個(gè)NoSQL系統(tǒng)已經(jīng)全面演進(jìn)為了一個(gè)關(guān)系型分布式數(shù)據(jù)庫(kù)系統(tǒng)。
這篇論文表明如下幾點(diǎn)事實(shí):
1. 有分布式基因的NoSQL是可以進(jìn)化為NewSQL的,進(jìn)化的途徑可參考Spanner的發(fā)展歷程,而Spanner也給出了進(jìn)化方式的建議(有了分布式處理能力后及早向關(guān)系型演進(jìn))。
2. 這種進(jìn)化具有“快樂(lè)”的“進(jìn)步”意義??鞓?lè)如論文標(biāo)題宣稱(chēng)“成為了”一個(gè)SQL系統(tǒng),口氣十分地自豪;進(jìn)步如論文標(biāo)題宣稱(chēng)Spanner已經(jīng)是一個(gè)“SQL”系統(tǒng)了,即具備了關(guān)系存儲(chǔ)和關(guān)系運(yùn)算的能力。
3. NewSQL的一個(gè)特征是支持混合數(shù)據(jù)類(lèi)型存儲(chǔ),如Spanner支持NoSQL也支持關(guān)系存儲(chǔ)模型。而支持關(guān)系模型將是NewSQL系統(tǒng)的一個(gè)重要特征。
4. Spanner的另外一個(gè)特征是由松耦合的系統(tǒng)進(jìn)化到一個(gè)高效的緊耦合系統(tǒng),這樣的系統(tǒng)能夠處理各種類(lèi)型的大數(shù)據(jù)。與此不同的是目前的大數(shù)據(jù)處理組件因松耦合而導(dǎo)致三難(選型難、使用難、維護(hù)難)。這表明大數(shù)據(jù)處理的技術(shù)架構(gòu)可能從松耦合向緊耦合演進(jìn)。
從Spanner的演化,我們可以感知關(guān)系型數(shù)據(jù)庫(kù)的春天重返故里,而分布式關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)踏著數(shù)據(jù)庫(kù)前進(jìn)的節(jié)拍走到了我們眼前?,F(xiàn)在,已經(jīng)不是潮流來(lái)臨,而是在席卷2017年的我們,并繼續(xù)橫掃2018。以此來(lái)觀察數(shù)據(jù)庫(kù)界,這一年,OceanBase、TDSQL、TiDB、CockroachDB等等主流分布式數(shù)據(jù)庫(kù)即NewSQL系統(tǒng)正如火如荼地發(fā)展著,技術(shù)層面不斷向Spanner靠攏。
2.4 NoSQL、圖數(shù)據(jù)庫(kù)、流數(shù)據(jù)庫(kù)等場(chǎng)景化明顯
隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付超大規(guī)模和高并發(fā)的SNS類(lèi)型的純動(dòng)態(tài)網(wǎng)站時(shí)已經(jīng)顯得力不從心,而NoSQL數(shù)據(jù)庫(kù)由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。
NoSQL家族主要分為鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)、列存儲(chǔ)數(shù)據(jù)庫(kù)、文檔型數(shù)據(jù)庫(kù)和圖數(shù)據(jù)庫(kù)四大類(lèi),其產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類(lèi)帶來(lái)的挑戰(zhàn),故場(chǎng)景化也格外明顯。
鍵值存儲(chǔ)數(shù)據(jù)庫(kù)適用于內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問(wèn)負(fù)載,也用于一些日志系統(tǒng)等等。
列存儲(chǔ)數(shù)據(jù)庫(kù)適用于分布式的文件系統(tǒng);文檔型數(shù)據(jù)庫(kù)適用于Web應(yīng)用(與Key-Value類(lèi)似,Value是結(jié)構(gòu)化的,不同的是數(shù)據(jù)庫(kù)能夠了解Value的內(nèi)容)。
圖數(shù)據(jù)庫(kù)適用于社交網(wǎng)絡(luò),推薦系統(tǒng)等,專(zhuān)注于構(gòu)建關(guān)系圖譜,如果與AI結(jié)合起來(lái),我們可以設(shè)想一下他們美好的未來(lái)。
NoSQL數(shù)據(jù)庫(kù)并沒(méi)有一個(gè)統(tǒng)一的架構(gòu),而是各有所長(zhǎng),一個(gè)成功的NoSQL必然特別適用于某些場(chǎng)合或者某些應(yīng)用。
還有意思的是,Kafka今年終于正式迎來(lái)了1.0.0版本,不僅標(biāo)識(shí)著各組件功能的穩(wěn)定性,還引入了一些新的功能:Kafka Streams API的優(yōu)化(增加了一些全新的操作算子如cogroup等);JMX監(jiān)控指標(biāo)的完善(引入很多集群健康度檢查指標(biāo),對(duì)Kafka Connect監(jiān)控體系做了較大程度的補(bǔ)足);優(yōu)化SASL認(rèn)證錯(cuò)誤的處理;強(qiáng)化對(duì)JBOD磁盤(pán)崩潰的處理;冪等producer的優(yōu)化。此外,Kafka新引入了KSQL引擎,使得其更像一個(gè)流數(shù)據(jù)庫(kù)而存在。
2017年,從關(guān)系型數(shù)據(jù)庫(kù)之外的其他數(shù)據(jù)庫(kù),我們看到,數(shù)據(jù)庫(kù)正在朝場(chǎng)景化方向發(fā)展,不同類(lèi)型的數(shù)據(jù)庫(kù)適用于不同的場(chǎng)景,數(shù)據(jù)庫(kù)產(chǎn)品只有做好自己的場(chǎng)景定位,才能謀取到更大的發(fā)展。
2.5 一些老牌數(shù)據(jù)庫(kù),在變革中漸漸老去
2017年5月,微軟還發(fā)布了首款全球分布式多模型數(shù)據(jù)庫(kù)Azure Cosmos DB,這是一款全球可用的JSON數(shù)據(jù)庫(kù)平臺(tái)??梢钥吹?,關(guān)系數(shù)據(jù)庫(kù)廠商搶占NoSQL市場(chǎng)的鏖戰(zhàn)也將日趨激烈,幾年前,PostgreSQL和MySQL已經(jīng)支持了JSON類(lèi)型數(shù)據(jù),另外還有老牌的Infomix也是如此。
2017年10月,微軟發(fā)布了SQL Server2017 CTP2.1正式版。這是SQL Server 歷史上首次同時(shí)發(fā)布Windows和Linux版,并支持Docker部署。從數(shù)據(jù)庫(kù)排行榜看,微軟占據(jù)第三位,遙遙領(lǐng)先第四位PostgreSQL。SQL Server似乎風(fēng)光依舊。
但是,在國(guó)內(nèi),SQL Server已經(jīng)很難打開(kāi)高端市場(chǎng)的局面了(幾乎就是Oracle和MySQL的天下)。其實(shí)在國(guó)內(nèi),得益于在教育領(lǐng)域的耕耘和出色的產(chǎn)品易用性,SQL Server 有著比較好的群眾基礎(chǔ)和親和形象。但一直以來(lái),SQL Server都給大部分人群留下“適用于中小企業(yè)”的陳舊印象,再加上缺乏本地技術(shù)社區(qū)的建設(shè),SQL Server已經(jīng)漸漸淡出“高端玩家”的視野。若想要反轉(zhuǎn)局面,那么進(jìn)一步塑造品牌、打造標(biāo)桿案例、不斷提升產(chǎn)品和建設(shè)本地技術(shù)社區(qū)是SQL Server浴火重生的必經(jīng)之路。
無(wú)獨(dú)有偶,起源于上世紀(jì)80年代的Informix,一個(gè)全球市場(chǎng)占有率曾經(jīng)超過(guò)10%的元老級(jí)數(shù)據(jù)庫(kù),如今也面臨著窘境。一個(gè)曾經(jīng)是世界上最好的關(guān)系型數(shù)據(jù)庫(kù),卻因?yàn)槠髽I(yè)自身的經(jīng)營(yíng)問(wèn)題,掩蓋了技術(shù)上的成功。2001年,Informix被IBM公司接管,雖然一直保持更新,但是銷(xiāo)售始終不盡人意。終于在2017年5月1日,印度的HCL公司宣布正式接管Informix研發(fā)和支持團(tuán)隊(duì),這將重寫(xiě)Informix與國(guó)內(nèi)三家公司的關(guān)系。在此之前,IBM公司將Informix授權(quán)給了南大通用、華勝信泰和福建星瑞格這三家中國(guó)數(shù)據(jù)庫(kù)廠商以期合作。現(xiàn)在變數(shù)未定。Informix或許再也不能恢復(fù)當(dāng)年的輝煌,但我們有理由相信,一定能夠在眾多國(guó)內(nèi)知名數(shù)據(jù)庫(kù)里看到Informix的影子,看到它的技術(shù)精華被傳承下去。
其實(shí)在IBM公司接管Informix期間,就融合了Informix的技術(shù)成就了DB2數(shù)據(jù)庫(kù)。到了2017年6月22日,DB2已經(jīng) 發(fā)布了V11.1 Mod Pack 2 and Fix Pack2版本,增強(qiáng)了crash recovery和SQL直接對(duì)JSON格式的數(shù)據(jù)進(jìn)行操作的能力,包含了更多函數(shù)的支持。在DB-engines上,DB2也有著排名第六的不錯(cuò)的成績(jī)。相較Informix,DB2顯然更受IBM公司的青睞,但這仍掩蓋不了DB2在中國(guó)銷(xiāo)售不佳的事實(shí)(主要集中于金融行業(yè))。DB2因其入門(mén)慢、市場(chǎng)推廣差,往往不是用戶(hù)的第一、甚至第二選擇。
2017年9月,SAP發(fā)布了HANA 2.0 SPS 02最新版本,為支持使用最新內(nèi)存技術(shù)運(yùn)行業(yè)務(wù),主要新增了以下四大功能:一是數(shù)據(jù)庫(kù)功能的增強(qiáng),包括高可用性和災(zāi)難恢復(fù)等。二是提供了高級(jí)分析處理能力,如使用SAP HANA預(yù)測(cè)分析庫(kù)(PAL),以簡(jiǎn)化調(diào)用算法的方式加速預(yù)測(cè)性應(yīng)用程序開(kāi)發(fā),并能夠使用SAP Web HANA for SAP HANA開(kāi)發(fā)預(yù)測(cè)性和機(jī)器學(xué)習(xí)模型等。三是應(yīng)用程序開(kāi)發(fā)和工具增強(qiáng)。四是數(shù)據(jù)管理功能增強(qiáng)等。但HANA在國(guó)內(nèi)的表現(xiàn),尚在普通之列。
2.6 一些開(kāi)源的數(shù)據(jù)庫(kù),前途光明燦爛
開(kāi)源,是一種成功的商業(yè)模式。在開(kāi)源社區(qū)的支持下,眾多開(kāi)源數(shù)據(jù)庫(kù)如百花齊放,前途一片光明燦爛,比較知名的如MySQL,PostgreSQL,MongoDB,HBase,Cassandra和MariaDB等等。
讓我們來(lái)看看2017年,開(kāi)源數(shù)據(jù)庫(kù)都有哪些精彩的表現(xiàn)。
MySQL
• 10月發(fā)布最新的穩(wěn)定版本5.7.20,修復(fù)很多bug,針對(duì)審計(jì)、Docker、安全、插件、復(fù)制、參數(shù)配置和管理等方面做了更新和調(diào)整。
• 日志審計(jì)功能增強(qiáng);安全功能增強(qiáng);X plugin更新;復(fù)制功能增強(qiáng)和更新。
• 修復(fù)Docker中MySQL鏡像丟失的bug。
• 棄用、去除了一些配置參數(shù),比如tx_isolation和tx_read_only將被棄用。
• 9月發(fā)布最新MySQL 8.0.3 RC版本,此版本在賬戶(hù)管理、原子DDL、性能優(yōu)化、安全等方面做出優(yōu)化,并且修復(fù)了大量bug。
• 支持角色管理,角色是一系列權(quán)限的集合,可以給某個(gè)用戶(hù)授予和回收角色,使用角色可以更方便進(jìn)行權(quán)限管理。
• InnoDB存儲(chǔ)引擎支持原子DDL操作,包括表相關(guān)DDL和非表相關(guān)DDL。
• 采用新的數(shù)據(jù)字典,所有元數(shù)據(jù)都用InnoDB引擎存儲(chǔ),以解決DDL的原子性問(wèn)題。
• 修復(fù)歷史悠久的bug,8.0版本不再重置auto_increment值。
MariaDB
11月發(fā)布最新版本10.2.11,此版本在優(yōu)化、系統(tǒng)變量、主備復(fù)制、存儲(chǔ)引擎等方面做出補(bǔ)充和改進(jìn)。
• 現(xiàn)在InnoDB作為默認(rèn)存儲(chǔ)引擎,添加MyRocks存儲(chǔ)引擎的alpha版本。
• 引入窗口函數(shù)。
• 更新InnoDB到5.7.18版本。
• 更新TokuDB到5.6.7-82.2。
PostgreSQL
11月發(fā)布新版本10.1,PostgreSQL 10的重磅特性有并行計(jì)算、邏輯訂閱、FDW pushdown和sharding等。
• 支持陳述性表分區(qū)。
• 支持預(yù)寫(xiě)日志支持哈希索引。
• 主備復(fù)制,支持邏輯復(fù)制,同步復(fù)制的仲裁提交。
• 性能提升,支持并行位圖堆掃描、B-樹(shù)索引掃描、合并連接。
TiDB
10月發(fā)布GA版本(TiDB1.0),該版本對(duì) MySQL 兼容性、SQL 優(yōu)化器、系統(tǒng)穩(wěn)定性、性能等方面做了大量的工作:
• SQL查詢(xún)優(yōu)化器(調(diào)整代價(jià)模型,Analyze下推,函數(shù)簽名下推)。
• 優(yōu)化內(nèi)部數(shù)據(jù)格式,減小中間結(jié)果大小。
• 提升MySQL兼容性。
• 支持 NO_SQL_CACHE 語(yǔ)法,控制存儲(chǔ)引擎對(duì)緩存的使用。
• 重構(gòu) Hash Aggregator 算子,降低內(nèi)存使用。
• 支持 Stream Aggregator 算子。
MongoDB
于2017年10月19日在納斯達(dá)克上市,11月發(fā)行最新版本3.6,伴隨著MongoDB 3.6的發(fā)布,MongoDB Team提供了一個(gè)方便開(kāi)發(fā)者的指南社區(qū)。新版本主 要提供以下幾個(gè)功能:
• Change stream,通過(guò)Oplog監(jiān)聽(tīng)一個(gè)集合的DML事件,用來(lái)實(shí)現(xiàn)pubsub類(lèi)型的場(chǎng)景。
• Retryable writes,當(dāng)集群出現(xiàn)換主現(xiàn)象時(shí),寫(xiě)入操作會(huì)被自動(dòng)重試從而保證應(yīng)用端的透明。
• Tunable consistency,MongoDB提供可調(diào)的一致性(一致或最終一致),并在query中定義。
• Greater query and update expressivity,支持操作嵌套數(shù)組;提供新的聚合操作符,以及在查詢(xún)語(yǔ)法中使用聚合表達(dá)式。
Apache Cassandra
最新版3.11.1,發(fā)布于2017年10月,此版本在完善功能,提高性能等方面做出大量工作,并且修復(fù)眾多bug:
• sstableloader忽略“ignore”選項(xiàng)。
• 實(shí)現(xiàn)分區(qū)邊界的short read protection。
• 提升TRUNCATE性能、提升short read protection性能。
• 修復(fù)對(duì)SuperColumn表的支持。
總體上來(lái)看,在DB-Engines 排名top5中,開(kāi)源數(shù)據(jù)庫(kù)就占了三席,分別為MySQL,PostgreSQL和MongoDB。這些開(kāi)源的數(shù)據(jù)庫(kù),究其成功的根本原因,是在放棄部分著作權(quán)的前提下,贏得了三大好處:培養(yǎng)開(kāi)源社區(qū),獲得更大的用戶(hù)群體;降低該產(chǎn)品和相關(guān)產(chǎn)品的技術(shù)支持成本;通過(guò)開(kāi)源社區(qū)得到更多的衍生作品,提供更好的生態(tài)環(huán)境。
我們相信,在2018乃至更長(zhǎng)遠(yuǎn)的未來(lái),開(kāi)源數(shù)據(jù)庫(kù)會(huì)越走越好。
2.7 CockroachDB,開(kāi)源NewSQL
CockroachDB是一個(gè)分布式類(lèi)Spanner架構(gòu)的數(shù)據(jù)庫(kù),通過(guò)基于時(shí)間戳的MVCC技術(shù),完整地支持了ACID語(yǔ)義。在隔離級(jí)別層面,支持SSI和SI,且SSI作為默認(rèn)級(jí)別。
對(duì)于SSI,CockroachDB受“write-snapshot isolation[4]”技術(shù)影響較大,著力于解決讀-寫(xiě)沖突,以實(shí)現(xiàn)SSI。
CockroachDB支持外部一致性,支持有限的線性一致性。
2017年10月CockroachDB發(fā)布1.1版本,引入了快速并發(fā)導(dǎo)入數(shù)據(jù)的功能,主要做了三方面的工作:
1. 從遺留數(shù)據(jù)庫(kù)進(jìn)行無(wú)縫遷移 。
2. 簡(jiǎn)化集群管理。
3. 為云環(huán)境提高性能。
在《What’s Really New with NewSQL 》這篇論文里,如圖5,NewSQL被分為了三種類(lèi)型,CockroachDB、Spanner、TiDB歸屬第一類(lèi)NewSQL。
TDSQL、DRDS等這樣的產(chǎn)品歸屬第二類(lèi)NewSQL,但是從2017年TDSQL的發(fā)展來(lái)看,TDSQL從架構(gòu)上更加靠近第一類(lèi)NewSQL。
而Aurora這樣的產(chǎn)品,被劃分為第三類(lèi)NewSQL系統(tǒng)。但Aurora公布了multi write之后,其架構(gòu)是否也會(huì)向第一類(lèi)NewSQL靠近呢
未來(lái)的世界,我們相信,NewSQL會(huì)繼續(xù)引領(lǐng)數(shù)據(jù)庫(kù)的潮流,每種類(lèi)型的NewSQL會(huì)相互借鑒、不斷融合、協(xié)同發(fā)展。
圖5 NewSQL類(lèi)型圖
3.中國(guó)數(shù)據(jù)庫(kù)起源與發(fā)展
3.1 NDBC大會(huì),中國(guó)數(shù)據(jù)庫(kù)四十年
2017年金秋十月,第34屆中國(guó)數(shù)據(jù)庫(kù)學(xué)術(shù)會(huì)議(NDBC 2017)在西子湖畔成功召開(kāi),大會(huì)聚集了全國(guó)數(shù)據(jù)處理技術(shù)領(lǐng)域的前輩、專(zhuān)家、學(xué)者、師生。
今年,恰逢中國(guó)數(shù)據(jù)庫(kù)學(xué)術(shù)會(huì)議四十華誕,NDBC2017回顧了中國(guó)數(shù)據(jù)庫(kù)的四十年歷程。這一屆的NDBC,可謂中國(guó)數(shù)據(jù)庫(kù)界2017年的最大事。
在四十年前,即1977年,中國(guó)數(shù)據(jù)庫(kù)的開(kāi)山鼻祖,薩師煊老師倡導(dǎo)召開(kāi)了全國(guó)數(shù)據(jù)庫(kù)技術(shù)研討大會(huì),中國(guó)數(shù)據(jù)庫(kù)萌芽,數(shù)據(jù)庫(kù)技術(shù)的研究和推廣就此展開(kāi)。
從當(dāng)初老一輩專(zhuān)家薩師煊、王能斌、羅曉沛、施伯樂(lè)等播下數(shù)據(jù)庫(kù)技術(shù)的火種,到楊冬青、馬應(yīng)章、王珊、尹良濱、馮玉才、李建中、何守才、何新貴、張大洋、張少潤(rùn)、張作民、鄭懷遠(yuǎn)、鄭振楣、周立柱、周龍?bào)J、徐秋元、徐潔磐、唐世渭、唐常杰、姚卿達(dá)、童頫、董繼潤(rùn)、瞿兆榮、岳麗華等專(zhuān)家教授奮發(fā)圖強(qiáng),再到新一代杜小勇、崔斌、高宏、李占懷、彭智勇、王國(guó)仁、周立柱、王建民、陳紅、于戈等教授(還有很多專(zhuān)家教授沒(méi)能一一列出,他們都是中國(guó)數(shù)據(jù)庫(kù)的脊梁),中國(guó)數(shù)據(jù)庫(kù)開(kāi)始發(fā)展興旺。
相較世界數(shù)據(jù)庫(kù)技術(shù),中國(guó)數(shù)據(jù)庫(kù)技術(shù)從起步、跟蹤、追趕,到并跑,凝結(jié)了數(shù)代老一輩專(zhuān)家的心血。
四十來(lái),老一輩專(zhuān)家們培養(yǎng)了一批批的中國(guó)數(shù)據(jù)庫(kù)人,他們或投身工業(yè)實(shí)踐,或?qū)P膶W(xué)術(shù)研究,或出國(guó)汲取經(jīng)驗(yàn),或開(kāi)創(chuàng)國(guó)內(nèi)數(shù)據(jù)庫(kù)產(chǎn)品。這些人,正是中國(guó)數(shù)據(jù)庫(kù)技術(shù)的脊梁,在眾多數(shù)據(jù)庫(kù)人的努力下,中國(guó)的數(shù)據(jù)庫(kù)實(shí)現(xiàn)了:
1. 科研國(guó)際化:論文發(fā)表直逼美國(guó)(如圖5)、舉辦國(guó)際學(xué)術(shù)雜志/會(huì)議(如CODAS、WAIM、APWEB、DASFAA、PAKDD、WISE、CIKM 、E-R、VLDB等)、國(guó)際學(xué)術(shù)界獲獎(jiǎng)等。
2. 教學(xué)精品化:各種數(shù)據(jù)庫(kù)教材層出不窮,引領(lǐng)了國(guó)內(nèi)數(shù)據(jù)庫(kù)技術(shù)的發(fā)展。例如,現(xiàn)在分布式數(shù)據(jù)庫(kù)技術(shù)非?;馃?,而NDBC的老專(zhuān)家們1998年就開(kāi)始研究并出版了一系列的分布式數(shù)據(jù)庫(kù)技術(shù)書(shū)籍,如圖所示。
3. 成果產(chǎn)業(yè)化:科研成果轉(zhuǎn)化為實(shí)際的產(chǎn)品服務(wù)于中國(guó)的市場(chǎng),并為中國(guó)數(shù)據(jù)庫(kù)界培養(yǎng)了一代又一代的數(shù)據(jù)庫(kù)工程實(shí)踐人才。如國(guó)內(nèi)最早做數(shù)據(jù)研發(fā)的人大金倉(cāng)、武漢達(dá)夢(mèng)、神舟通用、南大通用等公司,其背后的技術(shù)源泉都是來(lái)自高校的數(shù)據(jù)庫(kù)研究團(tuán)隊(duì)。
現(xiàn)在,活躍在中國(guó)的科研、教學(xué)一線的數(shù)據(jù)庫(kù)、大數(shù)據(jù)專(zhuān)家們,如數(shù)據(jù)庫(kù)領(lǐng)域的杰青包括哈爾濱工業(yè)大學(xué)的李建中教授、華東師范大學(xué)的周傲英教授、東北大學(xué)的王國(guó)仁教授、清華大學(xué)的王建民教授,都成績(jī)斐然;入選國(guó)家千人計(jì)劃的數(shù)據(jù)庫(kù)人才如周曉方、樊文飛、張彥春、林學(xué)民、文繼榮、王曉陽(yáng)、申恒濤、武新,都領(lǐng)軍一方;成為長(zhǎng)江學(xué)者特聘教授與長(zhǎng)江學(xué)者講座教授如馮玲、周傲英、王國(guó)仁、崔斌、樊文飛、黃銘鈞、熊輝,都成績(jī)卓著。這些杰出的專(zhuān)家教授們,同時(shí)又培養(yǎng)出一代又一代的數(shù)據(jù)庫(kù)人才。
現(xiàn)在,活躍在華為、騰訊、阿里、京東等公司的數(shù)據(jù)庫(kù)核心研發(fā)人員,有很多專(zhuān)家、技術(shù)骨干,都是出自人大金倉(cāng)、武漢達(dá)夢(mèng)、神舟通用、南大通用等公司,從他們身上,我們可以看到NDBC四十年前點(diǎn)燃的星火、四十年里培養(yǎng)澆灌的樹(shù)苗,現(xiàn)在已經(jīng)成才,成為國(guó)內(nèi)數(shù)據(jù)庫(kù)研發(fā)的骨干棟梁。
NDBC,四十年里,一直在深深地影響著中國(guó)的數(shù)據(jù)庫(kù)界。NDBC用團(tuán)結(jié)、執(zhí)著、和諧、瀟灑的優(yōu)良學(xué)術(shù)文化,熏陶出了一批又一批的具有國(guó)際視野、腳踏實(shí)地的人才隊(duì)伍。
圖6 中國(guó)在數(shù)據(jù)庫(kù)三大頂級(jí)會(huì)議發(fā)文章數(shù)量圖
圖7 分布式數(shù)據(jù)庫(kù)等書(shū)籍封面圖
3.2 春天里的數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)行業(yè),又迎來(lái)了一個(gè)春天。春天里,百花開(kāi),眾多的數(shù)據(jù)庫(kù)產(chǎn)品、研發(fā)團(tuán)隊(duì)、數(shù)據(jù)服務(wù)團(tuán)隊(duì)在2017充滿(mǎn)生機(jī),各自芬芳。
3.2.1 百花齊放的數(shù)據(jù)庫(kù)技術(shù)大會(huì)
越來(lái)越多的技術(shù)人,或?qū)P臄?shù)據(jù)庫(kù)學(xué)術(shù)研究,或投身于數(shù)據(jù)庫(kù)產(chǎn)品開(kāi)發(fā),各數(shù)據(jù)庫(kù)技術(shù)大會(huì)在這樣的背景下產(chǎn)生,為喜愛(ài)和從事數(shù)據(jù)庫(kù)研究的技術(shù)人提供了交流、提高的平臺(tái)。
國(guó)內(nèi)規(guī)模較大的數(shù)據(jù)庫(kù)學(xué)術(shù)會(huì)議有中國(guó)數(shù)據(jù)庫(kù)技術(shù)學(xué)會(huì)(NDBC)和中國(guó)大數(shù)據(jù)技術(shù)大會(huì)(BDTC):
中國(guó)數(shù)據(jù)庫(kù)技術(shù)學(xué)會(huì)(NDBC):自1977年至今,擁有四十年歷史。始終秉承為大陸、港、澳、臺(tái)和海外華裔數(shù)據(jù)庫(kù)研究者、開(kāi)發(fā)者和用戶(hù)提供大中華數(shù)據(jù)庫(kù)論壇,交流成果經(jīng)驗(yàn),探討挑戰(zhàn)問(wèn)題和研究方向的宗旨。近年來(lái),更吸引了海外數(shù)據(jù)庫(kù)研究者、開(kāi)發(fā)者投稿和參會(huì)。
中國(guó)大數(shù)據(jù)技術(shù)大會(huì)(BDTC),前身是hadoop中國(guó)云計(jì)算會(huì)議,由中國(guó)計(jì)算機(jī)學(xué)會(huì)主辦,大會(huì)內(nèi)容涵蓋數(shù)據(jù)庫(kù)、大數(shù)據(jù)云服務(wù)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)、知識(shí)圖譜、區(qū)塊鏈等方方面面,是國(guó)內(nèi)最具影響力、規(guī)模最大的大數(shù)據(jù)領(lǐng)域技術(shù)盛會(huì)。
國(guó)際的學(xué)術(shù)會(huì)議在國(guó)內(nèi)召開(kāi):
• DASFAA 2017(The 22nd International Conference on Database Systems for Advanced Applications),2017年3月在中國(guó)蘇州召開(kāi)。
• The Asia Pacific Web (APWeb) 和 Web-Age Information Management (WAIM) Joint Conference:2017年6月在北京召開(kāi)。
工業(yè)界規(guī)模較大的數(shù)據(jù)庫(kù)技術(shù)大會(huì),有中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì)(DTCC),Oracle數(shù)據(jù)技術(shù)大會(huì),中國(guó)MySQL用戶(hù)組年會(huì)(ACMUG)和MySQL技術(shù)嘉年華(IMG),PostgreSQL中國(guó)用戶(hù)大會(huì)(PCC)等:
• 中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì)(DTCC):2017年DTCC吸引5000多名IT人士參會(huì),是國(guó)內(nèi)影響力最大的數(shù)據(jù)庫(kù)技術(shù)大會(huì),主題涵蓋Oracle、MySQL、NoSQL、云端數(shù)據(jù)庫(kù)、智能數(shù)據(jù)平臺(tái)、區(qū)塊鏈、數(shù)據(jù)可視化、深度學(xué)習(xí)等領(lǐng)域的前瞻性話(huà)題與技術(shù)。為數(shù)據(jù)庫(kù)人群、大數(shù)據(jù)從業(yè)人員、廣大互聯(lián)網(wǎng)人士及行業(yè)相關(guān)人士提供最具價(jià)值的交流平臺(tái)。
• Oracle數(shù)據(jù)技術(shù)大會(huì):2017年11月在北京召開(kāi),吸引了千人以上參會(huì)交流。擁有高質(zhì)量、高新尖、高專(zhuān)業(yè)的特點(diǎn),邀請(qǐng)業(yè)內(nèi)頂尖的技術(shù)專(zhuān)家、企業(yè)客戶(hù)、分享數(shù)據(jù)領(lǐng)域內(nèi)的最新技術(shù)進(jìn)展和實(shí)踐。
• 中國(guó)MySQL用戶(hù)組(ACMUG)年會(huì)、MySQL技術(shù)嘉年華(IMG):中國(guó)MySQL技術(shù)領(lǐng)域兩朵花,在2017年12月的同一天,各自在北京和上海綻放。前者國(guó)際化意味濃厚,后者追求分享的質(zhì)量。
• PostgreSQL中國(guó)用戶(hù)大會(huì)(PCC):是一場(chǎng)匯聚各界PostgreSQL大拿交流最新技術(shù)動(dòng)態(tài)和應(yīng)用案例的盛宴,推動(dòng)了PostgreSQL在中國(guó)的發(fā)展,也起到了聯(lián)系PG中國(guó)社區(qū)和國(guó)外社區(qū)的作用。
• 這一年,我們還看到,其他的社區(qū)活動(dòng)也精彩不斷,CockroachDB社區(qū)成立,Redis、HBase等社區(qū)活動(dòng)開(kāi)展,這些活動(dòng)為中國(guó)工程界的數(shù)據(jù)庫(kù)技術(shù)增添了亮色。
3.2.2 百舸爭(zhēng)流的數(shù)據(jù)庫(kù)產(chǎn)品
一 .傳統(tǒng)的數(shù)據(jù)庫(kù)產(chǎn)品
• 人大金倉(cāng)(Kingbase):2017年8月,KingBaseES通用型數(shù)據(jù)庫(kù)產(chǎn)品,成功入駐阿里云市場(chǎng),具備適應(yīng)當(dāng)下云計(jì)算環(huán)境的數(shù)據(jù)庫(kù)特征。
• 達(dá)夢(mèng)數(shù)據(jù)庫(kù)(DM):2017年,DM與多省展開(kāi)合作,為四川地質(zhì)環(huán)境信息建設(shè)、廣西電子政務(wù)等提供數(shù)據(jù)庫(kù)服務(wù)
• 南大通用(GBASE):2017年3月,旗下的通用型數(shù)據(jù)庫(kù)登錄青云App Center2.0平臺(tái),提供云化數(shù)據(jù)庫(kù)服務(wù)。
二. 分布式數(shù)據(jù)庫(kù)
國(guó)內(nèi)分布式數(shù)據(jù)庫(kù)的代表有騰訊分布式數(shù)據(jù)庫(kù)TDSQL、阿里云(DRDS)、OceanBase、TiDB等,這些產(chǎn)品代表了國(guó)內(nèi)分布式數(shù)據(jù)庫(kù)的水平:
• 騰訊分布式數(shù)據(jù)庫(kù)TDSQL:
• 一款企業(yè)級(jí)面向金融類(lèi)業(yè)務(wù)的數(shù)據(jù)庫(kù)產(chǎn)品。
• 支撐了騰訊自己的計(jì)費(fèi)業(yè)務(wù)。
• 輸出到諸如微眾銀行等企業(yè),穩(wěn)定運(yùn)行了三年之久。
• 2017年發(fā)布了分布式事務(wù)、分布式JOIN、多種數(shù)據(jù)分區(qū)、多級(jí)數(shù)據(jù)分區(qū)、熱點(diǎn)更新等特性。
• 阿里數(shù)據(jù)庫(kù)產(chǎn)品家族:
• 云棲大會(huì)前夕,推出新一代高性能數(shù)據(jù)庫(kù)PolarDB、X-Cluster等,均采用分布式存儲(chǔ)引擎設(shè)計(jì)。
• OceanBase,2017年發(fā)布1.4.51版本,提供了副本只讀、前后端協(xié)議checksum機(jī)制、同義詞功能和回收站等功能。
• TiDB:
• 與騰訊云和Ucloud先后達(dá)成合作。
• 發(fā)布GA版(TiDB 1.0),對(duì)MySQL兼容性、SQL優(yōu)化器、系統(tǒng)穩(wěn)定性、性能等做了大量工作。
• 硅谷Office落地,此舉標(biāo)志著PingCAP進(jìn)一步在全球布局云計(jì)算產(chǎn)業(yè)。
• SequoiaDB:SequoiaDB 發(fā)布v2.8.3企業(yè)版。
3.2.3 百馬奔騰的數(shù)據(jù)庫(kù)研發(fā)團(tuán)隊(duì)
從薩師煊老師起步,中國(guó)數(shù)據(jù)庫(kù)已經(jīng)有了四十年的歷史。
現(xiàn)如今,國(guó)內(nèi)的數(shù)據(jù)庫(kù)研發(fā)隊(duì)伍已經(jīng)頗具規(guī)模。
從擁有200余人規(guī)模的阿里數(shù)據(jù)庫(kù)技術(shù)團(tuán)隊(duì)(阿里云、螞蟻金服和阿里集團(tuán)數(shù)據(jù)庫(kù)事業(yè)部),到人數(shù)300+的“中國(guó)最神秘研究基地”——華為2012高斯實(shí)驗(yàn)室,以及騰訊的TEG金融云、騰訊云,百度的搜索架構(gòu)團(tuán)隊(duì),京東的京東云等,國(guó)內(nèi)數(shù)據(jù)庫(kù)研發(fā)無(wú)不展現(xiàn)出一派生機(jī)勃勃的景象。
這些研發(fā)隊(duì)伍,不僅積極為開(kāi)源社區(qū)添磚加瓦,也大力投入自主研發(fā)。
在此,讓我們羅列一下已知的數(shù)據(jù)庫(kù)引擎研發(fā)團(tuán)隊(duì)(尚不完整…),與他們一起見(jiàn)證國(guó)產(chǎn)數(shù)據(jù)庫(kù)研發(fā)的繁榮,也讓我們思考一下繁榮的背后,為什么我們還沒(méi)有世界級(jí)產(chǎn)品
1. 大型通用數(shù)據(jù)庫(kù)系列:人大金倉(cāng)、達(dá)夢(mèng)、神州通用、南大通用
2. 騰訊系:TDSQL、TXSQL、Tbase、PhxSQL
3. 阿里系三個(gè)團(tuán)隊(duì):阿里巴巴集團(tuán)數(shù)據(jù)庫(kù)事業(yè)部、阿里云、Oceanbase
4. 其他互聯(lián)網(wǎng):京東云、百度、小米
5. 華為系三個(gè)團(tuán)隊(duì):2012高斯、2012分布式實(shí)驗(yàn)室、華為云(IT企業(yè)產(chǎn)品線)
6. DB2中國(guó)研發(fā)團(tuán)隊(duì)(曾經(jīng)的存在)、EsgynDB中國(guó)團(tuán)隊(duì)、國(guó)家電網(wǎng)、中國(guó)移動(dòng)蘇州研究院、中國(guó)電信廣州團(tuán)隊(duì)(尚存在否 )
7. NewSQL系列:PingCAP、巨杉
8. PostgreSQL系:亞信南京AntDB、中興GoldenDB 、Greenplum中國(guó)團(tuán)隊(duì)、飛象
9. MySQL系列:愛(ài)可生、上海熱璞、萬(wàn)里開(kāi)源、MySQL中國(guó)區(qū)研發(fā)成員、OneSQL
10. 分析型系列/大數(shù)據(jù)系列:柏睿數(shù)據(jù)RapidsDB、酷克數(shù)據(jù)、偶數(shù)科技、Kylin創(chuàng)業(yè)團(tuán)隊(duì)Kyligence、星環(huán)科技
11. Informix系列:華勝信泰、福建星瑞格、南大通用(重復(fù))
12. 其他:Haisql、Highgo db、許繼集團(tuán)SG-RDB、Cedar、上容、天曦TXDB、HHDB、博陽(yáng)數(shù)據(jù)管理系統(tǒng)、東方國(guó)信、優(yōu)炫云數(shù)據(jù)庫(kù)、新華三、鼎天盛華、Open base、Huayisoft、HUABASE等
3.3 雙11,源自中國(guó)的需求大于技術(shù)突破的意義
每年電商雙11大促,中國(guó)單一群體的巨量行為(同一文化氛圍下的同一種行為相較世界其他民族,有著不可預(yù)估的量,是不可預(yù)估的群體行為),對(duì)阿里、京東等電商的數(shù)據(jù)庫(kù)團(tuán)隊(duì)都是一次巨大考驗(yàn)。
經(jīng)過(guò)9年的發(fā)展,雙十一場(chǎng)景對(duì)數(shù)據(jù)庫(kù)的穩(wěn)定性、性能提出非常高的要求,尤其是零點(diǎn)高峰,無(wú)論國(guó)內(nèi)國(guó)外,都是難得一見(jiàn)的。
面對(duì)交易洪流,阿里集團(tuán)的數(shù)據(jù)庫(kù)扛住一波波洪峰,阿里的OceanBase扛住了交易洪峰,整個(gè)阿里交易創(chuàng)建峰值32.5萬(wàn)筆/秒,支付成功峰值25.6萬(wàn)筆/秒,數(shù)據(jù)庫(kù)處理峰值4200萬(wàn)次/秒。而京東的交易,也是一路攀升。這些成績(jī)、支撐業(yè)務(wù)發(fā)展的幕后英雄之一是數(shù)據(jù)庫(kù)技術(shù)。
雙11的成績(jī),宣告的不僅是商業(yè)的勝利,也不僅是數(shù)據(jù)庫(kù)技術(shù)獲得“巨大”突破的勝利(技術(shù)的進(jìn)步有待探討),而是中國(guó)式需求對(duì)數(shù)據(jù)庫(kù)技術(shù)提出的場(chǎng)景考驗(yàn),這種場(chǎng)景的考驗(yàn)將持續(xù)不斷地對(duì)數(shù)據(jù)庫(kù)技術(shù)發(fā)出新的考題,促使在中國(guó)做數(shù)據(jù)庫(kù)研發(fā)的技術(shù)人員“被迫”進(jìn)步,數(shù)據(jù)庫(kù)技術(shù)“被迫”創(chuàng)新?;ヂ?lián)網(wǎng)場(chǎng)景將引發(fā)多行業(yè)的創(chuàng)新場(chǎng)景,也許正是國(guó)產(chǎn)數(shù)據(jù)庫(kù)單點(diǎn)突破所在。
3.4 TiDB,國(guó)內(nèi)開(kāi)源界的一抹亮色
這一年,成立近3年的TiDB,亮點(diǎn)頗多(2017年10月份發(fā)布了GA V1.0版本、還提供了TiSpark查詢(xún)方案),已然成為國(guó)內(nèi)鮮有的數(shù)據(jù)庫(kù)原創(chuàng)開(kāi)源代表,甚至在國(guó)際上贏得頗多贊許(GitHub stars 11000+, contributors 155+,媲美CockroachDB)。
TiDB是 PingCAP 公司自主開(kāi)發(fā)的開(kāi)源分布式數(shù)據(jù)庫(kù)產(chǎn)品,模型參考了 Google 的分布式數(shù)據(jù)庫(kù)論文(Spanner / F1),解決了關(guān)系型數(shù)據(jù)庫(kù)水平擴(kuò)展的難題,具備水平彈性伸縮,強(qiáng)一致的分布式事務(wù),基于 Raft 算法的多副本復(fù)制等特性。作為一個(gè)典型的 SQL Above NoSQL 的架構(gòu),TiDB底層是一個(gè)支持跨行事務(wù)和強(qiáng)一致性的分布式 KV 存儲(chǔ)引擎,上層是支持SQL 語(yǔ)法和查詢(xún)的分布式執(zhí)行引擎,這種存儲(chǔ)和計(jì)算分層的架構(gòu)具有更好的靈活性,可以根據(jù)不同的業(yè)務(wù)負(fù)載做彈性的水平伸縮。
從使用者角度來(lái)看,TiDB 高度兼容 MySQL 協(xié)議,在大多數(shù)情況下,應(yīng)用層不需要修改一行代碼,就可以獲得支持高并發(fā)的擴(kuò)展能力,同時(shí)支持智能的數(shù)據(jù)調(diào)度和故障自恢復(fù)功能,用戶(hù)遷移和維護(hù)成本都會(huì)非常低。
未來(lái),TiDB 會(huì)在數(shù)據(jù)庫(kù)云的多租戶(hù)和資源隔離、高效實(shí)時(shí)的查詢(xún)分析引擎、新硬件下的新技術(shù)架構(gòu)優(yōu)化、完善智能的調(diào)度系統(tǒng)、HTAP等方面發(fā)力,為用戶(hù)帶來(lái)更多的價(jià)值。
因?yàn)橛辛薕ceanBase、TDSQL等,有了TiDB,國(guó)內(nèi)數(shù)據(jù)庫(kù)界有了“創(chuàng)新”的味道,而TiDB開(kāi)源可能會(huì)使更多的人多方面受益,相較于一些產(chǎn)品從開(kāi)源到閉源,這一點(diǎn)更有意義。
3.5 立言,原創(chuàng)有深度
一個(gè)領(lǐng)域內(nèi)的圖書(shū)出版量和銷(xiāo)售量,往往能反映該領(lǐng)域的發(fā)展態(tài)勢(shì)。
一個(gè)領(lǐng)域內(nèi)的出版的圖書(shū)的質(zhì)量,往往能反映該領(lǐng)域的深入程度。
讓我們先來(lái)看看近幾年國(guó)內(nèi)幾家出版社的數(shù)據(jù)庫(kù)類(lèi)圖書(shū)出版量(如下圖8),可以發(fā)現(xiàn),數(shù)據(jù)庫(kù)類(lèi)圖書(shū)雖然在總出版量中占比不大,但還是有逐年上升的趨勢(shì),這其中大數(shù)據(jù)與數(shù)據(jù)分析類(lèi)圖書(shū)占據(jù)了相當(dāng)大一部分,而數(shù)據(jù)庫(kù)理論類(lèi)圖書(shū)則較低迷。
圖8 2013-2017數(shù)據(jù)庫(kù)類(lèi)圖書(shū)出版量統(tǒng)計(jì)圖
再來(lái)看看數(shù)據(jù)庫(kù)類(lèi)圖書(shū)的銷(xiāo)售情況。線上銷(xiāo)售以亞馬遜銷(xiāo)售排行榜為例,截至2017年12月,在數(shù)據(jù)庫(kù)類(lèi)實(shí)時(shí)銷(xiāo)售排行榜中,top3分別為《大數(shù)據(jù)時(shí)代:生活、工作與思維的大變革》、《SQL必知必會(huì)(第四版)》和《深入淺出數(shù)據(jù)分析》,而數(shù)據(jù)庫(kù)理論類(lèi)圖書(shū)中僅《數(shù)據(jù)庫(kù)索引設(shè)計(jì)與優(yōu)化》與《數(shù)據(jù)庫(kù)系統(tǒng)概念》兩本躋身top10。這一現(xiàn)象在線下銷(xiāo)售中得到了更充分的體現(xiàn)。以新華書(shū)店為例,在2017年11月份數(shù)據(jù)庫(kù)技術(shù)類(lèi)暢銷(xiāo)榜中,大數(shù)據(jù)與數(shù)據(jù)分析類(lèi)圖書(shū)搶占了top10全部席位,即便是top20中也難得一見(jiàn)理論類(lèi)圖書(shū)的影子。
這難道是數(shù)據(jù)庫(kù)領(lǐng)域已經(jīng)不需要理論知識(shí)扎實(shí)的人才了么 其實(shí)不然。在數(shù)據(jù)庫(kù)行業(yè)中,剛?cè)腴T(mén)的新手渴求的是一本涵蓋全面的工具書(shū),對(duì)理論類(lèi)圖書(shū)大都是望而卻步;而已經(jīng)摸爬滾打十幾年的老手們,憑借豐富的經(jīng)驗(yàn)和閱歷,足以滿(mǎn)足企業(yè)研發(fā)所需,自然就不需要這方面的書(shū)了,所以數(shù)據(jù)庫(kù)理論類(lèi)的書(shū)籍較少。
入門(mén)菜鳥(niǎo)希望得到老鳥(niǎo)的經(jīng)驗(yàn),國(guó)內(nèi)的圖書(shū)基本滿(mǎn)足了入門(mén)的需要。
經(jīng)驗(yàn)豐富的老鳥(niǎo)希望深入原理、深入代碼讓自己百尺竿頭更進(jìn)一步,可是這方面的書(shū)籍太少。
國(guó)內(nèi)數(shù)據(jù)庫(kù)原創(chuàng)書(shū)籍,深入到原理和源碼層面的,經(jīng)典的有《MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎》、《PostgreSQL數(shù)據(jù)庫(kù)內(nèi)核分析》、《數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化器的藝術(shù)》這幾本書(shū),極高的質(zhì)量和極佳的口碑為中國(guó)數(shù)據(jù)庫(kù)界增色不少。
而2017年出版的數(shù)據(jù)庫(kù)圖書(shū)中,《MySQL運(yùn)維內(nèi)參:MySQL、Galera、Inception核心原理與最佳實(shí)》銷(xiāo)量較好,《數(shù)據(jù)庫(kù)事務(wù)處理的藝術(shù):事務(wù)管理與并發(fā)控制》一書(shū)則直接深入到數(shù)據(jù)庫(kù)最核心的技術(shù)——事務(wù)處理層面討論了并發(fā)訪問(wèn)控制等核心技術(shù),這種有深度的書(shū)籍折射出國(guó)內(nèi)數(shù)據(jù)庫(kù)研發(fā)的水準(zhǔn)在向最核心部分攀登前進(jìn)。
站在2017年尾,數(shù)據(jù)庫(kù)界更加期盼,未來(lái)有更多高質(zhì)量有深度的數(shù)據(jù)庫(kù)原創(chuàng)書(shū)籍,來(lái)推高國(guó)內(nèi)數(shù)據(jù)庫(kù)研發(fā)、運(yùn)維的水準(zhǔn)。因?yàn)槲覀兛吹?,?guó)內(nèi)數(shù)據(jù)庫(kù)研發(fā)的團(tuán)隊(duì)在日漸興旺。
4.數(shù)據(jù)庫(kù)發(fā)展小故事
本篇是發(fā)生在2017年的小故事,故事的選取,有一定的隨機(jī)性,未必能代表數(shù)據(jù)庫(kù)界的整體情況。放在這里,我們希望能通過(guò)研發(fā)、運(yùn)維這么幾朵小小的浪花,折射幾點(diǎn)太陽(yáng)的光輝。
4.1 蓋老師深度思考的浪花
Oracle 18c,是一個(gè)時(shí)代的終結(jié)。這是蓋國(guó)強(qiáng)老師在2017年的的感悟。
2017年10月1日,蓋國(guó)強(qiáng)老師在舊金山OOW大會(huì)現(xiàn)場(chǎng),感受了Larry Ellison發(fā)布Oracle Database 18c產(chǎn)品的盛況,18c被稱(chēng)為數(shù)據(jù)庫(kù)領(lǐng)域的第一個(gè)自治產(chǎn)品,能夠?qū)崿F(xiàn)自我驅(qū)動(dòng)、自我安全和自我修復(fù),事實(shí)上就是最大程度的減少了人工的參與。
業(yè)界在感嘆技術(shù)進(jìn)步的同時(shí),也存在一股淡淡的憂(yōu)慮和哀傷,因?yàn)橐粋€(gè)重要的崗位 - DBA可能不再重要,或者不再被需要。
而事實(shí)上,蓋老師認(rèn)為更重要的變化是18c這個(gè)版本,從12c到18c,Oracle公司改變了數(shù)據(jù)庫(kù)的命名策略,以后每年都將發(fā)布一個(gè)以年為單位的版本,例如19c,20c,這,意味著一個(gè)時(shí)代的終結(jié)。
傳統(tǒng)的商業(yè)軟件迭代,通常以數(shù)年為單位,研發(fā)一個(gè)目標(biāo)明確、更新眾多的發(fā)布版本,而這種方式在快速變化的互聯(lián)網(wǎng)時(shí)代,已經(jīng)過(guò)時(shí),用戶(hù)習(xí)慣了快速看到新的變化、快速感受、快速試錯(cuò),從產(chǎn)品研發(fā)到產(chǎn)品發(fā)布,一切都在加速,顯然Oracle的這一變化就是在適應(yīng)時(shí)代,期望以快速的迭代降低讓用戶(hù)長(zhǎng)時(shí)間等待的風(fēng)險(xiǎn)。其實(shí)無(wú)獨(dú)有偶,微軟也已經(jīng)宣布Windows 10將是最后一個(gè)版本,同樣改變了重量級(jí)大版本的發(fā)布模式,變革為小版本快速革新。傳統(tǒng)大規(guī)模商業(yè)軟件的運(yùn)作方式正在改變,Oracle和微軟都在通過(guò)云平臺(tái)去重構(gòu)兩家公司的產(chǎn)品輸出形態(tài),當(dāng)一切都可以通過(guò)服務(wù)的形態(tài)輸出之后,商業(yè)和開(kāi)源的界限事實(shí)上就已經(jīng)不存在了。
基于此,蓋老師在思考:在企業(yè)級(jí)數(shù)據(jù)庫(kù)領(lǐng)域,下一個(gè)時(shí)代是什么
蓋老師認(rèn)為下一個(gè)時(shí)代是自動(dòng)化、智能化的時(shí)代,從靠人去解決問(wèn)題,過(guò)渡到靠產(chǎn)品、靠架構(gòu)去解決問(wèn)題,讓數(shù)據(jù)庫(kù)回歸存儲(chǔ)的本質(zhì),新的時(shí)代已經(jīng)開(kāi)啟。
這是一朵深度思考的浪花,浪花背后是對(duì)產(chǎn)業(yè)前進(jìn)之路的探索。
4.2 向MySQL提交bug的小浪花
2017年9月,鵝廠實(shí)習(xí)生曉宇同學(xué)向MySQL官方提交了BugID為87637的一個(gè)有關(guān)緩沖區(qū)刷臟頁(yè)時(shí)消耗CPU資源嚴(yán)重的性能bug,并給出一個(gè)解決了涵蓋多種場(chǎng)景下消耗CPU的patch。
Bug hunter并未重視這個(gè)有場(chǎng)景描述有代碼分析有測(cè)試數(shù)據(jù)的bug,反而修改bug狀態(tài)為“not a bug”,曉宇同學(xué)在bug被標(biāo)識(shí)為“not a bug”后,有理有據(jù)地指出bug的成因、patch的原理等,然后有禮貌地再次打開(kāi)bug,請(qǐng)MySQL官方重視。這樣的過(guò)程,反反復(fù)復(fù),反反復(fù)復(fù),竟然反復(fù)了五次。直到一個(gè)月之后,持久的爭(zhēng)執(zhí)引起InnoDB研發(fā)老大Sunny Bains的關(guān)注,Sunny Bains認(rèn)同了曉宇同學(xué)的patch,這場(chǎng)拉鋸戰(zhàn)才宣告結(jié)束。
現(xiàn)在,這朵小浪花已經(jīng)隨潮而去,但是這么一朵小小浪花,卻能折射出較大的意義:
1. 國(guó)內(nèi)研發(fā)人員的素養(yǎng)和MySQL官方的傲慢形成了對(duì)比。
2. 當(dāng)世界并沒(méi)有足夠重視國(guó)內(nèi)數(shù)據(jù)庫(kù)技術(shù)研發(fā)的力量時(shí),我們可以用實(shí)力說(shuō)明事實(shí)。
3. 現(xiàn)如今,我們還需要積極參與開(kāi)源社區(qū),提交Bug與patch,甚至提交有影響力的模塊/WorkLog,這樣才能逐步扭轉(zhuǎn)“國(guó)內(nèi)數(shù)據(jù)庫(kù)尚未被國(guó)際認(rèn)可,尚不達(dá)先進(jìn)水平,發(fā)展尚任重道遠(yuǎn)”這樣的現(xiàn)狀。
在采訪這個(gè)小故事結(jié)束時(shí),曉宇所在團(tuán)隊(duì)TDSQL研發(fā)負(fù)責(zé)人說(shuō):TDSQL源自MySQL,我們鼓勵(lì)TDSQL的組員為社區(qū)多做貢獻(xiàn)。曉宇的這個(gè)故事,是我們團(tuán)隊(duì)的一個(gè)小事,相信更是中國(guó)數(shù)據(jù)庫(kù)界的一個(gè)小事,但是勿以善小而不為,積善助善為這個(gè)世界多做一點(diǎn)好事是有意義的。
這,應(yīng)該是一種情懷吧。
4.3 規(guī)范運(yùn)維的小浪花
數(shù)據(jù)庫(kù)運(yùn)維中會(huì)制定各種流程和規(guī)范,很多運(yùn)維同學(xué)不以為意,覺(jué)得太繁瑣,殊不知這些都是在大量的失敗經(jīng)驗(yàn)中總結(jié)而來(lái),是運(yùn)維保障的基石。
讓我們用發(fā)生在建榮同學(xué)身邊的一個(gè)故事,一起感受DBA的生活。
公司每隔一段時(shí)間會(huì)發(fā)布一些活動(dòng),來(lái)提高人氣和熱度。
而發(fā)布一個(gè)活動(dòng)的常規(guī)流程是這樣的:
1)開(kāi)發(fā)同學(xué)提交了一個(gè)DB變更,會(huì)打包發(fā)布到了ftp中。
2)DBA會(huì)從ftp得到指定的數(shù)據(jù)壓縮包,解壓把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)。
3)測(cè)試同學(xué)會(huì)驗(yàn)證測(cè)試,驗(yàn)證后上線活動(dòng)。
4)業(yè)務(wù)運(yùn)營(yíng)的同學(xué)會(huì)跟進(jìn)活動(dòng),做活動(dòng)反饋。
結(jié)果有一次卻發(fā)生了一個(gè)詭異的問(wèn)題。
活動(dòng)已經(jīng)接近尾聲,運(yùn)營(yíng)的同學(xué)才發(fā)現(xiàn)數(shù)據(jù)比以往差了很多,然后測(cè)試的同學(xué)排查發(fā)現(xiàn)導(dǎo)入的數(shù)據(jù)比預(yù)期的少,然后追查到DBA這邊,DBA發(fā)現(xiàn)數(shù)據(jù)導(dǎo)入是成功的,然后繼續(xù)追根溯源,發(fā)現(xiàn)開(kāi)發(fā)同學(xué)提供的數(shù)據(jù)更新包和DBA導(dǎo)入的包大小不一致。
經(jīng)過(guò)一番排查和驗(yàn)證,發(fā)現(xiàn)原因就在于開(kāi)發(fā)同學(xué)上傳到ftp中的文件因?yàn)榫W(wǎng)絡(luò)的原因,提示上傳成功了,但是文件是不完整的,DBA解壓的時(shí)候就少了很多數(shù)據(jù),后續(xù)測(cè)試,運(yùn)營(yíng)跟進(jìn)活動(dòng)都會(huì)受到影響。
我們做故障復(fù)盤(pán)的時(shí)候,發(fā)現(xiàn)雖然整個(gè)流程是完整的,但是很多環(huán)節(jié)還是沒(méi)有形成閉環(huán)。
怎么改進(jìn)呢
1. 第一就是使用md5的校驗(yàn)碼,能夠做到文件校驗(yàn)。
2. 第二就是通過(guò)平臺(tái)化管理來(lái)杜絕人為問(wèn)題。
3. 第三就是業(yè)務(wù)的及時(shí)跟進(jìn)。
所以說(shuō)很多問(wèn)題都不是純粹的技術(shù)問(wèn)題,要靠一套完整的制度和流程來(lái)規(guī)范和完善,規(guī)范本身雖不能夠解決問(wèn)題,但是能夠減少出問(wèn)題的概率。
5 .跨年之夜,我們一起進(jìn)步
隨著云計(jì)算產(chǎn)業(yè)的發(fā)展,數(shù)據(jù)庫(kù)云化趨勢(shì)已經(jīng)形成,而云化對(duì)大規(guī)模的數(shù)據(jù)庫(kù)群、數(shù)據(jù)庫(kù)集群等的運(yùn)維提出挑戰(zhàn),于是數(shù)據(jù)庫(kù)智能運(yùn)維因需而生,而Oracle在AI火熱的環(huán)境下,用自治數(shù)據(jù)庫(kù)一舉點(diǎn)燃了本年度數(shù)據(jù)庫(kù)燃爆點(diǎn)。自治數(shù)據(jù)庫(kù)已經(jīng)不再是自動(dòng)運(yùn)維的數(shù)據(jù)庫(kù),而是智能運(yùn)維的云端數(shù)據(jù)庫(kù)。
總結(jié)2017,我們看到的不僅僅有技術(shù)的創(chuàng)新,也有國(guó)內(nèi)公司在國(guó)際化背景下主動(dòng)出海尋航的思維變革,還有技術(shù)沉淀之下的有深度的技術(shù)書(shū)籍的出版,更有引領(lǐng)中國(guó)數(shù)據(jù)庫(kù)技術(shù)發(fā)展的四十華誕的NDBC,這些,都在提高著國(guó)內(nèi)數(shù)據(jù)庫(kù)技術(shù)的質(zhì)量,增強(qiáng)了中國(guó)數(shù)據(jù)庫(kù)技術(shù)在世界的影響力,使之上升、使之前進(jìn)。
但是,國(guó)內(nèi)數(shù)據(jù)庫(kù)的發(fā)展,依舊有很多不足,正視不足,中國(guó)數(shù)據(jù)庫(kù)將輕裝前行,且快且穩(wěn)、不斷創(chuàng)新。
5.1 2017,前行中有很多不足
2017這一年,數(shù)據(jù)庫(kù)界熱鬧的背后,不足更甚。浮光掠影,采摘一小點(diǎn)兒,權(quán)作紀(jì)念,莫負(fù)了這春光里美景。
5.1.1 浮夸之風(fēng)日盛
跟跑作為事實(shí),使得很多人渴望突破,這本是好事。
而國(guó)內(nèi)的一些媒體和自媒體在產(chǎn)品或成果的宣介上,往往用詞宏大,舉輕若重,笑話(huà)不斷。如“事務(wù)的核心是鎖和并發(fā)”、“破解世界性技術(shù)難題!
XXX讓分布式事務(wù)簡(jiǎn)單高效”等宣講詞,前者對(duì)事務(wù)的理解不到位,封鎖機(jī)制是并發(fā)控制的技術(shù)之一,鎖和并發(fā)并不能在此語(yǔ)境下處于同等地位;后者則更是夸大其詞,夸張的詞語(yǔ)之后顯露出一顆浮躁的心。
這樣的錯(cuò)誤或極其夸大的詞在公眾中傳播,危害甚大。技術(shù)來(lái)不得半點(diǎn)兒虛假,踏踏實(shí)實(shí)做技術(shù),如實(shí)地說(shuō)明成績(jī),以求實(shí)為本才是技術(shù)人員的本質(zhì)。
在2018,期望:數(shù)據(jù)庫(kù)界求實(shí)地回歸技術(shù),回歸技術(shù)人員的樸實(shí)。
5.1.2 借東風(fēng)片面式宣傳日盛
在這一年,還廣為流傳過(guò)一篇文章《中國(guó)數(shù)據(jù)庫(kù)四十年歷史》,文章借中國(guó)數(shù)據(jù)庫(kù)發(fā)展四十年的時(shí)節(jié),借助薩師煊老師的名,宣傳了個(gè)別公司、個(gè)別人。文章以“中國(guó)數(shù)據(jù)庫(kù)四十年歷史”為大背景,涵蓋范圍卻極其有限,用意十分明顯且可笑。
如果熟知中國(guó)數(shù)據(jù)庫(kù)發(fā)展歷程,可以看到作者一知半解的數(shù)據(jù)庫(kù)知識(shí)和數(shù)據(jù)庫(kù)歷史,很好地在其文、其圖中暴露。
中國(guó)數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,源于高校的老專(zhuān)家們、興于高??蒲辛α繑?shù)代的師徒傳承,之后才演化出各種研發(fā)、運(yùn)維的力量。
現(xiàn)在,貌似部分團(tuán)隊(duì)做數(shù)據(jù)庫(kù)紅紅火火,但是數(shù)據(jù)庫(kù)前輩專(zhuān)家和師徒傳承才是根之所在,干之所撐,才有眾多團(tuán)隊(duì)之花汲養(yǎng)而開(kāi);更為本質(zhì)的,是國(guó)內(nèi)尚沒(méi)有一個(gè)團(tuán)隊(duì)真正掌握數(shù)據(jù)庫(kù)核心技術(shù)、更不用談?dòng)姓鎸?shí)的創(chuàng)新之舉。
當(dāng)我們?cè)谥v述自己成績(jī)的時(shí)候,應(yīng)該把自己放到歷史的環(huán)境當(dāng)中,放到世界的范圍內(nèi),尋找到自己的位置,客觀地加以描述,方能正確地自我評(píng)價(jià)。
德國(guó)前總理勃蘭特有一句名言:“誰(shuí)忘記歷史,誰(shuí)就在靈魂上有病”。如果只能看到自己的一點(diǎn)點(diǎn)成績(jī),蠟燭之光便會(huì)變成太陽(yáng),尼采便會(huì)再生。
所以,我們需要看到業(yè)界的不足,繼續(xù)倡導(dǎo)求實(shí)之風(fēng)。
5.1.3 自說(shuō)自話(huà)的背后
2017年12月13日,一個(gè)值得紀(jì)念的事情,是中國(guó)有三家數(shù)據(jù)庫(kù)產(chǎn)品進(jìn)入Gartner的數(shù)據(jù)庫(kù)行業(yè)報(bào)告,這是個(gè)喜事,于三家入圍的公司形象有益。這也是個(gè)好事,代表著國(guó)產(chǎn)數(shù)據(jù)庫(kù)廠商在商業(yè)意識(shí)上有所“突破”,入圍Gartner的行業(yè)報(bào)告,畢竟入選需要資金的支持。
對(duì)國(guó)產(chǎn)數(shù)據(jù)庫(kù)入圍,不管花錢(qián)與否,可以肯定的是,主動(dòng)宣傳推薦而不夸大不誤導(dǎo)是正解所在。
2017年,國(guó)內(nèi)數(shù)據(jù)庫(kù)產(chǎn)品熱鬧非凡的同時(shí),我們依舊看不到有團(tuán)隊(duì)公開(kāi)自家產(chǎn)品的TPC-C、TPC-H、TPC-D等驗(yàn)證方案以及結(jié)果數(shù)據(jù)。一方面?zhèn)髌姘愕匦Q(chēng)自家產(chǎn)品的神奇,另一方面又對(duì)一些公認(rèn)的標(biāo)準(zhǔn)三緘其口、不與國(guó)際接軌,這也是一種特色。更有甚者,用Sysbench的部分測(cè)試場(chǎng)景而展示特定場(chǎng)景下的特定測(cè)試數(shù)據(jù),因場(chǎng)景特定而貌似很好的測(cè)試數(shù)據(jù)蒙蔽了大眾的眼。
這些行為,實(shí)是不該。
我們認(rèn)為,營(yíng)造一個(gè)誠(chéng)信、誠(chéng)實(shí)的行業(yè)范圍,是很必要的。如果我們有實(shí)力真正做到了世界前列,相信未來(lái)必是:你若盛開(kāi)蝴蝶自來(lái)。
5.1.4 人才的匱乏
國(guó)產(chǎn)數(shù)據(jù)庫(kù)引擎的研發(fā),貌似數(shù)據(jù)庫(kù)研發(fā)團(tuán)隊(duì)眾多,但人才寥寥,所以我們能夠感受到跟跑的步伐而不是并跑,能看到產(chǎn)品發(fā)布的速度慢而新特性不多,能夠看到產(chǎn)品的相似度高是因缺乏創(chuàng)新沒(méi)有深度人才。
國(guó)產(chǎn)數(shù)據(jù)庫(kù)研發(fā),沒(méi)有大師,只有普通或略微好一點(diǎn)的工程師。真正的大師,不是十年、二十年就能修煉而得的。在數(shù)據(jù)庫(kù)這個(gè)行業(yè)中,內(nèi)外兼修,坐得了冷板凳者,才有望成為大師。
而略微好一點(diǎn)的工程師的定義是:基本能獨(dú)立承擔(dān)模塊的研發(fā)。
搞定個(gè)別問(wèn)題,與掌握數(shù)據(jù)庫(kù)內(nèi)核的核心技術(shù),相距甚遠(yuǎn)。莫讓他人浮躁的言語(yǔ)荼毒壞了聽(tīng)者的耳力。
人才匱乏,這在很長(zhǎng)一段時(shí)間內(nèi),是一個(gè)客觀存在。
5.2 2018,我們清楚方向在哪里,但需要加速前行
5.2.1 AI對(duì)數(shù)據(jù)庫(kù)的影響
數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,是一個(gè)眾多技術(shù)集成的過(guò)程,數(shù)據(jù)庫(kù)把編譯原理、操作系統(tǒng)等眾多技術(shù)“集合”在一起,開(kāi)創(chuàng)了自己的時(shí)代。其特點(diǎn)是不斷融合新技術(shù)到數(shù)據(jù)庫(kù)體系內(nèi),讓業(yè)務(wù)開(kāi)發(fā)簡(jiǎn)化。所以,數(shù)據(jù)庫(kù)融合人工智能技術(shù),也將是一個(gè)趨勢(shì)。目前,我們可以看到AI將對(duì)數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,產(chǎn)生較大影響,比如:
1. 現(xiàn)有數(shù)據(jù)庫(kù)系統(tǒng)的調(diào)優(yōu),嚴(yán)重依賴(lài)DBA的經(jīng)驗(yàn)。將人工智能應(yīng)用于數(shù)據(jù)庫(kù)調(diào)優(yōu),可以花費(fèi)最低的人力,實(shí)現(xiàn)數(shù)據(jù)庫(kù)最高的效率。
2. 現(xiàn)有的數(shù)據(jù)庫(kù)系統(tǒng),須嚴(yán)格遵循語(yǔ)法才能使用。利用自然語(yǔ)言處理技術(shù),用戶(hù)可以使用自然語(yǔ)言描述查詢(xún),經(jīng)由Query Interface翻譯為SQL語(yǔ)法,大大降低用戶(hù)的學(xué)習(xí)難度。
3. 自數(shù)據(jù)庫(kù)誕生以來(lái),查詢(xún)優(yōu)化始終作為一大研究問(wèn)題。目前查詢(xún)優(yōu)化,只能依靠數(shù)據(jù)庫(kù)專(zhuān)家的經(jīng)驗(yàn),人工智能技術(shù),能夠幫助更廣泛地應(yīng)用查詢(xún)優(yōu)化技術(shù)。
4. 人工智能的技術(shù),能極大地推動(dòng)數(shù)據(jù)挖掘的發(fā)展,更充分地利用數(shù)據(jù)庫(kù)中存儲(chǔ)的信息。
人工智能究竟對(duì)數(shù)據(jù)庫(kù)有多少益處,不能窮舉。但肯定的是,不論是數(shù)據(jù)庫(kù)開(kāi)發(fā)還是數(shù)據(jù)庫(kù)使用,人工智能都會(huì)幫助數(shù)據(jù)庫(kù)技術(shù)獲得長(zhǎng)足的進(jìn)步(除了功能外,架構(gòu)方面的顛覆可能更甚),且AI技術(shù)會(huì)不斷集成到數(shù)據(jù)庫(kù)當(dāng)中。
5.2.2 硬件對(duì)數(shù)據(jù)庫(kù)的影響
云平臺(tái)對(duì)于特定的硬件,可以進(jìn)行定制。由于云數(shù)據(jù)庫(kù)發(fā)展迅速,因此可以忽略一部分硬件對(duì)數(shù)據(jù)庫(kù)的影響。但是,這不代表著硬件將不再會(huì)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生影響。
相反,硬件技術(shù)的發(fā)展,對(duì)數(shù)據(jù)庫(kù)帶來(lái)的影響,依舊可能是革命性的。如圖8所示,我們借用鵝廠內(nèi)部的一次分享的頁(yè)面,用NVM等對(duì)數(shù)據(jù)庫(kù)產(chǎn)生的影響簡(jiǎn)述如下,一切盡在圖之外……
圖9 關(guān)系數(shù)據(jù)庫(kù)的未來(lái)展望-硬件技術(shù)圖
6.未來(lái)是什么 卸載包袱,實(shí)踐現(xiàn)在
寫(xiě)到這里的時(shí)候,也該收尾了,一篇冗長(zhǎng)而又缺乏喜感還敢說(shuō)諸多不足的雜文,在一個(gè)偌大的背景下以區(qū)區(qū)萬(wàn)字就想回顧2017實(shí)在是螳臂當(dāng)車(chē)之舉。就讓這些掛一漏萬(wàn)且還惹人煩的言語(yǔ)隨著2017遠(yuǎn)去吧。
輕輕的,你揮一揮衣袖,作別2017的浮云。
默默的,你站在2018起頭的日子,重重地?cái)]起袖子,低下頭去,在實(shí)踐中求實(shí),口里念叨著我尚不明白的一些詞語(yǔ):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] 詳情參見(jiàn)《數(shù)據(jù)庫(kù)事務(wù)處理的藝術(shù):事務(wù)管理與并發(fā)控制》6.3.4節(jié)
來(lái)源:騰訊云
刷新相關(guān)文章
我要評(píng)論
人物專(zhuān)訪more >
活動(dòng)推薦more >
- 2018 上海國(guó)際大數(shù)據(jù)產(chǎn)業(yè)高2018-12-03
- 2018上海國(guó)際計(jì)算機(jī)網(wǎng)絡(luò)及信2018-12-03
- 中國(guó)國(guó)際信息通信展覽會(huì)將于2018-09-26
- 第五屆FEA消費(fèi)金融國(guó)際峰會(huì)62018-06-21
- 第五屆FEA消費(fèi)金融國(guó)際峰會(huì)2018-06-21
- “無(wú)界區(qū)塊鏈技術(shù)峰會(huì)2018”2018-06-14
不容錯(cuò)過(guò)的資訊
-
1#后疫情時(shí)代的新思考#疫情之下,關(guān)于醫(yī)
-
2數(shù)據(jù)軟件產(chǎn)品和服務(wù)商DataHunter完成B輪
-
3眾盟科技獲ADMIC 2020金粲獎(jiǎng)“年度汽車(chē)
-
4數(shù)據(jù)智能 無(wú)限未來(lái)—2020世界人工智能大
-
5#2020非凡大賞:數(shù)字化風(fēng)起云涌時(shí),共尋
-
6#榜樣的力量#天璣數(shù)據(jù)大腦疫情風(fēng)險(xiǎn)感知
-
7#榜樣的力量#內(nèi)蒙古自治區(qū)互聯(lián)網(wǎng)醫(yī)療服
-
8#榜樣的力量#實(shí)時(shí)新型肺炎疫情數(shù)據(jù)小程
-
9#榜樣的力量#華佗疫情防控平臺(tái)丨數(shù)據(jù)猿
-
10#后疫情時(shí)代的新思考#構(gòu)建工業(yè)互聯(lián)網(wǎng)新