LOBキー

LOBはoracle.kv.Keyオブジェクトを使用して格納し、取得します。そのような各オブジェクトは、キー・パスを表す一連の文字列を含みます。キー・パスは、メジャーと(オプションで)マイナーとの2つの部分に分かれます。LOBキー内の最後のキー・パス・コンポーネントには、デフォルトで.lobの終了接尾辞を最後に付ける必要があります。

LOB接尾辞はKVStoreConfig.setLOBSuffix()メソッドを使用して定義できます。

Keyオブジェクトを使用して格納される他のオブジェクト(キー/値APIを使用する場合など)とは異なり、LOBデータはキー・パスにあるメジャーおよびマイナーのキー・パス・コンポーネントによって決定されるシャードには格納されません。かわりに、LOBデータは非表示のキースペースを使用し、様々なチャンクは指定したKeyに基づいてではなく、このキースペースに基づいてパーティション全体に渡って配布されます。

また、LOBに使用する実際のキーはメジャー/マイナーのキー・パス・コンポーネントに基づいて単一パーティションに格納され、このストレージに使用されるパーティションは、ストアがキーのメジャーおよびマイナーのキー・パスに基づいてあらゆるデータを分けるのと同じ方法で選択されることに注意してください。ただし、かなり短いキーを前提にすると、これは少量のデータを表し、ストア・データのサイズ要件には実質的に影響しません。

この項の残りの部分では、表APIのユーザーにとって参考になるOracle NoSQL DatabaseKeyの概要を説明します。キー/値APIユーザーは、すでにこれらの概念を理解していると思われるため、次の項にスキップできます。

Keyオブジェクトは、キー・パス・コンポーネントをどのように表すかに応じていくつかの異なる方法で構成できます。通常、メジャーおよびマイナーのキー・パス・コンポーネントを表すには配列が使用され、これらの配列は次にKey.createKey()メソッドに渡されます。キー・パスの文字列表現を表セルに格納することは簡単なため、表APIのユーザーはKey.fromString()メソッドを便利と感じる場合もあります。あるいは、表APIユーザーはキー・パス・コンポーネントを配列として表セルに格納したり、表セルで見つかる情報を使用してキー・パス配列を作成できます。

文字列として表す場合、キー・パスはスラッシュ('/)で始まり、各パス・コンポーネントの区切りにもスラッシュを使用します。マイナー・キー・パスを使用する場合、メジャー・キー・パスとの間はダッシュ('-)を使用して区切られます。たとえば、イメージ・ファイルに使用するLOBキーは、次のようになります。

/Records/People/-/Smith/Sam/Image.lob

表APIのユーザーは、LOBパスが表の内部で使用するキーと競合しないことを注意して確認する必要があります。表データを格納するために内部で使用するキー・パスは表名の数値表現で始まるため、通常これは難しいことではありません。