Oracle NoSQL Database can be integrated with Apache Hadoop and products in the Oracle stack. The following sections describe more about integration.

Oracle Database Mobile Server Integration

As of Oracle Database Mobile Server (Oracle DMS) 12.1 release, Oracle NoSQL Database can be integrated with Oracle Database Mobile Server. Oracle DMS facilitates the development, deployment and management of mobile database applications for a large number of mobile users.

The main integration feature is synchronizing Oracle NoSQL with Oracle Berkeley DB/SQLite/Java DB.

Oracle DMS can be used as a data synchronization engine between Oracle NoSQL and mobile client databases including Oracle Berkeley DB, SQLite and Java DB. Existing tables in an Oracle NoSQL database can be published to Oracle DMS using publish/subscribe APIs. Oracle DMS creates corresponding tables on the client-side and allows them to synchronously upload their data to Oracle NoSQL. Since, Oracle DMS completely manages the data format conversion between the local client database and Oracle NoSQL DB, no additional coding or scripting is required. The mobile to NoSQL paradigm fits best where the number of clients is large, and/or the amount of collected data is large, and/or the server application requires NoSQL as data storage.

With Oracle NoSQL as data storage, mobile and embedded applications can use Oracle DMS as a complete and reliable solution for synchronizing their data to the highly scalable Oracle NoSQL database. For more information, see Customizing Synchronization With Your Own Queues in the Oracle Database Mobile Server Developer's Guide. You can also find the FleetControl sample application in Oracle Mobile Development Kit (a development toolkit for Oracle DMS), which demonstrates how to use Oracle NoSQL as a back-end database and how to synchronize application data between mobile client database and Oracle NoSQL via Oracle DMS.

Hadoop Integration

Oracle NoSQL Database can be integrated with Apache Hadoop systems using the oracle.kv.hadoop.KVInputFormat class. This class allows you to read data from Oracle NoSQL Database and then prepare it for insertion into a Hadoop system. To move data back to your Oracle NoSQL Database, you can read data from the Hadoop system using the standard mechanisms, and then write the records to Oracle NoSQL Database using the APIs. See Integration with Apache Hadoop MapReduce in the Integrations Guide.

An example of using KVInputFormat to read data from Oracle NoSQL Database in a Map/Reduce job can be found in the <KVHOME>/examples/hadoop directory.

Property Graph Integration

Oracle Big Data Spatial and Graph can be configured to use Oracle NoSQL Database to support its property graph feature. This feature supports graph operations, indexing, queries, search and in-memory analytics.

Graphs are commonly used to model, store, and analyze relationships found in social networks, cyber security, utilities and telecommunications, life sciences and clinical data, and knowledge networks. Typical graph analyses encompass graph traversal, recommendations, finding communities and influencers, and pattern matching.

For more information, see Using Property Graphs in a Big Data Environment in the Oracle Big Data Spatial and Graph User's Guide and Reference.

Oracle External Tables Integration

Oracle NoSQL Database data can be accessed using Oracle Database's External Tables feature. This capability allows NoSQL Database data to be read into Oracle Database. Oracle NoSQL Database data cannot be modified using the External Tables feature.

Note that this is a feature which is only available to users of the Oracle NoSQL Database Enterprise Edition.

To use the Oracle Database External Table feature to read Oracle NoSQL Database data, you must use the <KVHOME>/exttab/bin/nosql_stream preprocessor to populate our Oracle tables with the data. You must then configure your Oracle Database to use the External Tables feature.

For information on how to use the nosql_stream preprocessor, and how to configure Oracle Database to use External Tables, see oracle.kv.exttab package summary in the Java Direct Driver API Reference.

Coherence Integration

Oracle Coherence is a middleware application that provides data management support for clustered applications. The data that an application delegates to Oracle Coherence are automatically available to and accessible by all servers in the application cluster. By distributing data across multiple machines, Oracle Coherence solves problems related to achieving availability, reliability, scalability, performance, serviceability and manageability of clustered applications.

For more information on Oracle Coherence, see the Oracle Coherence Documentation.

To provide these solutions, Oracle Coherence implements a cache. This cache can be customized to use a number of different data repositories to store the cached data. One such data repository is Oracle NoSQL Database.

Note that this is a feature which is only available to users of the Oracle NoSQL Database Enterprise Edition.

To integrate with Oracle NoSQL Database, Oracle Coherence must be customized using a combination of configuration XML, stock Coherence code, and custom Oracle NoSQL Database code. The Oracle NoSQL Database code is implemented using classes provided by the oracle.kv.coherence package.

Oracle NoSQL Database can be used to support two different caching strategies for Oracle Coherence. The first of these is implemented by oracle.kv.coherence.NoSQLBinaryStore in the Java Direct Driver API Reference. This class allows you to implement cache data that is not meant to be shared with non-cache-based applications, and so uses a data format that is fairly opaque. This is an efficient and easy-to-configure caching option.

Oracle GoldenGate Integration

The transactional data from Oracle GoldenGate can be replicated to a target Oracle NoSQL Database using Oracle NoSQL Handler. The Oracle NoSQL Handler streams change data capture into Oracle NoSQL Database using the Table API.

The Oracle NoSQL Handler interrogates the target Oracle NoSQL Database for the table definition. If the table does not exist, the Oracle NoSQL Handler does one of two things. If includes CREATE, then a table is created in the Oracle NoSQL Database. Otherwise, the process aborts and a message is logged that tells you the table that does not exist. If the table exists in Oracle NoSQL Database, then the Oracle NoSQL Handler performs a reconciliation between the table definition from the source trail file created by the Oracle GoldenGate capture process, and the table definition in the Oracle NoSQL Database.

You configure the Oracle NoSQL Handler operation using the properties file. These properties are located in the Java Adapter properties file.

For more information, see Using the Oracle NoSQL Handler in the Using Oracle GoldenGate for Big Data.