【MongoDB】开源MongoDB替代FerretDB现已全面可用

视频号

微信公众号

知识星球

Chinese, Simplified

FerretDB,一个开源的MongoDB替代数据库,最近宣布全面可用。该项目以Apache 2.0许可证发布,允许开发人员使用现有的PostgreSQL基础架构来运行MongoDB工作负载。

FerretDB充当代理,将MongoDB有线协议查询转换为SQL,PostgreSQL作为数据库后端。FerretDB最初是MongoDB的开源替代品,它提供了相同的MongoDB API,而开发人员无需学习新的语言或命令。FerretDB联合创始人兼首席执行官Peter Farkas解释道:

我们正在为文档数据库创建一个与MongoDB兼容的新标准。FerretDB是MongoDB的替代品,但它也旨在制定一个新的标准,不仅将易于使用的文档数据库带回其开源根源,还使不同的数据库引擎能够使用标准化接口运行文档数据库工作负载。

虽然FerretDB是在PostgreSQL上构建的,但该数据库采用可插拔架构设计,以支持其他后端,目前正在进行针对Tigris、SAP HANA和SQLite的项目。该项目最初是在Go中编写的,因为MongoDB在2018年采用的服务器端公共许可证(SSPL)不符合开源计划设定的所有开源软件标准。FerretDB背后的团队写道:

MongoDB最初是作为开源软件构建的,它改变了许多开发人员的游戏规则,使他们能够构建快速而强大的应用程序。它的易用性和丰富的文档使它成为许多寻找开源数据库的开发人员的首选。然而,当他们转向SSPL许可证,远离开源根源时,所有这些都发生了变化。

Farkas表示,流行的数据库管理工具,如mongosh、MongoDB Compass、NoSQL Booster和Mingo,已经与FerretDB的当前功能集兼容。自由软件基金会在其月度新闻摘要中评论道:

对于那些理所当然地关心MongoDB在2018年更改许可条件的人来说,这确实是一个好消息。

在1.0版本中,FerretDB添加了对createIndexes命令的支持,而1.1.0版本包括添加renameCollection、对投影字段分配的支持、$project管道聚合阶段,以及在SAP HANA处理程序中创建和删除命令。

在Reddit上,MongoDB的替代品的普遍可用性得到了褒贬不一的反馈,一些用户支持抽象层,而另一些用户则不认为FerretDB是一个“真正的”数据库。YugabyteDB和AWS Data Hero的开发倡导者Franck Pachot最近写了一篇文章,介绍如何在YugabyteDB上启用与MongoDB兼容的API:

想要在分布式SQL数据库上使用与MongoDB兼容的API吗?很容易将FerretDB连接到YugabyteDB,所有这些都是开源的。

FerretDB并不是MongoDB的唯一替代品:其他支持MongoDB API的基于无架构文档的数据库包括Amazon DocumentDB、Azure CosmosDB和MariaDB MaxScale。在最近的一次网络研讨会上,Udemy的首席数据库可靠性工程师David Murphy将CosmosDB、DocumentDB、MongoDB和FerretDB作为文档数据库进行了比较

FerretDB项目和路线图可在GitHub上获得,包括Docker镜像、RPM和DEB包。

本文地址
https://architect.pub
SEO Title
Open Source MongoDB Alternative FerretDB Now Generally Available