Oracle NoSQL Databaseは、オーディオやビデオ・ファイルのようなラージ・オブジェクト(LOB)の読取りと書込みに使用可能なインタフェースを備えています。一般に、1MBを超えるオブジェクトはすべてLOBとして表すことができます。LOB APIでは、このようなオブジェクトの読取りと書込みにストストリーミングAPIを提供することにより、値全体をマテリアライズ化せずに、大きな値にアクセスできます。
LOBは、基礎となるストレージ・システムに最適なサイズのチャンクの順序として格納されます。1つのLOBを構成するすべてのチャンクが同じサイズとはかぎりません。各チャンクのサイズは、基礎となるストレージ・アーキテクチャとハードウェアの確認に基づいて、自動的に選択されます。LOBを複数のチャンクに分割することにより、混在するワーク・ロード環境で様々なサイズの値を低レイテンシで操作できます。アプリケーションは、ストリーム・ベースのAPIにより、基礎となるストレージ・システムでのLOBの実際の表現に左右されません。
LOBに関連付けられているキーでは、最後のキー・コンポーネントの末尾に接尾辞文字列が付いている必要があります。デフォルトで、この接尾辞は.lob
ですが、KVStoreConfig.setLOBSuffix()
を使用して定義できます。
たとえば、イメージ・ファイルに使用するLOBキーは、次のようになります。
/Records/People/-/Smith/Sam/Image.lob
すべてのLOB APIでは、LOBへの接続に使用するキーがこの末尾の接尾辞要件を満たしているか確認することに注意してください。確認に失敗すると、IllegalArgumentException
がスローされます。この要件により、非LOBメソッドでは、LOBオブジェクトが誤って変更されないようにチェックできます。
すべてのメソッド(LOBおよび非LOB)に対して実行されるLOB関連のキー・チェックの概要を次に示します。
すべての非LOB書込み操作では、他のキー妥当性チェックの一環として、LOB接尾辞が存在しないことをチェックします。このチェックに失敗すると、IllegalArgumentException
がスローされます。
すべての非LOB読取り操作では、内部的に使用される関連付けられた不透明値を返して、LOBストリームを作成します。
このインタフェースでのすべてのLOB書込みおよび読取り操作では、LOB接尾辞が存在することをチェックします。このチェックに失敗すると、IllegalArgumentException
がスローされます。