Previous Next JavaScript must be enabled to correctly display this content

## Integration

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

### 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. 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. See Integration with Apache Hadoop MapReduce in the Integrations Guide.

### Integration with Elastic Search for Full Text Search

Full Text Search provides the capability to identify natural-language documents that satisfy a query, and optionally to sort them by relevance to the query. Oracle NoSQL Database integrates with the Elasticsearch third-party open-source search engine to enable Full Text Search capability against data stored in an Oracle NoSQL Database table. See Integration with Elastic Search for Full Text Search in the Integrations Guide.

### 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.

### 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 Oracle NoSQL Java SDK. The Oracle NoSQL Java SDK supports both on-premise and OCI cloud instances of Oracle NoSQL database.

The Oracle NoSQL Handler moves operations to Oracle NoSQL using synchronous API. The insert, update, and delete operations are processed differently in Oracle NoSQL databases rather than in a traditional RDBMS.

The following explains how insert, update, and delete operations are interpreted by the handler depending on the mode of operation:

- insert: If the row does not exist in your database, then an insert operation is processed as an insert. If the row exists, then an insert operation is processed as an update.
- update: If a row does not exist in your database, then an update operation is processed as an insert. If the row exists, then an update operation is processed as update.
- delete: If the row does not exist in your database, then a delete operation has no effect. If the row exists, then a delete operation is processed as a delete.

The state of the data in Oracle NoSQL databases is idempotent. You can replay the source trail files or replay sections of the trail files. Ultimately, the state of an Oracle NoSQL database is the same regardless of the number of times the trail data was written into Oracle NoSQL.

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.