天天看點

風向标:資料庫技術趨勢解讀

目錄:

db-engines資料庫排行榜解讀

sql、nosql及newsql的發展曆程

感謝名單

以下取自2016年12月的資料,具體資訊可參考http://db-engines.com/en/ranking/

db-engines排名主要根據五個因素來進行:google以及bing搜尋引擎的關鍵字搜尋數量、google trends的搜尋數量、indeed網站中的職位搜尋量、linkedin中提到關鍵字的個人資料數以及stackoverflow上相關的問題和關注者數量,資料僅供參考。

風向标:資料庫技術趨勢解讀

從最新一期榜單來看,資料庫産品前三甲非常穩固,與後面差距依然很大。傳統商業資料庫的代表oracle,依舊獨占鳌頭,但也受到了其他資料庫的逐漸蠶食。

很多人預計在明年q1,mysql将超過oracle占領首位。mysql作為開源資料庫的代表,持續在增長,但随着市場穩定已逐漸趨于飽和,增長趨緩。

sql server作為另類代表,增長喜人。其不久前宣布的未來将支援linux版本的消息,應該起到了不少提振作用,我們也很期待它在未來的表現。

前十名中以postgresql、mongodb、cassandra、redis為代表的開源資料庫,各自有其獨家絕技,長期來看仍然持續上漲。

其中值得重點關注的postgresql、mongodb。postgresql曾是關系型資料庫的學院派代表,近些年更是演化為“全面手”,社群活躍,發展十分迅猛。mongodb作為nosql陣營裡最為接近關系型資料庫的代表,發展也很不錯。未來不排除這兩者出現可挑戰前三甲的可能。

前十名中其餘産品如db2、access等老牌産品,不可避免地出現下滑,未來堪憂。

十到二十名範圍内,則是百花齊放,排名變化頻繁。值得關注的是elasticsearch,發展不錯,已接近第十名,很有希望沖入十名之内。

從産品類别角度來看,關系型資料庫仍然占絕對主導(前二十名中占了十三位)。其他領域各有優秀代表進入其中,文檔型資料庫的mongodb、kv型資料庫的redis、搜尋引擎的elasticsearch、列式存儲的hbase等。

上世紀70年代提出了關系型資料庫的概念,後來在關系型資料庫上設計了一套相應的結構化查詢語言稱之為sql,在之後的發展中又引入了事務也就是acid的概念,sql類或者說傳統的關系型資料庫最典型的一些産品有db2、oracle、sqlserver以及開源的mysql、postgresql等,這一代資料庫的産品的特點可以了解為強acid、且支援sql接口。但這一代資料往往是單機版本,即使有的支援叢集其擴充能力也很有限。

随着網際網路的發展,很多應用的資料量也越來越大,傳統的資料庫在資料量越來越大的情況下性能等各方面往往也會出現明顯的下降,是以後來又有了nosql的概念。這個概念其實很早就有,但在2009年左右開始變得比較火,nosql的概念主要是指非關系型的、不提供acid的一種資料庫設計理念。這個理念基礎之上,很容易提供分布式解決方案,進而比較容易解決原來傳統的sql産品面臨的一些問題。nosql類産品比較典型的有像redis、memchachedb、hbase、cassandra、bigtable、leveldb等,這類産品一般是根據key來操作相應的value,有些産品的value會比較簡單,有些會稍微複雜一些。

nosql類産品發展非常迅速,以至于曾經有一段時間大家覺得可能sql類産品會很快退出曆史舞台。随着nosql廣泛使用以後,大家也發現nosql類的産品雖然操作簡單,但在使用的時候應用層面要考慮的事情比較多,因為sql改nosql很多東西都需要在應用層做拆分及彙總,開發人員心智負擔比較重,主要展現在開發的代價會大一點,是以在這同一時期甚至更早一些的時候,大家也有在研究分布式的sql解決方案。

分布式的sql解決方案簡單的說就是像使用傳統的sql産品一樣來使用分布式的資料庫産品,最典型的就是一些分庫分表的解決方案。這些方案有的是在應用層面,按照一定的規則将資料進行拆分;也有的是通過引入相容相關sql傳輸協定的中間層透明的完成這種拆分工作,比如典型的一些開源産品有cobar、vitess等。

這種方案有些人也會将其歸屬到newsql的範疇,其實分庫分表的分布式sql解決方案已經可以滿足絕大多數的業務需求,但是有一個不足點是從整體來看這種方式拆分以後的sql解決方案在一個事務上下文中如果涉及到多個分片時候往往不能保證嚴格的事務的acid屬性。

後來,google在2012、2013年分别發表了spanner和f1的論文,告訴業界自己實作了一套既滿足sql,又滿足事務的acid屬性;同時又将nosql的分布式特性集合到一起的一種實作方式,這也是大家比較認同的一種全新架構的newsql。目前比較典型的一些newsql産品,比如像google的f1/spanner、阿裡的oceanbase以及開源的cockroachdb、tidb等。newsql還需要更多生産環境的檢驗。

以上就是大體的一個sql、nosql及newsql的發展曆程。

下面,我們會分别将rdbms、nosql、newsql、大資料生态圈、docker、國産資料庫這六大範疇的最新技術發展内容細分到不同版塊中呈現,請點選相應版塊進行閱讀。

感謝本期提供寶貴資訊和建議的專家朋友,排名不分先後。

風向标:資料庫技術趨勢解讀

 原文釋出時間為:2016-12-23

本文來自雲栖社群合作夥伴dbaplus