微軟Cosmos數據庫“一統江湖”的夢想是不是太過不切實際?

微軟 NoSQL 雲計算 MongoDB IT168企業級 2017-06-07

2005年,數據庫教父Michael Stonebraker曾表示,數據庫市場中“一體適用”的心態是一個“已經成為過去時”的想法。顯然,微軟不太同意Stonebraker的觀點。今年5月中旬,微軟推出了Azure Cosmos DB,一個新的數據庫,據說可以適用一切。

微軟Cosmos數據庫“一統江湖”的夢想是不是太過不切實際?

適用一切?恐怕沒那麼容易

關係型數據、文檔和圖表當然會支持,強一致性和最終一致性也都同樣支持。事實上,Cosmos DB有五種一致性模型可供選擇。

意料之中的是,在媒體發佈會上,一名開發者滔滔不絕地說,它“絕對擊敗了雲中的任何競爭對手”,而且“不明白為什麼你還要去選擇其他的東西”。微軟甚至也不那麼令人吃驚地同意了,稱Azure Cosmos DB是“第一個全球分佈式的數據服務,它允許您在任意數量的地理區域內彈性地擴展吞吐量和存儲,同時保證低延遲、高可用性和五個定義良好的一致性模型。”

然而,“陽光下的一切”產品的問題在於,它們獲得寬度的同時,往往會在深度上有所遺失。正如一位前MongoDB高管所說的那樣,“當你告訴我你的數據庫做了所有的事情時,我想到的是它的一切都很平庸。”

也許他說的有道理。

你的工作內容也許只有一項

雖然NoSQL並沒有將通用關係數據庫淘汰掉(如MySQL仍然堅挺),但它為市場提供了不同的方法來適應不同的應用需求。正如ArangoDB的董事會成員Luca Olivari告訴筆者的那樣,“鍵值存儲在極其簡單的數據中非常快,文檔存儲對於複雜的數據是非常出色的,而圖表解決方案則是瞄準高度互聯的數據。”

有些人會無視數據庫市場的分裂。Olivari補充說,掌握這些系統需要“一個陡峭的學習曲線(其實是很多陡峭的學習曲線)”,而且, “同時保持你數據的一致性、你應用程序的容錯性和你架構的精益性基本是不可能的。”

不管你喜不喜歡,這就是我們所生活的世界。上DB-Engines.com看看,你會發現數以百計的數據庫,每個數據庫都有自己的定位。Stonebraker在十年前就把這一趨勢稱為:

在過去的25年中,商業DBMS的開發可以用一句話概括:“一體適用。”這個短語指的是傳統DBMS架構(最初設計的和業務數據處理優化)已經被用於支持許多不同特色的以數據為中心的應用程序和要求…這一概念已經不再適用於數據庫市場,而且我們認為商業市場將會分裂出一批獨立的數據庫引擎。

這一預測在MongoDB、Apache Cassandra、Neo4j和其他NoSQL數據庫進入市場的幾年前被提出,可以說是非常有先見之明的。Thoughtworks的Martin Fowler解釋了這種“混合持久化”的原因:“任何一個像樣的企業都有不同類型的數據存儲技術需求。”

換句話說,一個“面面俱到”的數據庫可能並不存在。事實上,幾乎可以肯定,它是不存在的。

多模型在做夢嗎?

當然,並不是所有人都同意這一點。幾年來,圍繞“多模型”數據庫的趨勢越來越多,Azure Cosmos DB只是其中最新的一個,還有ArangoDB、OrientDB等等。Serdar Yegulalp認為,在這種多模式的數據庫中,尤其是在微軟在數據庫市場上的重要性和經驗的支持下,Azure Cosmos DB可能會“讓我們在挑選這些產品時無需搖擺而糾結。”

Olivari更進一步說,“原生的多模型數據庫,比如ArangoDB,是用不同的模式來處理數據的——鍵值對、文檔和圖形。它們允許開發人員自然地使用一種簡單的查詢語言,就像編寫代碼一樣。只學習一種語言,只有一個需瞭解和操作的核心,只需一種產品支持,從而使每個人的生活變得更加輕鬆。”

你可以通過將不同模型的數據映射到一個公共的後端來支持多個數據庫模型,另一種說法是支持特定的數據庫。微軟的DocumentDB(後來演變為了CosmosDB)試圖在文檔數據庫領域中擊敗MongoDB,但是失敗了,又不得不接受MongoDB的wire協議,允許MongoDB開發人員使用他們首選的MongoDB驅動程序和工具鏈將數據推進到DocumentDB中。值得一提,IBM在2013年也曾嘗試過同樣的事情。

兩大公司都沒能把MongoDB的人氣轉移到他們的錢包裡。很難想象一個多模型數據庫能有什麼作為,從定義上說,它是一個“全行業”的數據庫,試圖取代所有流行的數據庫。

同樣,開發人員也不會喜歡這種情況,大家都在試圖掌握某一種模式,如今給他們更多的選擇只會讓工作變得更加艱難。

也許這就是多模式數據庫在過去一年中不斷下滑的原因之一:例如,OrientDB從一年前的41位跌至第46位。瀏覽一下其他的多模型數據庫,情況大致相同。

Azure Cosmos DB可能有所不同。它可以重新定義類型,並交付每個數據庫模型、所有類型的一致性和大規模。微軟在數據庫方面的專業知識可能會使其成功,唯一對其成功有不好影響的是一個根深蒂固的想法,即“一體適用”數據庫都不能真正地與專業數據庫競爭。

根據Stonebraker的說法,通用關係數據庫比其他任何數據庫都要多,但這種策略已經失敗了,而且將會在未來更加戲劇性地失敗。

相關推薦

推薦中...