排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
介绍一个MongoDB的替代方案
介绍一个MongoDB的替代方案
白鳝的洞穴
2023-09-15
4271
前阵子有朋友在公众号上留言说他们在搞安全可控替代方案,不过对于MongoDB,目前找不到替代的国产化或者开源产品,问我能不能给他介绍一个。我问他为什么要替换MongoDB,他说因为MongoDB更改了开源协议后,他们的一些商用项目怕受影响,因此需要找到替代方案。正是因为SSPL授权协议的问题,有不少用户都有了替换MongoDB的想法。
实际上对于MongoDB的替代,我们也是很头疼的,虽然PostgreSQL、Oceanbase等数据库中也能够支持一些简单的文档数据存储与访问,不过功能上差得太远。特别是对于一些MongoDB功能上用得很深的应用,想要找到一个可以较为平稳替代的数据库产品,目前来看,除了目前正在被替换的Oracle 23C之外,恐怕也找不到太好的。
MongoDB从最初的简单的文档数据库发展到目前,已经迭代了数个大版本,功能上也已经在向通用数据库的道路上走了很远了。目前的MongoDB已经是一个功能十分强大的多模数据库了。MongoDB目前集文档数据库、空间数据库、时序数据库、向量数据库、搜索引擎于一身,同时支持简单的事务,甚至可以用一个数据库独立搞定 一个业务系统。如果应用使用MongoDB很深,确实是很难替换的。
不过对于大多数用户来说,MongoDB仅仅作为简单的文档数据库使用的,保存一些文档、日志、配置数据等。如果这样的话,还是可以找到一些解决方案的。开源项目FerretDB/FerretDB就是这样一个解决方案。如果你的应用仅仅是把MongoDB当成一个文档数据库来使用,应用也比较简单,那么FerretDB可能会成为你替换MongoDB的一个比较好的选择。
FerretDB被其创建者描述为“真正的开源MongoDB替代品,能够运行文档数据库工作负载的所有基本功能”。FerretDB的开源协议是Apache 2.0,可以在github上下载,自从2021年开源依赖,目前已经迭代了40多个版本。FerretDB是一个开源代理,它将MongoDB 6.0+线协议查询转换为SQL,并可以在后端使用PostgreSQL/SQL LITE等后端存储作为数据库引擎。SAP HANA的支持目前是ALPHA状态,按照FerretDB的迭代速度,应该在几个月内发布正式支持。
FerretDB与MongoDB驱动程序和工具兼容,因此很多使用MongoDB的应用程序不需要做修改就能够用FerretDB+PostgreSQL的方式直接替代了
目前FerretDB的官网提供了Docker 镜像、RPM 和 DEB 包的下载。并且今后将会提供Windows环境、macOS的安装包。目前官网可下载的版本是1.19.0,而在Git上可以下载到最新的1.10的源码。
ferretdb支持一些简单的mongodb的特性:支持嵌入式数据模型;支持索引,可以加快查询速度,并且可以包含嵌入文档和数组中的键;支持读写操作(CRUD)以及聚合、地理空间、文本搜索等查询;支持JSON数据模型和动态模式(以BSON二进制模式存储);支持多种编程语言的驱动程序和工具。
不过FerretDB仅仅是一个MongoDB的文档数据库功能的替代方案,还存在很多局限性,如果你的应用使用到了MongoDB的一些高级特性,那么就不能jiandan的替代了。比如:不支持MongoDB的事务特性,也就是可以在多个文档或者集合上执行原子性的操作;不支持MongoDB的更改流特性(监听集合或者数据库上的数据变化事件);不支持MongoDB的地理空间索引和查询特性(在地理坐标或者形状上进行索引和查询);不支持MongoDB的全文搜索特性(在文档中的文本字段上进行基于词语或者短语的搜索);不支持MongoDB的图形处理特性(在文档之间建立关系并进行图形遍历和分析)。
FerretDB可以算是一个PG数据库的MongoDB代理,是PG数据库生态的一个十分有益的补充,这些年因为开源协议的友好性,PG生态的发展十分迅速。对于PG生态的数据库厂商,那么将这个开源项目整合到自己的国产数据库中,是对产品十分好的补充。
mongodb
数据库
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨