管理集合级文档压缩 - Amazon DocumentDB

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理集合级文档压缩

Amazon DocumentDB 集合级文档压缩允许您通过压缩您集合中的文档降低存储成本和 IO 成本。您可以在集合层面启用文档压缩,并通过用压缩指标(例如已压缩文档的存储大小和压缩状态)衡量存储增益,根据需要查看压缩指标。Amazon DocumentDB 使用LZ4压缩算法来压缩文档。

从 5.0 版本开始,亚马逊 DocumentDB 支持文档压缩。以下是集合级别的文档压缩函数:

  • 默认行为-群集上新集合的默认压缩设置由群集参数确定default_collection_compression。默认情况下,此参数设置为 “禁用”。

  • 压缩现有集合-可以使用collMod命令更改现有集合的压缩设置。

  • 更改压缩阈值-默认压缩阈值为 2KB。可以使用createCollection命令为新集合指定此值,也可以使用 command 为现有集合更改此值。collMod

注意

亚马逊 DocumentDB 3.6 和 4.0 版本不支持亚马逊 DocumentDB 文档压缩。

管理文档压缩

在集合中启用文档压缩

使用db.createCollection()以下方法在创建集合 Document onAmazon DB 时启用文档压缩:

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 的缩放系数来输出以 MB 为单位的sizestorageSize值。

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 压缩率。