View a markdown version of this page

Administración de la compresión basada en diccionarios en Amazon DocumentDB 8.0 - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración de la compresión basada en diccionarios en Amazon DocumentDB 8.0

Amazon DocumentDB 8.0 presenta un nuevo algoritmo de compresión de documentos, Zstd, como una alternativa mejorada a LZ4. Cuando habilita la compresión de diccionarios en una colección de Amazon DocumentDB 8.0 seleccionando Zstd como algoritmo de compresión, se toman muestras de los documentos de su colección para crear un diccionario de compresión personalizado. Los documentos nuevos y actualizados se comprimen con este diccionario y el algoritmo Zstd. Este enfoque generalmente logra relaciones de compresión más altas que los métodos de compresión estándar, especialmente para colecciones con esquemas de documentos consistentes o nombres de campo repetidos.

El LZ4 es un algoritmo diseñado para una compresión y descompresión rápidas. Se sabe que es ligero para la CPU y, al mismo tiempo, logra una compresión notable. Zstd es un algoritmo de uso general que, con la configuración predeterminada, usa más CPU pero logra mejores relaciones de compresión que el LZ4. El uso de diccionarios mejora aún más la compresión de la mayoría de los documentos JSON. Algunas de las ventajas del algoritmo Zstd son:

  • Reducción de los costos de almacenamiento — Los índices de compresión más altos significan un menor uso del almacenamiento y menores costos.

  • • Más bajas I/O — Los documentos comprimidos requieren menos I/O, lo que podría mejorar el rendimiento.

  • Optimizado para tu colección — El diccionario está diseñado específicamente para adaptarse a los patrones de datos de su colección.

nota

Dictionary-based la compresión no se admite en las versiones 3.6, 4.0 y 5.0 de Amazon DocumentDB.

Consideraciones sobre el rendimiento

La compresión Zstd implica las siguientes ventajas y desventajas:

  • Almacenamiento frente a CPU — La compresión Zstd logra mejores ratios de compresión, pero puede consumir un poco más de recursos de CPU en comparación con la compresión LZ4.

  • Compresión inicial — Es posible que las nuevas colecciones no logren una compresión óptima hasta que se inserten suficientes documentos para formar un diccionario eficaz. Actualmente, Amazon DocumentDB entrena un diccionario cuando una colección tiene al menos 100 documentos.

  • Tipo de carga de trabajo — Read-intensive las cargas de trabajo en las que todos los datos caben en la caché del búfer pueden experimentar un aumento en la latencia y el uso de la CPU debido a la sobrecarga de descompresión.

La compresión Zstd es particularmente eficaz para colecciones con documentos pequeños, matrices de documentos y nombres de campo repetidos.

Habilitar la compresión basada en diccionarios

Para las colecciones nuevas, puede usar el siguiente comando para habilitar la compresión Zstd:

db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )

También puedes habilitar o modificar la compresión en una colección existente:

db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })

Para habilitar el algoritmo Zstd en todas las colecciones nuevas de tu clúster, configura el default_collection_compression parámetro del grupo de parámetros de su clúster en zstd.

Introducción

En Amazon DocumentDB 8.0, las nuevas colecciones utilizan la compresión Zstd de forma predeterminada. Para desactivar la compresión de nuevas colecciones, defina default_collection_compression parámetro del grupo de parámetros de tu clúster en disabled.

A partir de Amazon DocumentDB 8.0, enabled ya no es un valor válido para default_collection_compression. Los valores válidos son zstd, lz4 y disabled.

Supervisión

Puede ver la información de compresión de una colección mediante uno de los siguientes comandos:

  • db.RunCommand ({collStats: «myCollection»}) O

  • db.collection.stats ()

Estos comandos muestran estadísticas clave que puedes usar para calcular la relación de compresión:

  • algoritmo de compresión — El algoritmo utilizado (lz4 o zstd)

  • Tamaño de almacenamiento — El almacenamiento real utilizado por la colección, después de la compresión. Tenga en cuenta que este número incluye la fragmentación (es decir, el espacio no utilizado en las páginas de la base de datos)

  • promedioObjSize — El tamaño lógico medio de los documentos de la colección, descomprimidos. Tenga en cuenta que si su colección tiene más de 20 000 documentos, este número será una aproximación basada en una muestra de 20 000 documentos.

  • tamaño — El tamaño lógico de la colección sin compresión. Este número se obtiene multiplicando el promedioObjSize por el número total de documentos de la colección, por lo que si es avgObjSize es una aproximación, este número también será una aproximación.

  • conteo — Número de documentos de la colección

Los siguientes CloudWatch las métricas pueden resultar útiles a la hora de evaluar la compresión basada en diccionarios:

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

Métricas de CollStats:

  • Tamaño de almacenamiento

  • tamaño

Además, puede resultar útil realizar un seguimiento de las métricas específicas de su aplicación, como la latencia y el rendimiento por tipo de consulta o API.