Oracle NoSQL Databaseは、Apache HadoopやOracleスタックの製品と統合できます。次の各項では、その詳細を説明します。
Oracle NoSQL Databaseは、oracle.kv.hadoop.KVInputFormat
クラスを使用してApache Hadoopシステムと統合できます。このクラスを使用すると、Oracle NoSQL Databaseからデータを読み取り、それをHadoopシステムへ挿入する準備を行うことができます。逆方向にデータを移動するには、標準的な方法でHadoopシステムからデータを読み取ってから、この本で説明しているAPIを使用して、Oracle NoSQL Databaseにレコードを書き込みます。
KVInputFormat
を使用し、Map/ReduceジョブでOracle NoSQL Databaseからデータを読み取る例が<KVHOME>/examples/hadoop
ディレクトリに用意されています。
また、Oracle NoSQL Databaseはoracle.kv.AvroFormatter
インタフェースを備えています。これを使用すると、Oracle Loader for Hadoop (OLH)をサポートして、Oracle NoSQL Databaseから直接データを読み取り、それをOracle DatabaseにMap/Reduceジョブとして書き込むことができます。OLHについては、『Oracle Big Data Connectorsユーザーズ・ガイド』の「Oracle Loader for Hadoop」で説明しています(次のサイトを参照)。
http://docs.oracle.com/cd/E37231_01/doc.20/e36961/olh.htm#CBHGEJDE
Oracle NoSQL Databaseデータは、Oracle Databaseの外部表機能を使用してアクセスできます。この機能を使用すると、NoSQL DatabaseデータをOracle Databaseに読み込むことができます。外部表機能を使用してNoSQL Databaseデータを変更することはできません。
これは、Oracle NoSQL Database Enterprise Editionのユーザーのみが使用可能な機能であることに注意してください。
Oracle Databaseの外部表機能を使用してOracle NoSQL Databaseデータを読み取るには、<KVHOME>/exttab/bin/nosql_stream
プリプロセッサを使用してOracle表にデータを移入する必要があります。外部表機能を使用するようにOracle Databaseを構成する必要があります。
nosql_stream
プリプロセッサの使用方法、および外部表を使用するようにOracle Databaseを構成する方法の詳細は、oracle.kv.exttabパッケージ要約を参照してください。
Oracle Coherenceは、クラスタ化されたアプリケーションのデータ管理サポートを提供するミドルウェア・アプリケーションです。アプリケーションがOracle Coherenceに委任するデータは、自動的にアプリケーション・クラスタ内のすべてのサーバーで使用可能およびアクセス可能になります。複数のマシンに対してデータを分散することにより、Oracle Coherenceはクラスタ化されたアプリケーションの可用性、信頼性、スケーラビリティ、パフォーマンス、保守性および管理性の実現に関連する問題を解決します。
Oracle Coherenceの説明については、http://docs.oracle.com/cd/E24290_01/index.htmを参照してください。
これらの解決を実現するために、Oracle Coherenceではキャッシュが実装されています。このキャッシュは、いくつかの異なるデータ・リポジトリを使用してキャッシュ済データを格納するようにカスタマイズできます。このようなデータ・リポジトリの1つが、Oracle NoSQL Databaseです。
これは、Oracle NoSQL Database Enterprise Editionのユーザーのみが使用可能な機能であることに注意してください。
Oracle NoSQL Databaseと統合するには、構成XML、ストックCoherenceコードおよびカスタムOracle NoSQL Databaseコードの組合せを使用して、Oracle Coherenceをカスタマイズする必要があります。Oracle NoSQL Databaseコードは、oracle.kv.coherence
パッケージで提供されるクラスを使用して実装されています。
Oracle NoSQL Databaseを使用して、Oracle Coherenceの2つの異なるキャッシュ・ストラテジをサポートできます。このうちの1つめは、oracle.kv.coherence.NoSQLBinaryStoreで実装されます。このクラスによって、キャッシュベースでないアプリケーションとは共有されないキャッシュ・データを実装でき、したがってこのクラスではまったく不透明なデータ形式を使用します。これは、効率的で構成しやすいキャッシュ・オプションです。
もう1つとして、キャッシュベースでないアプリケーションと共有されるデータが得られるキャッシュ・ストラテジを実装できます。これは、oracle.kv.coherence.NoSQLAvroCacheStoreを使用して行います。このキャッシュ・メカニズムはAvro対応であり、いずれのAvro準拠のアプリケーションでも、これらのデータ・レコードの読取りおよび書込みが可能になります。
Oracle CoherenceでこれらのAvroベース・オブジェクトを使用するには、Avroレコードをネットワークでの伝送用にシリアライズできる必要があります。これを有効にするには、oracle.kv.coherence.NoSQLAvroSerializer クラスを使用します。