The Oracle NoSQL Database is a nonrelational, horizontally scalable key-value database, with multiple higher-level data abstractions that support data management as binary key-value pairs, JSON objects, and SQL-like tables.
In general, NoSQL describes an approach to database design that relies on document store, column store, graph format or, in the case of Oracle NoSQL Database, key-value store for data. Standing for Not Only Structured Query Language, NoSQL databases do not adhere to relational Structured Query Language (SQL) methods of database design, which rely on tables and predetermined data schemas.
Uses and key features
Oracle NoSQL Database is commonly used for high-throughput event processing, click-through data processing, customer data management, sensor data capture, authentication, content management, data archiving and many other use cases.
Some key Oracle NoSQL Database features include the ability to dynamically partition and distribute data, automatic query load balancing and high availability. The simple key-value data model uses C and Java APIs, JSON schemas and ACID transactions.
One of Oracle NoSQL Database version 18's features includes Parent-Child Join -- support for tables that belong to the same hierarchy. Parent-Child Joins are executed as parallel scans on each shard, which increases query performance. If the target table has indexed columns, the index can be used in the query.
In addition, Oracle NoSQL Database's aggregation functions are able to iterate over rows, evaluate expressions for each row and aggregate the returned values into a single value. The Zone Affinity capability allows administrators to place the master nodes of a key-value store in primary zones that are in close network proximity to user apps. Master affinity zones are assigned to selected primary zones by administrators. The master nodes are then distributed among the primary zones. If a master affinity zone is down, the master nodes are redistributed.
Oracle NoSQL Database also offers Secure Full Text Search, which combines the TABLE interface with ElasticSearch, providing a method of finding natural language documents via query. ElasticSearch works as a remote service that maintains text indexes that are hosted on other nodes.
Oracle NoSQL Database Enterprise Edition is available through a commercial license. There is also the Oracle NoSQL Database Community Edition (CE), licensed under the Apache 2.0 License (Apache 2.0). In addition, Oracle introduced in 2018 the Autonomous NoSQL Database -- one of its new "self-driving" cloud database offerings.
Oracle NoSQL Database design
Oracle released its first iteration of NoSQL in October 2011 as part of its big data strategy. Oracle NoSQL is part of Oracle's Big Data Appliance, a converged infrastructure machine that includes server hardware, software from Cloudera -- including Apache Hadoop -- and an open source distribution of the programming language R.
The Oracle NoSQL Database is a distributed database, with a configurable set of systems that work as storage nodes. Data is stored as key-value pairs, which are written to the storage nodes based on the hashed value of the key. Storage nodes are then replicated across the device to help optimize query load balancing and ensure rapid failover when an individual node is down.
Users can write applications for the Oracle NoSQL Database using Java/C API to read and write data. Customer applications interact with the Oracle NoSQL Database key-value store with Oracle NoSQL Driver, which links into the application as a Java library (.jar) file and is accessed using a series of Java APIs. This provides access to the data through the node for the requested key.
Cluster administration is through either a web-based console or a command line interface.
With its nonrelational design, Oracle NoSQL Database meshes well with modern applications that require flexible and scalable databases. For example, Amazon Web Services (AWS) platforms such as Amazon DynamoDB are compatible with Oracle NoSQL Database for users who require a serverless NoSQL database to deliver single-digit latency at scale.
Oracle NoSQL Database vs. Cassandra
Cassandra is an open source distributed database designed to manage large structured data across many commodity servers. Cassandra supports a single value abstraction called table-structure by configuring nodes over a ring-based architecture where every node in the system can handle any read-write request. Cassandra supports a SQL-like query language it calls CQL (Cassandra Query Language) and can be integrated with Hadoop or MapReduce.
The biggest difference between Oracle NoSQL and Cassandra is their query languages. Users can interact with Cassandra via CQL or by using the CQL shell. Users can create keyspaces (or key spaces) and tables with CQL shell. Oracle NoSQL Database supports SQL, and it can be accessed from Oracle relational databases or Hive using SQL queries.
Oracle NoSQL Database vs. HBase
Oracle NoSQL Database vs. Hadoop
While both Hadoop and Oracle NoSQL Database handle big data, the two platforms serve different purposes.
Hadoop is a processing framework designed to execute queries and batch read operations against large data sets. Hadoop does not support basic functions, like indexing or SQL interface.
Oracle NoSQL Database and Hadoop are compatible in environments where large server farms need to collect data that requires a more sophisticated analysis.