本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理集合層級文件壓縮
Amazon DocumentDB 集合層級文件壓縮可讓您壓縮集合中的文件,以降低儲存體和 IO 成本。您可以在集合層級啟用文件壓縮,並根據需要檢視壓縮指標,方法是透過壓縮文件的儲存大小和壓縮狀態等壓縮指標來測量儲存增益。Amazon DocumentDB 使用LZ4壓縮演算法壓縮文件。
Amazon DocumentDB 支援從 5.0 版開始的文件壓縮。以下是集合層級文件壓縮函數:
預設行為 — 叢集上新集合的預設壓縮設定是由叢集參數 決定
default_collection_compression
。此參數預設為「停用」。壓縮現有集合 — 可以使用
collMod
命令變更現有集合的壓縮設定。變更壓縮閾值 — 預設壓縮閾值為 2KB 。可以使用
createCollection
命令為新集合指定此值,並使用collMod
命令為現有集合變更此值。
注意
Amazon DocumentDB 3.6 版和 4.0 版不支援 Amazon DocumentDB 文件壓縮。
管理文件壓縮
在集合中啟用文件壓縮
使用下列db.createCollection()
方法在建立集合 onAmazon DocumentDB 時啟用文件壓縮:
db.createCollection( sample_collection,{ storageEngine : { documentDB: { compression:{enable: <true | false>} } } })
在叢集中啟用文件壓縮
叢集層級上的所有新集合預設都可以啟用文件壓縮,方法是將叢集參數設定為default_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 shell 執行 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},
...
}
大小 - 文件集合的原始大小。
avgObjSize - 壓縮前的平均文件大小四捨五入為第一個小數。測量單位為 位元組。
storageSize - 壓縮後的集合儲存體大小。測量單位為 位元組。
已啟用 - 指示是否啟用或停用壓縮。
若要計算實際壓縮比率,請將集合大小除以儲存大小 (size/storageSize)。針對上述範例,計算為 3906.3/1953.1,其轉換為 2:1 壓縮率。