コレクションレベルのドキュメント圧縮の管理 - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コレクションレベルのドキュメント圧縮の管理

Amazon DocumentDB のコレクションレベルのドキュメント圧縮では、コレクション内のドキュメントを圧縮することで、ストレージと IO のコストを削減できます。コレクションレベルでのドキュメント圧縮を有効にし、圧縮ドキュメントのストレージサイズや圧縮ステータスなどの圧縮メトリクスに基づいて得られたストレージを測定することで、必要に応じて圧縮メトリクスを確認できます。Amazon DocumentDB は、LZ4圧縮アルゴリズムを使用してドキュメントを圧縮します。

Amazon DocumentDB は、バージョン 5.0 以降のドキュメント圧縮をサポートしています。コレクションレベルのドキュメント圧縮関数は次のとおりです。

  • デフォルトの動作 — クラスター上の新しいコレクションのデフォルトの圧縮設定は、クラスターパラメータ によって決まりますdefault_collection_compression。このパラメータはデフォルトで「無効」に設定されています。

  • 既存のコレクションの圧縮 — 既存のコレクションの圧縮設定は、 collMod コマンドを使用して変更できます。

  • 圧縮しきい値の変更 — デフォルトの圧縮しきい値は 2KBです。この値は、 createCollection コマンドを使用して新しいコレクションに指定し、 collMod コマンドを使用して既存のコレクションに変更できます。

注記

Amazon DocumentDB ドキュメントの圧縮は、Amazon DocumentDB バージョン 3.6 および 4.0 ではサポートされていません。

ドキュメント圧縮の管理

コレクションでのドキュメント圧縮の有効化

db.createCollection() メソッドを使用してコレクション onAmazon DocumentDB を作成するときにドキュメント圧縮を有効にします。

db.createCollection( sample_collection,{ storageEngine : { documentDB: { compression:{enable: <true | false>} } } })

クラスターでのドキュメント圧縮の有効化

クラスターパラメータを「enableddefault_collection_compression」に設定することで、クラスターレベルですべての新しいコレクションに対してドキュメント圧縮をデフォルトで有効にできます。このパラメータを「有効」に設定すると、クラスターで新しく作成されたコレクションでは、デフォルトで圧縮が有効になり、圧縮しきい値は 2 KB になります。

既存のコレクションの圧縮

また、 collModオペレーションを使用し、次の設定を指定して、既存のコレクションの圧縮storageEngine設定を変更することもできます。このコマンドを使用して行われた変更は、新しく挿入/更新されたドキュメントにのみ適用され、以前に挿入されたドキュメントの圧縮は変更されないことに注意してください。

db.runCommand({ collMod: "orders", storageEngine: { documentDB: {compression: {enable: <true | false>} } } })

圧縮しきい値の設定

デフォルトでは、圧縮コレクションの圧縮しきい値は 2032 バイトです。このしきい値は、圧縮を有効にして新しいコレクションを作成するときに、 createCollection コマンドで設定できます。

db.createCollection( sample_collection, { storageEngine : { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })

collMod オペレーションを使用して次のstorageEngine設定を指定することで、既存の圧縮コレクションの圧縮しきい値を変更することもできます。

db.runCommand({ collMod: "orders", storageEngine: { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })

圧縮しきい値は 128~8000 バイトの値にのみ設定できることに注意してください。さらに、圧縮しきい値を指定するときは、 enableオプションを「true」に設定する必要があります。

ドキュメント圧縮のモニタリング

コレクションが圧縮されているかどうかを確認し、圧縮率を求める方法は次の通りです。

mongo シェルから db.printCollectionStats() または db.collection.stats() コマンドを実行して圧縮統計を表示します。出力に元のサイズと圧縮サイズが表示されるため、両者を比較してドキュメント圧縮によって得られたストレージを分析できます。この例では、「sample_collection」という名前のコレクションの統計を以下に示します。以下では、スケーリング係数 1024*1024 を使用して、 sizeおよび のstorageSize値を MB 単位で出力します。

db.sample_collection.stats(1024*1024)

上記のコマンドの出力例を次に示します。

{ "ns" : "test.sample_collection", "count" : 1000000, "size" : 3906.3, "avgObjSize" : 4096, "storageSize" : 1953.1, compression:{"enabled" : true,"threshold" : 2032}, ... }
  • size: ドキュメントコレクションの元のサイズ。

  • avgObjSize - 圧縮前の平均ドキュメントサイズは、小数第 1 位に切り捨てられます。測定単位はバイト。

  • storageSize - 圧縮後のコレクションのストレージサイズ。測定単位はバイト。

  • enabled: 圧縮の有効/無効を示します。

実際の圧縮率を計算するには、コレクションサイズをストレージサイズ (サイズ/) で割りますstorageSize。上記の例の場合、計算は 3906.3/1953.1 で、これは 2:1 の圧縮率に相当します。