Microsoft 基於 PostgreSQL 構建開源文檔數據庫

Microsoft 推出了一個基於關係型數據庫 PostgreSQL 後端構建的文檔數據庫平臺。

這家科技巨頭同時建議用戶可以通過在平臺上實施開源的 FerretDB 解決方案來開始使用。

雖然觀察者可能會對 Microsoft 日益接受開源世界感到驚訝,但據上週末的一篇博客顯示,該供應商表示正在推出"由 PostgreSQL 驅動的完全開源平臺",在該平臺上"可以構建端到端的文檔數據庫體驗,以滿足社區的 NoSQL 數據庫需求"。

文檔數據庫的趨勢在十多年前開始浮現,由 MongoDB 等支持者推動,他們認爲開發人員會受益於一個對 schema 要求較少的數據庫,並能更好地處理來自面向網絡的軟件產生的"半結構化"數據類型。

Microsoft 的這項新承諾意味着:首先,該數據庫由關係系統支撐;其次,堆棧的不同方面都採用開源治理,包括 MIT、Apache 和 PostgreSQL 全球開發組的領導。

在一篇博客文章中,Microsoft 產品營銷經理 Abinav Rameesh 表示:"沒有商業許可費用,沒有使用或分發限制,也沒有任何陷阱。雖然我們一直歡迎並鼓勵對項目做出貢獻,但用戶無需將其定製、貢獻和改進提交回項目。MIT 許可證保證了完全自由地分叉存儲庫、使用和分發,且無任何義務。"

Microsoft 開發了兩個 PostgreSQL 擴展。首先是 pg_documentdb_core,這是一個針對 BSON (Binary JavaScript Object Notation,JSON 文檔的二進制編碼序列化) 優化的自定義 PostgreSQL 擴展。PostgreSQL 從 2013 年開始添加對 JSON 文檔的支持。

其次,Microsoft 貢獻了 pg_documentdb_api,這是實現創建、讀取、更新和刪除數據的數據平面,以及查詢功能和索引管理。

Microsoft 還建議用戶可以利用系統現有的開源接口 FerretDB。

Rameesh 說:"雖然用戶可以通過 Postgres 與 DocumentDB 交互,但 FerretDB 2.0 提供了一個具有文檔數據庫協議的接口。FerretDB 同樣採用寬鬆的 Apache 許可證,在 Postgres 和 NoSQL 社區都有重要影響力。"

就 FerretDB 而言,使用 DocumentDB 作爲其 2.0 版本的後端意味着某些工作負載的性能比早期版本快 20 倍。

"FerretDB 2.x 利用 Microsoft 新發布的開源 DocumentDB PostgreSQL 擴展,顯著提高了數據庫性能。除其他改進外,DocumentDB 爲 PostgreSQL 引入了 BSON 數據類型和操作,使我們能夠比以前更高效地存儲和查詢數據。"

FerretDB 聯合創始人兼 CEO Peter Farkas 表示:"確保 DocumentDB 和 FerretDB 之間的持續兼容性使用戶能夠在 Postgres 上運行文檔數據庫工作負載,獲得更高的性能和對現有應用程序的更好支持。"

Microsoft、PostgreSQL 和 FerretDB 之間的聯合開發必將被視爲對開源可用的 MongoDB 的威脅,後者與 Couchbase 一起引領着文檔數據庫市場。雖然 MongoDB 擁有包括豐田、富國銀行和瑞士電信在內的穩固用戶羣,但希望在文檔數據庫上構建新項目的開發人員可能會傾向於貨比三家。