轉載自:https://mp.weixin.qq.com/s?__biz=MzIxNTQ0MDQxNg==&mid=2247483853&idx=1&sn=d0bdaf750e4a531b865992b48c92ad19&chksm=97990c82a0ee859406f30ce0e3a897f30423c3cfb312bc1c5eb97bb7a2097a9d90fd4162200d&mpshare=1&scene=1&srcid=052490MUk3klX1ZuOw572ync&pass_ticket=LeKJc8eOQgKlqQcJ484s3ioAO4EJitNrT20ot2vcWh1BwOvdTYp9D7%2FyNwdTieap#rd
【數據庫排名年度盤點】
說到盤點,首先肯定得看看DB-Engines的全球數據庫排名。下表是2017年1月份前20名數據庫引擎最新排名。
DB-Engines這個排名在業界引用得非常多,權威性也很高,總體來說比較客觀,它不像很多咨詢機構采用市場調查,或者某個數據庫廠商發布的數據,而是通過以下6個方面的統計數據來綜合評估各個數據庫產品得分并給出綜合排名:
1) 數據庫相關網站數量(當前通過google、bing、yandex搜索引擎統計)
2) 公眾關注度(通過Google trends計算)
3) 技術討論活躍度(通過Stack Overflow、DBA Stack Exchange問答及用戶統計)
4) 招聘職位(通過Indeed、Simply Hired統計)
5) 專業檔案(通過LinkedIn、Upwork統計)
6) 社交網絡信息(通過Twitter統計)
DB-Engines這個方法我認為比較科學,我個人也比較喜歡用這種方式來快速分析事物活躍情況與趨勢。當然,這個排名只是反應全球流行程度,不能反應出產品營收情況,也不代表國內流行度排名。
下圖上各數據庫產品的競爭關系及客戶流向示意圖:
從排名來看Oracle、MySQL、SQL Server三大數據庫產品是絕對遙遙領先,呈三足鼎立局面。
PostgreSQL、MongoDB比較穩的站在前五,得分也不相上下,兩家一直在爭奪老四的位置。
DB2曾經是數據庫的領導者,但近幾年發展乏力,在持續下滑,特別是互聯網行業及中小企業IT里基本沒有DB2的身影,在金融等領域也受到非常大的挑戰,估計明年老六的位置也危險。
MongoDB、Redis、Elasticsearch、Neo4j在自己的領域取得了領導地位。
總體來說,去年MySQL、SQLServer、PostgreSQL、MongoDB、Redis、 Elasticsearch 都是市場大贏家,在自家的地盤都發展得非常不錯。而Oracle、DB2、Access、Sybase幾家都比較悲催,活躍度在不停下滑。
上圖是2013年以來幾大主流數據庫排名變化整體趨勢。
上圖是2013年以來開源數據庫與商業數據庫的發展趨勢分析,整體大家能明顯感受到開源數據庫都呈良好的發展勢頭,而商業數據庫的市場被慢慢吞食,但從近一年發展趨勢來看,開源數據庫并沒有完全打敗商業數據庫的勢頭,未來很長時間還會是激烈競爭狀態,目前商業數據庫主要是靠Oracle、SQLServer在支撐。
NoSQL發展一直很快,幾年前有些人會說NoSQL要代替關系型數據庫,但最近大家都開始冷靜一點了,從上圖可以看出,NoSQL雖然發展很好,但是目前RDBMS仍是占據了80%的活躍度,處于統治地位。
【2016十大數據庫點評】
一、Oracle(老大,最掙錢的數據庫)
Oracle一直是數據庫市場占有率最高的產品,但2016年很不好受,一直被老二MySQL威脅,雖然Oracle與MySQL都是Oracle公司的產品,但是MySQL帶給Oracle的營收可以忽略不計,這樣就間接導致Oracle市場受到影響。那Oracle為什么不直接砍掉MySQL或者減緩MySQL的更新步伐呢,這里很可能是考慮到MariaDB這個分支也在持續快速發展,如果官方的MySQL更新緩慢,那估計很多公司就會選擇MariaDB了。所以Oracle也沒有辦法,既沒法讓MySQL遷移到Oracle,也沒法不搞MySQL,所以只能拼命發展MySQL,爭取把用戶守住。當然Oracle也在全力投入發展云服務,如果云計算領域搞起來,MySQL可能帶來不錯的營收。
Oracle12c是一個非常重要的版本,相比11g,在設計理念上有了全新的變化,全面擁抱云計算,多租戶是12c的最大特性。按Oracle以前產品的發布來看,大版本的第一個版本更多是布道,而第二個版本更具有大規模生產使用價值。2016年發布了12.2版本,12c可以說能進入生產使用階段。Oracle12.2在云計算多租戶方面有了非常大的增強,我簡單列了幾個重要的點如下,?這些點也許普通用數據庫的人看起來不太眼,但是對于云計算多租戶是非常重要的特性 :
1) I/O Rate Limits for PDBs(PDB可以按IOPS或Mbps隔離)
2) Support for PDBs with Different Character Sets, Time Zone File Versions, and Database Time Zones in a CDB
3) Proxy PDB(PDB代理服務,可以用一個鏈接指向遠程的一個PDB)
4) Service-Level ACLs for TCP Protocol(每個PDB可以指定ACL安全策略)
5) Flashback Pluggable Database
6) PDB Archive Files (.pdb Files)(可以導出PDB為離線文件,然后遷移到其它的CDB上,用于容器遷移)
7) PDB Refresh,clone PDB and autorefresh,(可用于單PDB的鏡像實例災備、同步、分析)
8) 一個CDB可以包括4000個PDB(以前最大是252個)
Oracle12.2增加了原生Sharding支持,這與以前的partition及rac不同,sharding可以將數據放在完全不同的主機,屬于share nothing的架構,可以說這個特性是專門為那邊業務非常大的OLTP系統準備的,相當于內置實現了自動分庫分表管理功能。
另外新增了數據生命周期管理功能,大家都清楚,數據庫有冷熱之分,往往近期的數據經常使用,幾年前的數據是偶爾使用,通常好的做法是對經常使用的數據采用行式存儲,對不經常使用的數據采用壓縮存儲或列式存儲,這樣總體成本更優,當然,要做這樣的效果需要付出不小的設計與運維成本,還可能會影響業務體驗,所以能做好的人不多。在Oracle12.2里,你可以指定數據的生命周期,讓數據庫自動幫你管理,就像下面這兩條指令:
二、MySQL(最流行的開源數據庫)
MySQL在2016年是最大贏家,市場占有率不斷攀升,很大一部份原因是互聯網行業快速發展,因為開源免費易用,MySQL成為互聯網公司最受歡迎的數據庫。MySQL最新穩定版本是5.7.17 GA。
MySQL5.7號稱性能是MySQL5.6的3倍,而MySQL5.6號稱性能是MySQL5.5的2倍,你信嗎?這個問題還是要辯證的理解,首先性能肯定是改進了,但為什么大部份人升級后也沒有感覺?這就要從測試方法說起,大部份廠商發布新版本都會說性能提升了多少多少,因為這是最能吸引客戶的數據。從官方的測試數據來看,首先是32個并發以上的簡單查詢,并且超過10萬QPS才有區別,如果你的系統沒有達到這個并發度那肯定沒有體會的。另外是純內存與CPU計算,如果你的系統瓶頸在磁盤或網絡IO那也不會有明顯的效率提升。當然,我認為MySQL5.6的ICP這種特性其實對于業務來說更有意義,說不定剛好你的慢SQL可以解決掉。
2016年MySQL5.7也發布了Group Replication特性,應用于要求強高可用的場景,這個特性讓MySQL開始有基礎與現代新的分布式數據庫去競爭,目前只是剛推出,估計離能生產使用還有差距。
MySQL5.7對很多代碼進行了優化,特別是高并發下鎖的爭用,所以在高并發簡單SQL性能會有大的提升,另外很值得升級的就是帶來了不少新功能,比如原生支持JSON了,原生支持full text search等等,如果你的業務要用上那就不要猶豫了,趕緊升級到5.7吧。
2016.9月MySQL8.0(原計劃是MySQL5.8)剛發了一個DMR版本(開發者版),可以說是有非常大的改進,下面是發出來的幾個大特性:
1) 支持role
2) 數據字典存儲由myisam引擎變為innodb
3) 支持?invisible indexes,這個對DBA索引調優比較有幫助
4) 增加column_stats?,相當于Oracle的直方圖
5) Performance schema持續加強,增加了很多error信息采集與展示
6) 支持SET參數持久化保存
2016年Facebook的RocksDB引擎也火了一把,它本身可以做為一個KV引擎直接使用,也可以和InnoDB或MyISAM一樣,做為存儲引擎直接用于MySQL,還可以用于MongoDB,非常靈活。RocksDB是基于Google LevelDB上發展進來的,采用LSM Tree的數據結構管理數據,Key Value操作高性能且擁有非常高的數據壓縮比,Percona與MariaDB都在跟進,RocksDB的普及對于InnoDB有一定競爭與互補,但對于TokuDB來講就非常難受,因為RocksDB基本覆蓋了TokuDB的應用場景,并且有各大主流公司在支持。
三、SQLServer(Windows上最好的數據庫)
SQL Server一直不被很多人看重,認為數據庫就是Oracle與MySQL的天下,但是實際上SQLServer的用戶非常多,SQLServer發展非常迅猛,微軟也網羅了大量數據庫的頂級人才。今年微軟正式發布了SQL Server 2016及SP1。可以說有很多亮眼的功能,也能看到SQLServer有自己獨特的數據庫發展規劃。列幾個SQLServer2016的重磅特性:
1) PolyBase
PolyBase支持查詢分布式數據集。有了PolyBase,你可以使用Transact SQL語句查詢Hadoop或者SQL Azure blob存儲。你現在可以使用PolyBase寫臨時查詢,實現SQL Server關系型數據與Hadoop或者SQL Azure blog存儲中的半結構化數據之間的關聯查詢。此外,你還可以利用SQL Server的動態列存儲索引針對半結構化數據來優化查詢。如果組織跨多個分布式位置傳遞數據,PolyBase就成了利用SQL Server技術訪問這些位置的半結構化數據的便捷解決方案了。
2) 全程加密
支持在SQL Server中保持數據加密,只有調用SQL Server的應用才能訪問加密數據。使用該功能,你可以避免數據庫或者操作系統管理員接觸客戶應用程序敏感數據(包括靜態數據和動態數據)。該功能現在支持敏感數據存儲在云端管理數據庫中,并且永遠保持加密。即便是云供應商也看不到數據。
3) 動態數據屏蔽
這個特性可以很好的保護一個表中的敏感信息(如會員表的注冊時間不是太機密的信息,但是像手機號碼這種信息并不希望普通賬號可以查看,動態數據屏蔽可以有效的解決這個問題,它能讓普通賬號看不到完整的手機號信息,比如138-1234-5678手機號可能會顯示為138-****-****)
4) Stretch Database
Stretch Database功能提供了把內部部署數據庫擴展到Azure SQL 數據庫的途徑。有了Stretch Database功能,訪問頻率最高的數據會存儲在內部數據庫,而訪問較少的數據會離線存儲在Azure SQL 數據庫中,最重要的是這可以通過配置規則后由數據庫自動完成,對應用沒有影響,可以說是混合云的專業數據解決方案。
5) 支持JSON
6) 支持R語言做數據分析
除了發布SQL Server 2016外,今年另一個最重大的事情是微軟宣稱SQLServer要支持Linux了,并且發布了第一個預覽版。這可以說是微軟一次艱難的決定,Linux現在是越來越好,Windows是不可能干了Linux,更重要的是微軟也是大力搞云計算服務的,SQLServer支持Linux也是順勢而為了。
四、PostgreSQL(功能最強大的開源數據庫)
PostgreSQL可以說是一個歷史非常悠久的開源數據庫,從關系型數據庫理論提出以來,它一直非常活躍,PostgreSQL的功能非常強大,很多功能可以與Oracle相當。PostgreSQL的代碼可讀性非常好,又是開源,并且功能強大,所以是學術界非常喜歡研究的數據庫。當然,因為工業界應用得不多,也有時會被人理解為學術型數據庫。不過PostgreSQL在國外的活躍度比中國高很多,也有許多非常成功的工業界案例。國內很多人也不太了解PostgreSQL,人才方面是非常大的短板,國內缺少非常有影響力的成功案例,也沒有很強的商業領導者,所以導致在國內發展得沒有MySQL迅速。
PostgreSQL在2016年發布了9.6版本,主要有以下大的更新:
1) Parallel execution of sequential scans, joins and aggregates
單條SQL支持并行訪問可以說是非常有挑戰的功能,這個功能曾經也是商業數據庫與開源數據庫的重大區別,因為Oracle、SQLServer、DB2都支持單SQL并行計算,但是開源數據庫基本不支持,PostgreSQL9.6是第一個支持的開源數據庫。
2) Avoid scanning pages unnecessarily during vacuum freeze operations
3) Synchronous replication now allows multiple standby servers for increased reliability
4) Full-text search can now search for phrases (multiple adjacent words)
5) postgres_fdw now supports remote joins, sorts, UPDATEs, and DELETEs
Fdw在PostgeSQL9.6中有了更大的增強,這個功能有點類似Oracle的DBLink,或者是SQLServer的鏈接服務器概念,也是一個非常實用的組件,可以非常方便的訪問遠程數據庫,還可以訪問遠程非PostgreSQL數據庫,這對于一些數據遷移與異構關聯計算非常有價值。
6) Substantial performance improvements, especially in the area of scalability on multi-CPU-socket servers
五、MongoDB(最好的文檔型數據庫)
MongoDB是文檔型數據庫,NoSQL領域的領導者之一,也可以說是當前最成功的NoSQL數據庫。能在眾多NoSQL中脫穎而出,說明MongoDB一定有不少過人之處 ,我也一直非常看好,因為MongoDB的出現很好的彌補了關系型數據庫的很多問題,比如支持Schema Free,在關系型數據庫沒有支持JSON之前,就是一個典型的難題,曾經有很多開發同學向我咨詢對于一個動態屬性的表該如何設計表結構,比如商品的屬性、游戲裝備屬性等等?說實話,當時關系型數據庫除了預留字段、行轉列模式、大字段文本幾種方案外,沒有什么好的解決方案。MongoDB可以說在這方面非常擅長,因為它的數據交互及存儲都采用類似JSON格式,非常靈活,并且可以對JSON數據創建非常靈活的索引,如子屬性、數組都能支持索引。新關系型數據庫雖然也支持JSON格式,但是與MongoDB還是有較大的差距。
因為是JSON,MongoDB也天然支持js的語法交互,所以又吸引了很多NodeJS服務端同學,甚至有人宣傳說NodeJS+MongoDB組合要代替PHP+MySQL的組合了,當然,這更多是給搞js的同學一種方案選擇。
MongoDB在很早就有自己的查詢語言,與SQL一樣強大,不過語法是js格式,下圖是MongoDB查詢語言與SQL的一個簡單對比:
是不是和SQL很像,這也是MongoDB過人之處,它第一天就知道客戶需求并不只是要高性能,要俘獲程序員的心,必須要提供強大高效的訪問接口語言,由于是文檔型數據庫,SQL主要是為了面向關系型數據庫設計的語言,但是SQL確實非常牛逼,所以提供一個面向文檔型數據庫類似SQL的語言非常有價值。
MongoDB 也是一個天生支持分布式的數據庫,數據自動分片,還支持MapReduce,也內置了一個分布式文件系統GridFS,另外可以掛接多種存儲引擎,這些都是非常誘人的功能。
2016年MongoDB發布了3.4版本,也有一些大的更新,主要的新特性有:
1) 支持View
2) 新增對decimal支持,最多支持34位小數位。
3) 新增支持collation,也就是字符串校驗集,校驗集會影響字符對比與排序,3.4以前字符串是按字節嚴格對比,通過設置collation后可以指定校驗方式,比如忽略大小寫等等,漢字按拼音排序(官方文檔特意舉了拼音排序這個例子,說明中國用戶在MongoDB中份量不小)等等。
4) 集群管理與日志復制方面也有了進一步增強
Mongo 公司也推出了自己的數據庫云服務,MongoDB Atlas,支持AWS上部署,我認為這也是更好的一種云計算服務模式。
六、Redis(最好的緩存數據庫)
說Redis是緩存服務,估計有些人會不開心,因為Redis也可以把數據庫持久化,但是在大多數情況Redis的競爭力是提供緩存服務。說到緩存服務必然會想到Memcached,因為幾年前Memcached是最流行的緩存服務,但隨著Redis的發展,Redis在很多方面比Memcached更好用,比如,Redis支持更多種數據類型,包括hash、set、list等等。Redis也支持數據持久化,另外2015年發布的Redis 3.0開始支持集群服務。Redis還支持subscribe/publish命令,可以用于簡單的消息發送與訂閱,總體而言95%的情況,如果是緩存服務,我們都可以選擇Redis。
Redis在2016年發布了3.2版本,最重要的是支持GEO地理信息存儲支持。
Redis原計劃下個版本是3.4,后來計劃重命令為Redis 4.0,今年已經推出了RC1,Redis4.0有許多大的變化,最重要的是模塊化特性,官方希望Redis是一個底層基礎設施,開發者可以在上面構建更多有意思的東西,比如對神經網絡、機器學習數據計算擴展,還有如圖數據、二級索引、時序數據、全文索引等等。
http://antirez.com/news/110(備注:antirez是redis最核心開發成員,90%以上的代碼是他貢獻的)
七、ElasticSearch(最好的搜索服務)
Elasticsearch本是一項搜索服務,但是因為它實在太強大太好用了,以至于有一些業務把它作為數據存儲與搜索服務。搜索與數據庫本來就非常密切,很早以前的數據搜索都會采用數據庫內置的like模糊查詢或全文檢索實現,但隨著互聯網搜索業務的快速發展,對搜索選項也要求更豐富,另外早期的搜索并不一定需要數據庫這樣完全實時的需求,所以數據庫對全文搜索的支持一直不太理想,這也產生了很多的專業搜索引擎產品,Lucence就是最流行的開源搜索引擎框架。近幾年隨著大數據快速發展,搜索引擎需要有更強的分布式支撐,另外由于業務的競爭,需要大量的日志數據采集與分析,實時性要求更高, Elasticsearch 在這方面脫穎而出, Elasticsearch 是基于lucence開發的分布式搜索服務,并不只是一個框架(Lucence需要二次開發),而是可以直接使用的服務。 Elasticsearch 對文檔模型也有了進一步的增強,更有一些文檔型數據庫的感覺,甚至有人把它完全當分布式數據存儲服務(主流大數據存儲真的沒有太好的準實時查詢功能)。
ElasticSearch在2016年快速增長,從去年13名前進到第11名。ElasticSearch今年發布了5.0版本,這個版本號跳躍得比較大,主要是因為elastic公司考慮到與自己旗下的Kibana等產品版本號統一,解決用戶搭建ELK或ElasticStack日志分析架構選擇組件版本的困擾。
八、Neo4j(最好的圖數據庫)
圖數據庫一直是NoSQL領域非常重要的分支,Neo4j可以說是圖數據庫的絕對領導者,雖然這個名字很土(很容易聯想到log4j、dom4j這些通用java組件)
圖數據庫雖然現在流行度并不算太高,主要原因是目前大部份問題可以采用關系型數據庫或大數據方案解決,圖數據庫更擅長描述基于關聯關系的場景應用,可以用來解決一些特殊的場景,如人員關聯關系、事務關聯關系等等,比如社交關系計算、物流路徑計算等等。但是由于圖數據庫整個理論不像關系型數據庫那么扎實,大家也沒有總結出太多的實踐經驗,再加上性能與擴展性上并不是很突出,所以影響力還不大。
從我個人認為圖數據庫是非常有前景的,因為當前關系型數據庫對于傻瓜計算是比較擅長,但對于人工智能方面非常無力,而圖數據庫的結構更像人的大腦信息保存模式,不擅長搞大數據運算,但是可以很容易發現兩個相隔十萬八千里的對像關系。關系型數據庫擅長把一類東西模式化存儲,比如有汽車、衣服、家具、食物、照片、朋友等很多信息,RDBMS可以設計為按每種類別用一張表格存儲,這樣可以很方便回答類型下面的問題:
1. 總共保存了多少件衣服
2. 紅色的汽車有哪些
但是要回答下面兩個問題會相對困難:
1. 找出所有是長方型白色的東西
2. 找出附近有寶馬汽車的朋友或(朋友的朋友)照片
如果要回答上面問題,RDBMS需要再增加維護各種屬性與物品的關系。但是像上面這種關聯性問題會有很多組合,所以通過RDBMS來維護并不輕松。
圖數據庫的存儲格式更適合解決這類問題,因為它更擅長關聯查找計算。圖數據庫更像人腦計算,如果未來機器學習大量應用,或許是圖數據庫普及的時刻。
Neo4j提供了類似SQL的圖查詢語言Cypher,Cypher語言的描述能力非常強大,甚至已經成為圖查詢語言的通用標準。一個簡單的圖數據庫Cypher查詢語言如下:
下圖是Neo4j官網列出的典型客戶:
九、Cassandra(最好的列式數據庫)
現在把Cassandra說為列式數據庫完全是不太恰當的歸類,最初的Cassandra確實是有列式數據庫的概念,但是實際上現在已經完全看不到列式的東西,可以說完全是一個標準分布式數據庫。Cassandra除了具備表、字段、二級索引這些概念外,還支持觸發器、物化視圖,你敢信嗎,但他真的支持。Cassandra的接口語言是CQL,CQL查詢數據用select,支持insert、update、delete,創建表也是用create table,創建索引也是用create index,語法與SQL基本一模一樣,但是功能方面有一些限制,比如不支持多表關聯,對where條件也有許多嚴格的限制等等。另外增加支持了list、set、map、tuple等高級數據類型支持,可以說是SQL的一種擴展。
Cassandra與HBase起步與實現原理很像,但是應用的場景卻差別很大。Cassandra在國外非常流行,但是國內基本沒有用戶,而HBase在國內非常流行。這是為什么呢?我個人理解是:在Facebook推出Cassandra的時候,國內各大互聯網公司也是研究得熱火朝天,但是因為Cassandra產品并不太成熟,另外原廠Facebook不久后又放棄了這個產品,加上國內除了BAT以外的廠商并沒有太多分布式數據庫的壓力,所以并沒有快速流行。當時的 Cassandra也不能解決BAT的分布式數據庫需求, 而同時像阿里巴巴等公司大量宣傳用MySQL去IOE的經驗,采用了Cobar與TDDL這樣類似的中間件架構,很多公司都開始朝這個方向走,因為對系統相對改造成本更小,所以大家也不關心Cassandra的后來發展。而HBase是基于Hadoop體系產生的數據存儲產品,這個領域MySQL也沒有優勢,國內大數據也發展地非常火熱,加上BAT、小米大量宣傳HBase成功案例,所以HBase快速流行起來。
十、SQLite(最流行的嵌入式數據庫)
嵌入式數據庫有很多種,在以前說不出哪種市場占有率最高,但是隨著手機移動開發的流行,SQLite嵌入式數據庫異軍突起,占領了手機嵌入式數據庫的領導地位。在google上搜索iOS數據庫或Android數據庫開發,立馬全屏都是SQLite的介紹。SQLite是一個完整的關系型數據庫,支持標準SQL,支持函數索引、外鍵、視圖、觸發器、ACID,擴展支持自定義函數、JSON、全文索引、GIS等高級特性,可以說功能非常全,但是程序包不到500KB大小,可以在幾百KB的內存上運行,是當前手機或掌上嵌入式設備存儲結構化數據的最好選擇。
SQLite是開源免費軟件,同時也有收費功能,主要是支持加密、壓縮等高級特性,這些功能對于數據安全要求比較高的業務非常有意義。
SQLite一直在持續更新,但最近大的功能不多,目前最新版本是SQLite 3.15.2,也許是他太領先了,找不到對手,另外開源協議是Public Domain,可以說是基本是沒有任何限制的開源協議,相比MySQL、MongoDB等開源數據庫來說,沒有任何使用風險,不清楚商業營收是否有保障。
OceanBase(最有潛力的分布式關系型數據庫)
OceanBase是一款阿里巴巴/螞蟻金服自主研發的高性能、分布式的關系型數據庫,支持完整的ACID特性。它高度兼容MySQL協議與語法,讓用戶能夠以最小的遷移成本使用高性能、可擴展、持續可用的分布式數據庫服務,同時對用戶數據提供金融級可靠性的保障。
OceanBase主打的是分布式與高可用特性,目前已經支持了關系型數據庫最主要的功能,高度兼容MySQL語法,你可以使用MySQL命令客戶端或MySQL JDBC Driver直接訪問OceanBase,這個特性對于應用改造成本非常低。
OceanBase有超過6年的研發歷史,在國產數據庫中,OceanBase在功能方面并不算最強大,但是發展非常快,2015年底正式發布了OceanBase 1.0。另外,存儲過程這些更復雜的特性也在研發中。OceanBase已經是支付寶、網商銀行最核心的數據庫,承載了支付寶雙十一所有交易服務。OceanBase天生就有阿里巴巴集團應用場景錘煉,特別是支付寶、網商銀行這種支付與銀行領域,并且數據庫技術也是阿里非常看重的核心競爭力,所以起點非常高,并且OceanBase已經通過阿里云對外輸出,希望未來能成為世界頂級數據庫引擎。下圖是2016年阿里巴巴集團CEO逍遙子在互聯網大會介紹OceanBase:
阿里巴巴集團CEO在互聯網大會介紹OceanBase
OceanBase目前并不對外提供下載,但是可以通過阿里云使用OceanBase,如果你是一家對高性能與高可用及海量存儲要求非常高的業務,那阿里云OceanBase是不錯的選擇,直接使用云服務,也免去了運維管理成本。
【全球云數據庫服務大比拼】
數據庫服務一直是云計算廠商非常核心的競爭力,從目前公有云市場來看,AWS、Azure、阿里云這三家廠商是排在前面,并且各有特色,下表是幾大廠商提供的數據庫服務產品對比:
AWS
AWS可以說是產品非常全,并且客戶體量非常大,產品的成熟度也非常高。
2016年主要是發布了SnowBall數據遷移系列產品,可以幫助用戶快速遷移PB級的數據量到云上。
下圖是AWS最新發布的Snowmobile,可以用卡車來完成上百PB的數據遷移,比傳輸網絡傳輸快50倍。
Azure
Azure是微軟出品, SQLServer是微軟自家核心數據庫引擎,同時SQLServer在數據管理與遷移工具方面非常強大,2016年又推出SQLServer Stretch Server的混合云解決方案,可以說在SQLServer方面支持力度最強。Azure除了SQLServer之外,同時也提供了表存儲、Redis緩存、數據倉庫,并通過第三方支持MySQL服務,給用戶提供了豐富的選擇。
阿里云
阿里云近兩年快速發力,兩年前只有MySQL與SQLServer兩個引擎,發展到現在的十幾種,如PostgreSQL、MongoDB、Redis、DRDS、ADS(分析型數據庫服務)、Greenplum等等,豐富的數據庫引擎也是阿里云的核心競爭力之一。在國內,阿里云的性價比也最有優勢。
除了支持豐富的數據庫引擎外,2016年阿里云也正式發布數據傳輸與數據管理兩個數據庫服務類的產品。
數據傳輸服務包括數據遷移、同步、訂閱,你不僅可以非常方便地數據遷移上云,還能輕松搭建異地機房數據同步架構,通過數據同步或訂閱也可以方便的將數據實時分發到搜索引擎或數據倉庫。
數據管理服務在阿里云用戶活躍度非常高,是一款可以免費使用的服務,它能很高效的幫助你管理各種數據源中的數據,包括MySQL、SQLServer、MongoDB、Redis等等,你不再需要使用Navicat、phpMyAdmin等客戶端數據庫工具。數據也是在內網傳輸,更安全高效。數據管理服務還提供了各種數據圖表分析、數據變更統計、性能診斷等十幾項特色功能。更有意思的是,只要數據庫可以連接上,就算你的數據庫在本地,你不是阿里云的用戶也可以免費使用數據管理服務。
》》》云計算國際上還有兩家航母級公司在使勁往里面投入
一家是Oracle
Oracle可以說在云計算方面起步較晚, 市場份額還比較低, 但是Oracle的產品線是全宇宙最全的,從IaaS、PaaS、DaaS、SaaS全都覆蓋,自家做數據庫、OS、CPU、服務器,還有最全的SaaS類軟件。Oracle在數據庫云服務主要銷售Oracle、MySQL數據庫及Hadoop大數據服務。AWS這種云計算服務對于傳統基礎IT公司沖擊特別大,特別是IaaS及DaaS方面,現在Microsoft、Oracle、IBM都在痛苦的轉型,各自都在結合自己的優勢突圍。云計算給惠普、DELL、EMC這種偏硬件的企業壓力更大。
另一家是Google
Google是最先提出云計算的概念,但是發展得非常不順利,因為Google提的云計算與當前的流行的概念已經完全不一樣了。Google最早主要是提供GAE這個PaaS服務,沒有搞起來。最近兩年完全轉型為IaaS+PaaS,和AWS非常像,新的平臺叫GCP(Google Cloud Platform),但是公有云市場已經被AWS領先很多。Google在數據庫方面帶來了分布式技術的突破,研發了BigTable、Spanner這樣領先的分布式數據庫技術,但是BigTable與Spanner只是一項內部應用的技術,離市場需要的產品不一樣,業界大部份公司還不需要這樣復雜的技術。云計算服務不僅要有技術基礎,更需要有很強的產品設計能力。另外云計算和互聯網一樣,是一個基礎設施,不能因為用戶上了云計算就必須要全部改變他原有的軟件架構,就像不能因為用戶要上網就必須把電腦全換了一樣的道理。
Google公有云服務地址:https://cloud.google.com/products/,以下是Google主要提供云計算服務:
國內其他云廠商也提供了數據庫服務,包括騰訊云、百度云、華為云,但是產品線及成熟度還有待提升,這里就不詳細說了。
【數據庫2017年展望】
數據庫一直是IT界非常活躍的技術,也是當今計算機系統非常核心的構成。從網絡/層次數據庫到關系型數據庫,到面向對像數據庫、分布式數據庫、時序數據庫,然后是NoSQL(KV型、文檔型、列式數據庫、圖數據庫)與大數據以及NewSQL,可以說,數據庫界從來沒有消停過。全球頂級軟件廠商都非常重視在數據庫領域投入,包括微軟(SQLServer)、Oracle(Oracle+MySQL)、IBM(DB2)、SAP(Sybase+HANA)、Google(Spanner)、Facebook(RocksDB)、阿里巴巴(OceanBase)、Amazon(Aurora)等等。相信數據庫在未來競爭會更加激烈,這里對數據庫在2017年做一個簡單的展望:
1) MySQL超越Oracle成為流行度第一的產品
2) RDBMS、NoSQL、大數據繼續互相學習,RDBMS地位仍然穩固
3) 圖數據庫開始發力
4) 機器學習應用于數據庫領域
5) 數據庫云服務競爭激烈,混合云解決方案會是重要戰場
6) 國產分布式數據庫OceanBase加入市場競爭