mongodb模糊查询_AWS 回击了!推出兼容 MongoDB 的 DocumentDB
2018 年 10 月,MongoDB 將其開源許可證從 GNU AGPLv3 切換到 Server Side Public License(SSPL),并明確指出之所以會更改開源協(xié)議是因為部分云計算公司在使用 MongoDB 的時候沒有遵循其開源協(xié)議。
2019 年 1 月 9 日,AWS 宣布推出 Amazon DocumentDB,一個兼容 MongoDB 的數(shù)據(jù)庫。據(jù) AWS 官網(wǎng)介紹,Amazon DocumentDB 是一種可支持 MongoDB 工作負(fù)載的快速、可擴展、高可用并完全托管的文檔數(shù)據(jù)庫服務(wù)。開發(fā)人員可以像現(xiàn)在一樣使用 MongoDB 應(yīng)用程序代碼、驅(qū)動程序和工具來運行、管理和擴展 Amazon DocumentDB 上的工作負(fù)載,并享受更好的性能、可擴展性和可用性,而無需擔(dān)心管理底層基礎(chǔ)設(shè)施。
即使 MongoDB 更改協(xié)議,這塊蛋糕 AWS 也想照吃不誤?
事實上,MongoDB 修改開源協(xié)議要針對的對象很明確就是云廠商,而 AWS 發(fā)布 Amazon DocumentDB 的這一舉動無疑是對 MongoDB 的一次回應(yīng):既然你不爽我直接用 MongoDB,那沒關(guān)系我自己開發(fā)一個數(shù)據(jù)庫。
為什么 AWS 要死盯著 MongoDB 的市場呢?根據(jù) DB-Engines 發(fā)布的數(shù)據(jù)庫流行度,MongoDB 目前排在第五位,如果縮小范圍到開源數(shù)據(jù)庫,MongoDB 排在第三位(前兩位為 MySQL 和 PostgreSQL),如果范圍縮小到文檔存儲數(shù)據(jù)庫,那么 MongoDB 是大幅度領(lǐng)跑的。因此,云廠商在提供云數(shù)據(jù)庫服務(wù)時,MongoDB 自然就成為了必選,如果不選,那么就意味著會有一大批客戶會轉(zhuǎn)到競爭對手那里或者直接流失掉。
AWS 推出 Amazon DocumentDB 僅僅只是要克隆一個 MongoDB 嗎?顯然并不是,因為 MongoDB 在使用時很容易報錯,有人調(diào)侃,MongoDB 出錯都不是一個 Bug,而是它的特性。AWS 官方也印證了這一點:
- MongoDB 的 API 和表達(dá)性語言查詢雖然可以幫助客戶快速構(gòu)建應(yīng)用程序,但是實際情況是客戶往往只需要 API 提供的一小部分功能;
- 有客戶反饋在 MongoDB 上構(gòu)建高性能、高可用性的應(yīng)用程序非常困難,原因是設(shè)置和管理 MongoDB 集群實在太復(fù)雜了。有的應(yīng)用程序可能需要每秒快速擴展到多兆字節(jié)(tbs)和數(shù)十萬次讀寫,因此,客戶不得不花費大量的時間和費用來管理大規(guī)模的 MongoDB 集群;
- 與本地部署一樣,MongoDB 托管系統(tǒng)也面臨著數(shù)據(jù)復(fù)制的挑戰(zhàn),而且在發(fā)生故障之后往往需要很長的恢復(fù)時間。
很顯然,AWS 的野心并不只是要克隆一個 MongoDB,而是要做一個兼容 MongoDB 并且優(yōu)于 MongoDB 的數(shù)據(jù)庫產(chǎn)品。
之前的 MongoDB 如何遷移到 Amazon DocumentDB 呢?
相信在聽到這個消息之后,很多人的第一反應(yīng)都是“之前的 MongoDB 如何遷移到 Amazon DocumentDB 呢?”AWS 官方稱,客戶可以使用 AWS 數(shù)據(jù)庫遷移服務(wù)(DMS)輕松地將其本地或 EC2 MongoDB 數(shù)據(jù)庫遷移到 Amazon DocumentDB。Amazon DocumentDB 通過模擬 MongoDB 客戶端對 MongoDB 服務(wù)器的響應(yīng)來實現(xiàn) Apache 2.0 open source MongoDB 3.6 API,允許客戶將現(xiàn)有的 MongoDB 驅(qū)動程序和工具與 Amazon DocumentDB 一起使用。
前文我們提到了 AWS 想做的一個優(yōu)于 MongoDB 的數(shù)據(jù)庫產(chǎn)品,那么具體會體現(xiàn)在哪里呢?
- Amazon DocumentDB 采用了分布式、容錯、自我修復(fù)的存儲系統(tǒng),集群可自動擴展到 64 TB,客戶無需為容量規(guī)劃而擔(dān)心;
- Amazon DocumentDB 只會將數(shù)據(jù)庫更改寫入存儲層,從而減少了數(shù)據(jù)庫 I/O,避免了跨網(wǎng)絡(luò)鏈接的低效數(shù)據(jù)復(fù)制;
- Amazon DocumentDB 在高級查詢處理、連接池、恢復(fù)、重建等方面做了優(yōu)化,吞吐量可達(dá)當(dāng)前 MongoDB 解決方案的兩倍;
- Amazon DocumentDB 采用了存儲和計算分離的架構(gòu),允許獨立擴展,開發(fā)者可在幾分鐘內(nèi)添加 15 個低延遲讀取副本(無需考慮數(shù)據(jù)大小),讀取容量可提升至每秒數(shù)百萬個請求。
- Amazon DocumentDB 采用了 AWS 多可用區(qū)技術(shù),可在 AWS 的三個 AZ 之間復(fù)制六份數(shù)據(jù),可用性高達(dá) 99.99%。
在費用方面,AWS 也給出了解答,使用 Amazon DocumentDB 不需要預(yù)先付費,按使用量付費即可。
開源如何才能走出一條更好的路徑呢?
開源運動轟轟烈烈的進行了近 30 年,在技術(shù)創(chuàng)新和發(fā)展方面取得了一些成績,但是在商業(yè)變現(xiàn)方面至今也沒有探索出一條比較好的路徑。筆者在和專家交流時也贊同了這個觀點,“微軟 75 億收購 GitHub,這可能是開源商業(yè)變現(xiàn)最具參考的例子了,但是大家也只是有了一個模糊的概念:多少行代碼、多少開發(fā)者對應(yīng)多少錢,并沒有真正探索出開源變現(xiàn)的路徑。”
開源項目、商業(yè)公司和用戶其實是一個三方矛盾的存在。開源項目并非是天上掉餡餅,也是要燒錢、花精力的,MongoDB 首席執(zhí)行官 Dev Ittycheria 就曾表示,過去十年,在 MongoDB 的研發(fā)上投入了 3 億美元,所以開源項目背后的公司自然希望能夠源碼貨幣化,甚至是可以獨家貨幣化。對于用戶來說,他們只希望能在自己的系統(tǒng)中大規(guī)模運行源碼,并且能夠解決他們現(xiàn)階段的業(yè)務(wù)問題,提供性能,減少成本。而對于商業(yè)公司來說,就要平衡這兩方的矛盾。
以 Amazon DocumentDB 和 MongoDB 為例,如果未來 Amazon DocumentDB 在 AWS 的用戶中取得了成功,那么 AWS 又將如何管理基于開源項目的服務(wù)呢?AWS 表示,當(dāng)我們選擇推出基于開源項目的服務(wù)時,就做好了長期維護的準(zhǔn)備,并且我們也會大力貢獻于此開源項目。
如果此次 Amazon DocumentDB 和 MongoDB 能夠長期穩(wěn)定運行下去,那么會不會為開源項目趟出一條更好的路徑呢?
參考鏈接:https://press.aboutamazon.com/news-releases/news-release-details/aws-announces-amazon-documentdb-mongodb-compatibility
(文章版權(quán)歸極客邦科技 InfoQ 所有,未經(jīng)許可不得轉(zhuǎn)載。)
總結(jié)
以上是生活随笔為你收集整理的mongodb模糊查询_AWS 回击了!推出兼容 MongoDB 的 DocumentDB的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (四)Neo4j删除数据需要注意的问题
- 下一篇: javascript服务端编程