3 レコードの設計に関する考察
Oracle NoSQL DatabaseのKVStoreでは、キーと値のペアの格納場所が提供されます。各ペアはデータベースの1つのレコードとみなされ、キーは値の検索に使用されます。キーと値の両方とも、Oracle NoSQL Databaseによる一定の制限を前提に、アプリケーションで定義されます。
KVStore内の各キーは、文字列のリストです。すべてのキーに、1つ以上のメジャー・コンポーネントが必要です。キーは必要に応じてマイナー・コンポーネントを持つこともできます。
レコードの値部分は単純にバイト配列にすることも、Avroを使用してそのスキーマを識別することもできます。値部分は、必要に応じて単純にも複雑にもできます。
注意:
Avroは非推奨です。固定スキーマでレコードの値部分を定義する場合は、表APIの使用をお薦めします。このAPIには、Avroを使用するキー/値APIにはない2次索引などの利点があります。
非常に簡単な例として、ストアに人に関する情報を含めるとします。次のようにするとします。
-
メジャー・キー: 電子メール・アドレス。
-
マイナー・キー: ユーザーの住所、電話番号、写真、名前などの様々なプロパティ。
-
値: メジャー・キー・コンポーネントとマイナー・キー・コンポーネントの組合せに関連するAvro定義の情報。たとえば、電子メール・アドレスと住所の組合せに対する値は、市、町名、番地などに関する複数フィールドです。
これは、Oracle NoSQL Databaseに格納する内容の非常に簡単な例です。ただし、パフォーマンスの点から言えば、この例はデータの編成方法として最適ではない場合があります。キーと値の設計方法は、パフォーマンスに大きく影響する可能性があります。
この章の後半で、Oracle NoSQL Databaseのスキーマ設計に関連するパフォーマンスの問題について説明します。