本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理集合级文档压缩
Amazon DocumentDB 集合级文档压缩允许您通过压缩您集合中的文档降低存储成本和 IO 成本。您可以在集合层面启用文档压缩,并通过用压缩指标(例如已压缩文档的存储大小和压缩状态)衡量存储增益,根据需要查看压缩指标。Amazon DocumentDB 使用 LZ4 压缩算法压缩诸文档。
Amazon DocumentDB 从版本 5.0 开始支持文档压缩。以下是集合级文档压缩功能:
默认行为 - 集群上新集合的默认压缩设置取决于集群参数
default_collection_compression
。默认情况下,该参数设置为“禁用”。压缩现有集合 - 可以使用
collMod
命令更改现有集合的压缩设置。更改压缩阈值 - 默认压缩阈值为 2 KB。可以使用
createCollection
命令为新集合指定此值,也可以使用collMod
命令为现有集合更改此值。
注意
Amazon DocumentDB 版本 3.6 和 4.0 不支持 Amazon DocumentDB 文档压缩。
管理文档压缩
在集合中启用文档压缩
使用 db.createCollection()
方法在 Amazon 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 - 压缩后集合的存储空间大小。计量单位是字节。
启用 - 指示压缩是启用还是禁用。
要计算实际压缩率,请将集合大小除以存储空间大小(大小/storageSize)。对于以上示例,计算结果为 3906.3/1953.1,这转换成 2:1 压缩率。