When Oracle first released the JSON document flavor of its autonomous database 18 months ago, we popped the question: When will they get around to adding support for the MongoDB API? This week, Oracle offered its answer.
The next release of Oracle Autonomous JSON Database cloud service adds support for a MongoDB 4.2-compatible API, making its offering look very familiar to MongoDB developers.
The new release, which is branded as Oracle Database API for MongoDB, is in essence, an Oracle Database in MongoDB clothing. Developers can use MongoDB drivers, as well as tools such as Compass (which are not restricted by MongoDB's SSPL licensing), and they can access most of the features of the 4.2 generation of MongoDB. While it's not the latest generation of the MongoDB API, it is one that MongoDB still supports.
There's one small exception: at launch, Oracle isn't yet supporting the aggregation pipeline, but that should be coming in the near future. Hold that thought.
Through all this, Oracle continues to support the SODA API (Simple Oracle Document Access) that does resemble the MongoDB API. But when you're targeting a large base of developers outside your base, it's best to meet them where they live.
At first glance, Oracle's MongoDB-compatible service looks quite similar to Amazon DocumentDB and Azure Cosmos DB, among others. Given MongoDB's Server Side Public License (SSPL), most third parties offering MongoDB or MongoDB-like services typically implement compatible APIs to stay clear of licensing restrictions. Sure, there are exceptions: IBM offers a managed cloud service through a MongoDB partnership. And Percona, which open sources everything it does, offers its own implementation of MongoDB with the official API, but it does not offer a managed DBaaS service.
So, surprise, surprise, Oracle -- like Azure and AWS -- is going the API-compatible route.
But there are real differences between Oracle's MongoDB-compatible service and other cloud MongoDB-compatible services; they are all under the hood. First of all, it is an Oracle Database. Unlike many of its rivals, Oracle's strategy is polyglot support of all data models within the mothership; Oracle terms it as a converged database. JSON is a specialized implementation of the same database engine. So, Oracle's MongoDB-compatible database service has the same user management and transaction support of the Oracle Database, and it supports a subset of capabilities from the mothership, such as machine learning, spatial, and, of course, the venerable SQL query language.
It also means that if customers want to upgrade to the full shebang, it's just a matter of turning on extra capabilities; no database migration is necessary.,
Secondly, the MongoDB-compatible offering is another edition of the Autonomous Database. This is the self-driving cloud-only database service that originated five years ago. Building atop Oracle's existing database automation technologies, it applies machine learning (ML) as the icing on the cake for the database to make its own operational decisions, leaving the DBA to focus on more strategic matters, such as schema and application development. While other database services are just now starting to apply ML to optimize some of their operations, Oracle's remains the only one that is fully self-driving.
There are other differences relating to Oracle's converged database strategy. As noted above, this is how Oracle's Autonomous Database service avoids being a separate platform that it would have otherwise had to reinvent from scratch. Besides relational, you can manage XML, spatial, graph, and JSON document data inside the core database engine.
Of course, Oracle is not the only multimodel database out there; JSON document support has become a checklist item for many relational platforms -- IBM, Snowflake, Teradata, and others. So, for instance, there is a similarity with Snowflake, which has made document data a first-class citizen for its cloud data warehouse from the get-go, but there are a couple differences.
First of all, as Snowflake is not an operational database, it lacks support for real-time transactions. Secondly, it currently lacks support of in-database machine learning algorithms. There is also a major difference with Azure Cosmos DB, which is a multi-model database, but only allows access via the API selected for the specific table, collection, or data set.
From that standpoint, Oracle offers another difference; relational data can be viewed and accessed as JSON documents and vice versa. And that raises an interesting point with aggregation pipelines. Yes, in the foreseeable future, Oracle will add support. But it shouldn't be surprising coming from a relational database company that Oracle believes that SQL is a more robust form of accessing and querying data, regardless of whether the data is in relational tables or document collections.
When dealing with complex data, SELECT statements can be far more efficient, as long as you are not talking about operations requiring a ridiculous number of table joins. Aggregation pipelines collect values from various documents and group them together, whereas SQL SELECT statements work through table joins.
Of course, the debate over which is the better query method is moot, as Oracle's goal here is meeting MongoDB developers where they live. That checkbox has finally been hit with support of a MongoDB-compatible API, rather than an API that looks like it.
When we reported on Oracle's original introduction of the Autonomous JSON Database, we noticed that it is pricing the service very aggressively at rates that are lower than the full edition of the Autonomous Database. It's not necessarily a zero-sum game for drawing customers away from MongoDB Atlas.
Although, given MongoDB's public positioning that the document model will supersede the relational one, it makes for an interesting philosophical debate -- one that dwells down to nuance given that recently, Mongo quietly added the $sql command/stage to support SQL queries.
More to the point, the MongoDB developer base has become a fat enough target to support multiple players in this space. For Oracle, the key draws are the autonomous database, piggybacking on the automated management capabilities built into the mothership. For those seeking to keep their options open, there's a one-click upgrade to multimodel support in case JSON developers want the full Oracle Autonomous Database in all its converged form.
Disclosure: Oracle is a dbInsight client.