バケット内のすべてのオブジェクトを読み取るには時間とコストがかかる場合があります。別の解決策として、次のフィルタリング メソッドの一方または両方を使用してオブジェクト ストアをフィルタ処理します。
- パス フィルタリング
- パスは、オブジェクト ストア内の1つ以上のオブジェクトを識別するマルチレベル キー(siteno、year、month、day)を構成する一連の値です。
- パス フィルタリングを使用すると、パス キーで異なるレベルに指定した値を提供することで、データベースに戻すオブジェクトをフィルタリングしオブジェクトの量を減らすことができます(例えば、"WHERE $path.$siteno = '09380000'")。
- パス フィルタリングは、オブジェクト ストアで選択した部分を読み取る最も効率的な方法です。
- ペイロード フィルタリング
- 外部テーブル内のペイロード列には、オブジェクト内のすべての値が含まれます。
- ペイロード フィルタリングでは、オブジェクト ストアのパーティショニング(パスキー)にではなく、データ自体にフィルタを適用します。
- データ内の列にフィルタリングを適用する場合(WHERE Flow > '15'など)、オブジェクト ストア内のすべてのオブジェクトがデータベース内に取り込まれ、フィルタを適用する前に変換する必要があります。
- 選択できる場合、この方法ではオブジェクト ストア レベルとデータベース レベルの両方で大きな労力が発生するため、パス フィルタリングよりも通常は効率が低下します。