說到盤點,首先肯定得看看db-engines的全球資料庫排名。下表是2017年1月份前20名資料庫引擎最新排名。

db-engines 2017-01資料庫前20名清單db-engines 2017-01資料庫前20名清單
db-engines這個排名在業界引用得非常多,權威性也很高,總體來說比較客觀,它不像很多咨詢機構采用市場調查,或者某個資料庫廠商釋出的資料,而是通過以下6個方面的統計資料來綜合評估各個資料庫産品得分并給出綜合排名:
資料庫相關網站數量(目前通過google、bing、yandex搜尋引擎統計)
公衆關注度(通過google trends計算)
技術讨論活躍度(通過stack overflow、dba stack exchange問答及使用者統計)
招聘職位(通過indeed、simply hired統計)
專業檔案(通過linkedin、upwork統計)
社交網絡資訊(通過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年以來幾大主流資料庫排名變化整體趨勢
上圖是2013年以來幾大主流資料庫排名變化整體趨勢。
2013年以來開源資料庫與商業資料庫的發展趨勢分析
上圖是2013年以來開源資料庫與商業資料庫的發展趨勢分析,整體大家能明顯感受到開源資料庫都呈良好的發展勢頭,而商業資料庫的市場被慢慢吞食,但從近一年發展趨勢來看,開源資料庫并沒有完全打敗商業資料庫的勢頭,未來很長時間還會是激烈競争狀态,目前商業資料庫主要是靠oracle、sqlserver在支撐。
各種資料庫類型市場百分比各種資料庫類型市場百分比
nosql發展一直很快,幾年前有些人會說nosql要代替關系型資料庫,但最近大家都開始冷靜一點了,從上圖可以看出,nosql雖然發展很好,但是目前rdbms仍是占據了80%的活躍度,處于統治地位。
<b>一、oracle(老大,最掙錢的資料庫)</b>
oracle一直是資料庫市場占有率最高的産品,但2016年很不好受,一直被老二mysql威脅,雖然oracle與mysql都是oracle公司的産品,但是mysql帶給oracle的營收可以忽略不計,這樣就間接導緻oracle市場受到影響。那oracle為什麼不直接砍掉mysql或者減緩mysql的更新步伐呢,這裡很可能是考慮到mariadb這個分支也在持續快速發展,如果官方的mysql更新緩慢,那估計很多公司就會選擇mariadb了。是以oracle也沒有辦法,既沒法讓mysql遷移到oracle,也沒法不搞mysql,是以隻能拼命發展mysql,争取把使用者守住。當然oracle也在全力投入發展雲服務,如果雲計算領域搞起來,mysql可能帶來不錯的營收。
oracle12c
oracle12c是一個非常重要的版本,相比11g,在設計理念上有了全新的變化,全面擁抱雲計算,多租戶是12c的最大特性。按oracle以前産品的釋出來看,大版本的第一個版本更多是布道,而第二個版本更具有大規模生産使用價值。2016年釋出了12.2版本,12c可以說能進入生産使用階段。oracle12.2在雲計算多租戶方面有了非常大的增強,我簡單列了幾個重要的點如下,這些點也許普通用資料庫的人看起來不太眼,但是對于雲計算多租戶是非常重要的特性 :
i/o rate limits for pdbs(pdb可以按iops或mbps隔離)
support for pdbs with different character sets, time zone file versions, and database time zones in a cdb
proxy pdb(pdb代理服務,可以用一個連結指向遠端的一個pdb)
service-level acls for tcp protocol(每個pdb可以指定acl安全政策)
flashback pluggable database
pdb archive files (.pdb files)(可以導出pdb為離線檔案,然後遷移到其它的cdb上,用于容器遷移)
pdb refresh,clone pdb and autorefresh,(可用于單pdb的鏡像執行個體災備、同步、分析)
一個cdb可以包括4000個pdb(以前最大是252個)
oracle12.2增加了原生sharding支援,這與以前的partition及rac不同,sharding可以将資料放在完全不同的主機,屬于share nothing的架構,可以說這個特性是專門為那邊業務非常大的oltp系統準備的,相當于内置實作了自動分庫分表管理功能。
另外新增了資料生命周期管理功能,大家都清楚,資料庫有冷熱之分,往往近期的資料經常使用,幾年前的資料是偶爾使用,通常好的做法是對經常使用的資料采用行式存儲,對不經常使用的資料采用壓縮存儲或列式存儲,這樣總體成本更優,當然,要做這樣的效果需要付出不小的設計與運維成本,還可能會影響業務體驗,是以能做好的人不多。在oracle12.2裡,你可以指定資料的生命周期,讓資料庫自動幫你管理,就像下面這兩條指令:
<b>二、mysql(最流行的開源資料庫)</b>
mysql在2016年是最大赢家,市場占有率不斷攀升,很大一部份原因是網際網路行業快速發展,因為開源免費易用,mysql成為網際網路公司最受歡迎的資料庫。mysql最新穩定版本是5.7.17 ga。
mysql5.7
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吧。
mysql 8.0 dmr
2016.9月mysql8.0(原計劃是mysql5.8)剛發了一個dmr版本(開發者版),可以說是有非常大的改進,下面是發出來的幾個大特性:
支援role
資料字典存儲由myisam引擎變為innodb
支援 invisible indexes,這個對dba索引調優比較有幫助
增加column_stats ,相當于oracle的直方圖
performance schema持續加強,增加了很多error資訊采集與展示
支援set參數持久化儲存
2016年facebook的rocksdb引擎也火了一把,它本身可以做為一個kv引擎直接使用,也可以和innodb或myisam一樣,做為存儲引擎直接用于mysql,還可以用于mongodb,非常靈活。rocksdb是基于google leveldb上發展進來的,采用lsm tree的資料結構管理資料,key value操作高性能且擁有非常高的資料壓縮比,percona與mariadb都在跟進,rocksdb的普及對于innodb有一定競争與互補,但對于tokudb來講就非常難受,因為rocksdb基本覆寫了tokudb的應用場景,并且有各大主流公司在支援。
<b>三、sqlserver(windows上最好的資料庫)</b>
sqlserver2016
sql server一直不被很多人看重,認為資料庫就是oracle與mysql的天下,但是實際上sqlserver的使用者非常多,sqlserver發展非常迅猛,微軟也網羅了大量資料庫的頂級人才。今年微軟正式釋出了sql server 2016及sp1。可以說有很多亮眼的功能,也能看到sqlserver有自己獨特的資料庫發展規劃。列幾個sqlserver2016的重磅特性:
polybase——polybase支援查詢分布式資料集。有了polybase,你可以使用transact sql語句查詢hadoop或者sql azure blob存儲。你現在可以使用polybase寫臨時查詢,實作sql server關系型資料與hadoop或者sql azure blog存儲中的半結構化資料之間的關聯查詢。此外,你還可以利用sql server的動态列存儲索引針對半結構化資料來優化查詢。如果組織跨多個分布式位置傳遞資料,polybase就成了利用sql server技術通路這些位置的半結構化資料的便捷解決方案了。
全程加密——支援在sql server中保持資料加密,隻有調用sql server的應用才能通路加密資料。使用該功能,你可以避免資料庫或者作業系統管理者接觸客戶應用程式敏感資料(包括靜态資料和動态資料)。該功能現在支援敏感資料存儲在雲端管理資料庫中,并且永遠保持加密。即便是雲供應商也看不到資料。
動态資料屏蔽——這個特性可以很好的保護一個表中的敏感資訊(如會員表的注冊時間不是太機密的資訊,但是像手機号碼這種資訊并不希望普通賬号可以檢視,動态資料屏蔽可以有效的解決這個問題,它能讓普通賬号看不到完整的手機号資訊,比如138-1234-5678手機号可能會顯示為138-****-****)
stretch database——stretch database功能提供了把内部部署資料庫擴充到azure sql 資料庫的途徑。有了stretch database功能,通路頻率最高的資料會存儲在内部資料庫,而通路較少的資料會離線存儲在azure sql 資料庫中,最重要的是這可以通過配置規則後由資料庫自動完成,對應用沒有影響,可以說是混合雲的專業資料解決方案。
支援json
支援r語言做資料分析
sqlserver for linux
除了釋出sql server 2016外,今年另一個最重大的事情是微軟宣稱sqlserver要支援linux了,并且釋出了第一個預覽版。這可以說是微軟一次艱難的決定,linux現在是越來越好,windows是不可能幹了linux,更重要的是微軟也是大力搞雲計算服務的,sqlserver支援linux也是順勢而為了。
<b>四、postgresql(功能最強大的開源資料庫)</b>
postgresql可以說是一個曆史非常悠久的開源資料庫,從關系型資料庫理論提出以來,它一直非常活躍,postgresql的功能非常強大,很多功能可以與oracle相當。postgresql的代碼可讀性非常好,又是開源,并且功能強大,是以是學術界非常喜歡研究的資料庫。當然,因為工業界應用得不多,也有時會被人了解為學術型資料庫。不過postgresql在國外的活躍度比中國高很多,也有許多非常成功的工業界案例。國内很多人也不太了解postgresql,人才方面是非常大的短闆,國内缺少非常有影響力的成功案例,也沒有很強的商業上司者,是以導緻在國内發展得沒有mysql迅速。
postgresql
postgresql在2016年釋出了9.6版本,主要有以下大的更新:
parallel execution of sequential scans, joins and aggregates——單條sql支援并行通路可以說是非常有挑戰的功能,這個功能曾經也是商業資料庫與開源資料庫的重大差別,因為oracle、sqlserver、db2都支援單sql并行計算,但是開源資料庫基本不支援,postgresql9.6是第一個支援的開源資料庫。
avoid scanning pages unnecessarily during vacuum freeze operations
synchronous replication now allows multiple standby servers for increased reliability
full-text search can now search for phrases (multiple adjacent words)
postgres_fdw now supports remote joins, sorts, updates, and deletes——fdw在postgesql9.6中有了更大的增強,這個功能有點類似oracle的dblink,或者是sqlserver的連結伺服器概念,也是一個非常實用的元件,可以非常友善的通路遠端資料庫,還可以通路遠端非postgresql資料庫,這對于一些資料遷移與異構關聯計算非常有價值。
substantial performance improvements, especially in the area of scalability on multi-cpu-socket servers
<b>五、mongodb(最好的文檔型資料庫)</b>
mongodb是文檔型資料庫,nosql領域的上司者之一,也可以說是目前最成功的nosql資料庫。能在衆多nosql中脫穎而出,說明mongodb一定有不少過人之處 ,我也一直非常看好,因為mongodb的出現很好的彌補了關系型資料庫的很多問題,比如支援schema free,在關系型資料庫沒有支援json之前,就是一個典型的難題,曾經有很多開發同學向我咨詢對于一個動态屬性的表該如何設計表結構,比如商品的屬性、遊戲裝備屬性等等?說實話,當時關系型資料庫除了預留字段、行轉列模式、大字段文本幾種方案外,沒有什麼好的解決方案。mongodb可以說在這方面非常擅長,因為它的資料互動及存儲都采用類似json格式,非常靈活,并且可以對json資料建立非常靈活的索引,如子屬性、數組都能支援索引。新關系型資料庫雖然也支援json格式,但是與mongodb還是有較大的差距。
nodejs+mongodb
因為是json,mongodb也天然支援js的文法互動,是以又吸引了很多nodejs服務端同學,甚至有人宣傳說nodejs+mongodb組合要代替php+mysql的組合了,當然,這更多是給搞js的同學一種方案選擇。
mongodb在很早就有自己的查詢語言,與sql一樣強大,不過文法是js格式,下圖是mongodb查詢語言與sql的一個簡單對比:
mongo query language and sql
是不是和sql很像,這也是mongodb過人之處,它第一天就知道客戶需求并不隻是要高性能,要俘獲程式員的心,必須要提供強大高效的通路接口語言,由于是文檔型資料庫,sql主要是為了面向關系型資料庫設計的語言,但是sql确實非常牛逼,是以提供一個面向文檔型資料庫類似sql的語言非常有價值。
mongodb 也是一個天生支援分布式的資料庫,資料自動分片,還支援mapreduce,也内置了一個分布式檔案系統gridfs,另外可以挂接多種存儲引擎,這些都是非常誘人的功能。
mongodb3.4
2016年mongodb釋出了3.4版本,也有一些大的更新,主要的新特性有:
支援view
新增對decimal支援,最多支援34位小數位。
新增支援collation,也就是字元串校驗集,校驗集會影響字元對比與排序,3.4以前字元串是按位元組嚴格對比,通過設定collation後可以指定校驗方式,比如忽略大小寫等等,漢字按拼音排序(官方文檔特意舉了拼音排序這個例子,說明中國使用者在mongodb中份量不小)等等。
叢集管理與日志複制方面也有了進一步增強
mongo 公司也推出了自己的資料庫雲服務,mongodb atlas,支援aws上部署,我認為這也是更好的一種雲計算服務模式。
<b>六、redis(最好的緩存資料庫)</b>
redis
說redis是緩存服務,估計有些人會不開心,因為redis也可以把資料庫持久化,但是在大多數情況redis的競争力是提供緩存服務。說到緩存服務必然會想到memcached,因為幾年前memcached是最流行的緩存服務,但随着redis的發展,redis在很多方面比memcached更好用,比如,redis支援更多種資料類型,包括hash、set、list等等。redis也支援資料持久化,另外2015年釋出的redis 3.0開始支援叢集服務。redis還支援subscribe/publish指令,可以用于簡單的消息發送與訂閱,總體而言95%的情況,如果是緩存服務,我們都可以選擇redis。
<b>七、elasticsearch(最好的搜尋服務)</b>
elasticsearch
elasticsearch本是一項搜尋服務,但是因為它實在太強大太好用了,以至于有一些業務把它作為資料存儲與搜尋服務。搜尋與資料庫本來就非常密切,很早以前的資料搜尋都會采用資料庫内置的like模糊查詢或全文檢索實作,但随着網際網路搜尋業務的快速發展,對搜尋選項也要求更豐富,另外早期的搜尋并不一定需要資料庫這樣完全實時的需求,是以資料庫對全文搜尋的支援一直不太理想,這也産生了很多的專業搜尋引擎産品,lucence就是最流行的開源搜尋引擎架構。近幾年随着大資料快速發展,搜尋引擎需要有更強的分布式支撐,另外由于業務的競争,需要大量的日志資料采集與分析,實時性要求更高, elasticsearch 在這方面脫穎而出, elasticsearch 是基于lucence開發的分布式搜尋服務,并不隻是一個架構(lucence需要二次開發),而是可以直接使用的服務。 elasticsearch 對文檔模型也有了進一步的增強,更有一些文檔型資料庫的感覺,甚至有人把它完全當分布式資料存儲服務(主流大資料存儲真的沒有太好的準實時查詢功能)。
elasticsearch在2016年快速增長,從去年13名前進到第11名。elasticsearch今年釋出了5.0版本,這個版本号跳躍得比較大,主要是因為elastic公司考慮到與自己旗下的kibana等産品版本号統一,解決使用者搭建elk或elasticstack日志分析架構選擇元件版本的困擾。
<b>八、neo4j(最好的圖資料庫)</b>
圖資料庫一直是nosql領域非常重要的分支,neo4j可以說是圖資料庫的絕對上司者,雖然這個名字很土(很容易聯想到log4j、dom4j這些通用java元件)
neo4j
圖資料庫雖然現在流行度并不算太高,主要原因是目前大部份問題可以采用關系型資料庫或大資料方案解決,圖資料庫更擅長描述基于關聯關系的場景應用,可以用來解決一些特殊的場景,如人員關聯關系、事務關聯關系等等,比如社交關系計算、物流路徑計算等等。但是由于圖資料庫整個理論不像關系型資料庫那麼紮實,大家也沒有總結出太多的實踐經驗,再加上性能與擴充性上并不是很突出,是以影響力還不大。
從我個人認為圖資料庫是非常有前景的,因為目前關系型資料庫對于傻瓜計算是比較擅長,但對于人工智能方面非常無力,而圖資料庫的結構更像人的大腦資訊儲存模式,不擅長搞大資料運算,但是可以很容易發現兩個相隔十萬八千裡的對像關系。關系型資料庫擅長把一類東西模式化存儲,比如有汽車、衣服、家具、食物、照片、朋友等很多資訊,rdbms可以設計為按每種類别用一張表格存儲,這樣可以很友善回答類型下面的問題:
總共儲存了多少件衣服
紅色的汽車有哪些
但是要回答下面兩個問題會相對困難:
找出所有是長方型白色的東西
找出附近有寶馬汽車的朋友或(朋友的朋友)照片
如果要回答上面問題,rdbms需要再增加維護各種屬性與物品的關系。但是像上面這種關聯性問題會有很多組合,是以通過rdbms來維護并不輕松。圖資料庫的存儲格式更适合解決這類問題,因為它更擅長關聯查找計算。圖資料庫更像人腦計算,如果未來機器學習大量應用,或許是圖資料庫普及的時刻。
neo4j提供了類似sql的圖查詢語言cypher,cypher語言的描述能力非常強大,甚至已經成為圖查詢語言的通用标準。一個簡單的圖資料庫cypher查詢語言如下:
cypher
下圖是neo4j官網列出的典型客戶:
neo4j典型客戶neo4j典型客戶
<b>九、cassandra(最好的列式資料庫)</b>
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快速流行起來。
<b>十、sqlite(最流行的嵌入式資料庫)</b>
嵌入式資料庫有很多種,在以前說不出哪種市場占有率最高,但是随着手機移動開發的流行,sqlite嵌入式資料庫異軍突起,占領了手機嵌入式資料庫的上司地位。在google上搜尋ios資料庫或android資料庫開發,立馬全屏都是sqlite的介紹。sqlite是一個完整的關系型資料庫,支援标準sql,支援函數索引、外鍵、視圖、觸發器、acid,擴充支援自定義函數、json、全文索引、gis等進階特性,可以說功能非常全,但是程式包不到500kb大小,可以在幾百kb的記憶體上運作,是目前手機或掌上嵌入式裝置存儲結構化資料的最好選擇。
sqlite是開源免費軟體,同時也有收費功能,主要是支援加密、壓縮等進階特性,這些功能對于資料安全要求比較高的業務非常有意義。
sqlite一直在持續更新,但最近大的功能不多,目前最新版本是sqlite 3.15.2,也許是他太領先了,找不到對手,另外開源協定是public domain,可以說是基本是沒有任何限制的開源協定,相比mysql、mongodb等開源資料庫來說,沒有任何使用風險,不清楚商業營收是否有保障。
<b>oceanbase(最有潛力的分布式關系型資料庫)</b>
雲資料庫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、阿裡雲這三家廠商是排在前面,并且各有特色,下表是幾大廠商提供的資料庫服務産品對比:
3a(aws、azure、阿裡雲)資料庫服務
<b>aws</b>
aws可以說是産品非常全,并且客戶體量非常大,産品的成熟度也非常高。
aws database service
2016年主要是釋出了snowball資料遷移系列産品,可以幫助使用者快速遷移pb級的資料量到雲上。下圖是aws最新釋出的snowmobile,可以用卡車來完成上百pb的資料遷移,比傳輸網絡傳輸快50倍。
snowmobile
<b>azure</b>
azure是微軟出品, sqlserver是微軟自家核心資料庫引擎,同時sqlserver在資料管理與遷移工具方面非常強大,2016年又推出sqlserver stretch server的混合雲解決方案,可以說在sqlserver方面支援力度最強。azure除了sqlserver之外,同時也提供了表存儲、redis緩存、資料倉庫,并通過第三方支援mysql服務,給使用者提供了豐富的選擇。
azure database service
<b>阿裡雲</b>
阿裡雲近兩年快速發力,兩年前隻有mysql與sqlserver兩個引擎,發展到現在的十幾種,如postgresql、mongodb、redis、drds、ads(分析型資料庫服務)、greenplum等等,豐富的資料庫引擎也是阿裡雲的核心競争力之一。在國内,阿裡雲的成本效益也最有優勢。
阿裡雲資料庫服務
除了支援豐富的資料庫引擎外,2016年阿裡雲也正式釋出資料傳輸與資料管理兩個資料庫服務類的産品。
資料傳輸
資料傳輸服務包括資料遷移、同步、訂閱,你不僅可以非常友善地資料遷移上雲,還能輕松搭建異地機房資料同步架構,通過資料同步或訂閱也可以友善的将資料實時分發到搜尋引擎或資料倉庫。
資料管理
資料管理服務在阿裡雲使用者活躍度非常高,是一款可以免費使用的服務,它能很高效的幫助你管理各種資料源中的資料,包括mysql、sqlserver、mongodb、redis等等,你不再需要使用navicat、phpmyadmin等用戶端資料庫工具。資料也是在内網傳輸,更安全高效。資料管理服務還提供了各種資料圖表分析、資料變更統計、性能診斷等十幾項特色功能。更有意思的是,隻要資料庫可以連接配接上,就算你的資料庫在本地,你不是阿裡雲的使用者也可以免費使用資料管理服務。
<b>一家是oracle</b>
oracle可以說在雲計算方面起步較晚, 市場佔有率還比較低, 但是oracle的産品線是全宇宙最全的,從iaas、paas、daas、saas全都覆寫,自家做資料庫、os、cpu、伺服器,還有最全的saas類軟體。oracle在資料庫雲服務主要銷售oracle、mysql資料庫及hadoop大資料服務。aws這種雲計算服務對于傳統基礎it公司沖擊特别大,特别是iaas及daas方面,現在microsoft、oracle、ibm都在痛苦的轉型,各自都在結合自己的優勢突圍。雲計算給惠普、dell、emc這種偏硬體的企業壓力更大。
<b>另一家是google</b>
google是最先提出雲計算的概念,但是發展得非常不順利,因為google提的雲計算與目前的流行的概念已經完全不一樣了。google最早主要是提供gae這個paas服務,沒有搞起來。最近兩年完全轉型為iaas+paas,和aws非常像,新的平台叫gcp(google cloud platform),但是公有雲市場已經被aws領先很多。google在資料庫方面帶來了分布式技術的突破,研發了bigtable、spanner這樣領先的分布式資料庫技術,但是bigtable與spanner隻是一項内部應用的技術,離市場需要的産品不一樣,業界大部份公司還不需要這樣複雜的技術。雲計算服務不僅要有技術基礎,更需要有很強的産品設計能力。另外雲計算和網際網路一樣,是一個基礎設施,不能因為使用者上了雲計算就必須要全部改變他原有的軟體架構,就像不能因為使用者要上網就必須把電腦全換了一樣的道理。
國内其他雲廠商也提供了資料庫服務,包括騰訊雲、百度雲、華為雲,但是産品線及成熟度還有待提升,這裡就不詳細說了。
資料庫一直是it界非常活躍的技術,也是當今計算機系統非常核心的構成。從網絡/層次資料庫到關系型資料庫,到面向對像資料庫、分布式資料庫、時序資料庫,然後是nosql(kv型、文檔型、列式資料庫、圖資料庫)與大資料以及newsql,可以說,資料庫界從來沒有消停過。全球頂級軟體廠商都非常重視在資料庫領域投入,包括微軟(sqlserver)、oracle(oracle+mysql)、ibm(db2)、sap(sybase+hana)、google(spanner)、facebook(rocksdb)、阿裡巴巴(oceanbase)、amazon(aurora)等等。相信資料庫在未來競争會更加激烈,這裡對資料庫在2017年做一個簡單的展望:
mysql超越oracle成為流行度第一的産品
rdbms、nosql、大資料繼續互相學習,rdbms地位仍然穩固
圖資料庫開始發力
機器學習應用于資料庫領域
資料庫雲服務競争激烈,混合雲解決方案會是重要戰場
國産分布式資料庫oceanbase加入市場競争
<b>作者:葉正盛 來源:新浪微網誌</b>
<b></b>