Oracle NoSQL DatabaseのKVStore内のデータには、製品のために提供されるドライバを使用してアクセスします。これらのドライバの他にもいくつかのドライバを使用できます。内容は次のとおりです。
Java表ドライバ
C表ドライバ
Cキー/値ドライバ
Python表ドライバ
node.js表ドライバ
新規ユーザーは、キー/値APIのみに含まれる機能が必要でないかぎり、表ドライバの1つを使用する必要があります。キー/値APIはいずれ非推奨になる予定です。
JavaおよびCのキー/値ドライバは、キーと値のペアを使用してストア・データへのアクセスを提供します。他のすべてのドライバは表を使用してアクセスを提供します。また、Javaキー/値ドライバではラージ・オブジェクト(LOB)のサポートが提供されます。このリリース以降、これは他のドライバではサポートされません。ただし、Java表ドライバのユーザーはLOB APIにアクセスできますが、LOB APIはキー/値インタフェースを使用してアクセスされます。
いずれかの表ドライバのユーザーは、2次索引を作成して使用できます。JavaおよびCのキー/値ドライバではこのサポートは提供されません。
C表、Python表およびnode.js表ドライバが動作するためには、ドライバとOracle NoSQL Databaseストア間でネットワーク・アクティビティを変換するプロキシ・サーバーを使用する必要があります。プロキシはJavaで記述され、クライアント・コードとOracle NoSQL Databaseストアの両方からネットワーク・アクセスが可能な任意のマシン上で実行できます。ただし、パフォーマンスとセキュリティ上の理由から、プロキシはドライバと同じローカル・ホスト上で実行し、プロキシをドライバと1:1構成で使用することをお薦めします(つまり、プロキシの各インスタンスを単一ドライバ・インスタンスとともに使用する必要があります)。
使用するドライバに関係なく、指定されたクラスおよびメソッドを使用することで、ストアへのデータの書込み、データの取得およびデータの削除を実行できます。これらのAPIを使用して一貫性と永続性の保証を定義できます。すべての操作が成功するか、いずれも成功しないかのどちらかになるよう、ストアに対する一連の操作を自動的に実行することもできます。
この本の後半で、ストアのアクセスに使用するAPIとその概念について説明します。
Oracle NoSQL DatabaseはJava 7でテストを行っています。
ストア・アクセスを行うには、KVStoreハンドルを取得する必要があります。KVStoreハンドルの取得は、KVStoreFactory.getStore()メソッドを使用して行います。
KVStoreハンドルを取得する場合、KVStoreConfigオブジェクトを指定する必要があります。このオブジェクトによって、アクセス先のストアの重要なプロパティを識別します。KVStoreConfigクラスについては、この章の次の項で説明しますが、このクラスを使用して最低次のものを識別する必要があります。
ストアの名前。ここで指定する名前は、ストアをインストールしたときに使用した名前と同一である必要があります。
1つ以上のヘルパー・クラスのネットワーク・アクセス情報。これらは、現在ストアに属しているノードのネットワーク名とポート情報です。複数のノードは、文字列の配列を使用して識別できます。1つでも複数でも使用できます。数が多いことによる影響はありません。1つの場合は選択されたホストが一時的にダウンする可能性があるので、複数の使用をお薦めします。
KVStoreConfigクラス・オブジェクトの他に、KVStoreFactory.getStore()にはPasswordCredentialsクラス・オブジェクトを指定することもできます。認証を必要とするように構成されているストアを使用している場合は、これを行います。詳細は、「認証APIの使用」を参照してください。
認証を必要としないストアのストア・ハンドルを取得する手順は、次のとおりです。
package kvstore.basicExample;
import oracle.kv.KVStore;
import oracle.kv.KVStoreConfig;
import oracle.kv.KVStoreFactory;
...
String[] hhosts = {"n1.example.org:5088", "n2.example.org:4129"};
KVStoreConfig kconfig = new KVStoreConfig("exampleStore", hhosts);
KVStore kvstore = KVStoreFactory.getStore(kconfig);
KVStoreConfigクラスは、KVStoreハンドルのプロパティを記述するのに使用されます。ほとんどのプロパティはオプションであり、必須のものは、クラス・インスタンスの作成時に指定します。
KVStoreConfigを使用して指定できるプロパティは次のとおりです。
一貫性
一貫性は、レプリカ・ノードから読み取られたレコードがマスター・ノードに格納されている同じレコードと同一であることを表すプロパティです。詳細は、「一貫性保証」を参照してください。
永続性
永続性は、マスター・ノードで実行される書込み操作が、マスター・ノードに障害が起きたり、異常終了した場合でも失われないことを表すプロパティです。詳細は、「永続性保証」を参照してください。
ヘルパー・ホスト
ヘルパー・ホストは、ストア内のノードにアクセスする場所を識別するホスト名とポートのペアです。複数のホストは、文字列の配列を使用して識別できます。通常、アプリケーション開発者は、これらのホスト名/ポートのペアの情報を、ストアの開発者または管理者から入手します。次に例を示します。
String[] hhosts = {"n1.example.org:3333", "n2.example.org:3333"};
リクエスト・タイムアウト
KVStoreハンドルが操作の完了を待つ、タイムアウトまでの時間を構成します。
ストア名
ストアの名前を識別します。
パスワード資格証明およびオプションで再認証ハンドラ
認証の詳細は、次の項を参照してください。