18个月前,当Oracle首次发布自治JSON数据库时,很多人都在期待Oracle什么时候可以支持MongoDB API。现在,Oracle 自治JSON数据库云服务新版本增加了对MongoDB 4.2 API的支持。
Oracle Database API for MongoDB 本质上是一个披着MongoDB外衣的Oracle数据库。开发人员可以使用MongoDB驱动、Compass等工具(不受MongoDB的SSPL许可限制),也可以访问MongoDB 4.2中的绝大部分功能。但还有个小缺憾,就是Oracle目前还不支持聚合管道。同时,Oracle 还将继续支持SODA API。
乍一看,Oracle MongoDB兼容服务与Amazon DocumentDB和Azure Cosmos DB 很相似。但是,由于MongoDB的 SSPL,大多数提供MongoDB或类似MongoDB服务的第三方通常会实施兼容的API以避免许可限制,而令人惊讶的是,Oracle似乎也与Azure、AWS一样,正在走兼容API的路线。
实际上,Oracle的MongoDB兼容服务与Azure、AWS是有本质区别的。
首先,Oracle是一个数据库,因此它的策略是在Oracle这个“母体数据库”的基础上对所有数据模型提供多语言支持,也就是融合数据库,JSON是基于同一数据库引擎实现。因此,Oracle MongoDB兼容数据库服务具有与Oracle数据库相同的用户管理和交易支持,并且支持母体的功能子集,如机器学习、空间、SQL查询语言等。如果客户想要升级系统,只需要打开功能即可,不需要进行数据库迁移。
其次,与MongoDB实现兼容的数据库是Oracle Autonomous Database,它是建立在Oracle现有的数据库自动化技术之上,同时应用了机器学习(ML),让数据库自己做出运营决策,让DBA 更多地专注于战略事务,如模式和应用开发。
当然,Oracle也不是唯一的多模型数据库,很多关系型数据平台都已经支持JSON,例如IBM、Snowflake、Teradata等。与这些平台相比,Oracle的区别是关系型数据可以作为JSON 文档进行查看和访问,反之亦然。