Oracle NoSQL Databaseのキー/値ペア


そのもっとも単純な形式で、Oracle NoSQL Databaseは、ユーザー定義キー(文字列としてフォーマット)を不明確なデータ項目に関連付けるマップをを実装します。 このマップはキー/データ・ペアのバージョン番号を記録しますが、ストアに保持されるのは1つの最新バージョンのみとなっています。 Oracle NoSQL Databaseは単一マスター・レプリケーションを使用するため、アプリケーション側で非互換バージョンの調整を心配する必要は一切ありません。このレプリケーションでは、マスター・ノードは特定のキーの最新値を常に保持していますが、読取り専用レプリカはやや古いバージョンを保持していることがあります。 アプリケーションは、バージョン番号を使用してread-modify-write操作の一貫性を確保できます。

キー/値

キー


Oracle NoSQL Databaseは、キーのハッシュ値を計算して、データベースにストレージを提供するコンピュータの集合に対して適切な分散を行います。 その一方で、アプリケーション側では、サブキー機能を活用してデータのローカル性を実現します。

キーとは主要キー・パスと補助キー・パスを結合したもので、どちらのパスもアプリケーションによって指定されます。 主要キー・パスを共有するすべてのレコードは、データのローカル性を実現するために同じ場所に配置されます。 同じ場所に配置された主要キー・パスの集合内で、主要キー・パスと補助キー・パスで構成された完全キーは、高速で索引付けされた参照を提供します。

たとえば、ユーザー・プロファイルを保存するアプリケーションは、プロファイル名を主要キー・パスとして使用し、さらにそのプロファイルにある別のコンポーネント(電子メール・アドレス、名前、電話番号など)に対応する複数の補助キー・パスを保持することがあります。 アプリケーションはキーの組合せと解析を完全に制御できるため、主要キー・パスごとにまったく異なる補助キー・パス構造を持たせることができます。 この例で、ユーザー・プロファイルとアプリケーション・プロファイルを同じストアに保存した場合は、それぞれのプロファイルに対して異なる補助キー・パスを維持することになります。

キー・グループは、プリフィックス・キー圧縮によって効率的に保存されます。


値は、任意のバイト配列として保存されます。 Oracle NoSQL Databaseは、構造またはバイト配列内に保存されているデータに関する想定を、内部的に行うことはありません。 バイト配列からデータ構造へのマッピング(シリアライズとデシリアライズ)は、アプリケーション側の役割となっています。 データ要件が非常にシンプルなアプリケーションでは、単純な固定レコード構造を持つ値を使用できます。 その他のアプリケーションでは、複雑な構造、一連の名前付きプロパティ(名前/値ペア)、または別の種類の自己記述的データ形式を持つ値を使用できます。

値フィールドのサイズと構造に、制限はありません。