Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion de la compression basée sur un dictionnaire dans Amazon DocumentDB 8.0
Amazon DocumentDB 8.0 introduit un nouvel algorithme de compression de documents, Zstd, en tant qu'alternative améliorée à LZ4. Lorsque vous activez la compression du dictionnaire sur une collection Amazon DocumentDB 8.0 en sélectionnant Zstd comme algorithme de compression, les documents de votre collection sont échantillonnés pour créer un dictionnaire de compression personnalisé. Les documents nouveaux et mis à jour sont compressés à l'aide de ce dictionnaire et de l'algorithme Zstd. Cette approche permet généralement d'obtenir des taux de compression plus élevés que les méthodes de compression standard, en particulier pour les collections comportant des schémas de documents cohérents ou des noms de champs répétés.
LZ4 est un algorithme conçu pour une compression et une décompression rapides. Il est connu pour être léger sur le processeur tout en obtenant une compression notable. Zstd est un algorithme polyvalent qui, avec ses paramètres par défaut, utilise plus de processeur mais atteint de meilleurs taux de compression que le LZ4. L'utilisation de dictionnaires améliore encore la compression pour la plupart des documents JSON. Certains avantages de l'algorithme Zstd sont les suivants :
Coûts de stockage réduits — Des taux de compression plus élevés permettent de réduire l'utilisation de l'espace de stockage et les coûts.
Plus bas I/O — Les documents compressés nécessitent moins I/O, ce qui pourrait améliorer les performances.
Optimisé pour votre collection — Le dictionnaire est spécialement conçu pour les modèles de données de votre collection.
Note
Dictionary-based la compression n'est pas prise en charge sur les versions 3.6, 4.0 et 5.0 d'Amazon DocumentDB.
Considérations relatives aux performances
La compression Zstd implique les compromis suivants :
Stockage par rapport au processeur — La compression Zstd permet d'obtenir de meilleurs taux de compression mais peut utiliser un peu plus de ressources CPU que la compression LZ4.
Compression initiale — Les nouvelles collections peuvent ne pas atteindre une compression optimale tant que suffisamment de documents ne sont pas insérés pour former un dictionnaire efficace. Actuellement, Amazon DocumentDB génère un dictionnaire lorsqu'une collection contient au moins 100 documents.
Type de charge de travail — Read-intensive les charges de travail dont l'intégralité des données se trouve dans le cache tampon peuvent connaître une augmentation de la latence et de l'utilisation du processeur en raison de la surcharge de décompression.
La compression Zstd est particulièrement efficace pour les collections contenant de petits documents, des tableaux de documents et des noms de champs répétés.
Activation de la compression basée sur un dictionnaire
Pour les nouvelles collections, vous pouvez utiliser la commande ci-dessous pour activer la compression Zstd :
db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )
Vous pouvez également activer ou modifier la compression sur une collection existante :
db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })
Pour activer l'algorithme Zstd pour toutes les nouvelles collections de votre cluster, définissez default_collection_compression paramètre dans votre groupe de paramètres de cluster pour zstd.
Démarrage
Dans Amazon DocumentDB 8.0, les nouvelles collections utilisent la compression Zstd par défaut. Pour désactiver la compression pour les nouvelles collections, définissez default_collection_compression paramètre dans votre groupe de paramètres de cluster pour disabled.
À partir d'Amazon DocumentDB 8.0, enabled n'est plus une valeur valide pour default_collection_compression. Les valeurs valides sont zstd, lz4 et disabled.
Contrôle
Vous pouvez consulter les informations de compression d'une collection à l'aide de l'une des commandes suivantes :
DB.RunCommand ({CollStats : « MyCollection »}) OU
db.collection.stats ()
Ces commandes renvoient des statistiques clés que vous pouvez utiliser pour calculer le taux de compression :
algorithme de compression — L'algorithme utilisé (
lz4ouzstd)Taille de stockage — Le stockage réellement utilisé par la collection, après compression. Notez que ce nombre inclut la fragmentation (c'est-à-dire l'espace inutilisé dans les pages de base de données)
avgObjSize — Taille logique moyenne des documents de la collection, décompressés. Notez que si votre collection contient plus de 20 000 documents, ce nombre sera une approximation basée sur un échantillon de 20 000 documents.
taille — Taille logique de la collection sans compression. Ce nombre est obtenu en multipliant la moyenneObjSize par le nombre total de documents de la collection, donc si la moyenneObjSize est une approximation, ce nombre sera également une approximation.
compter — Nombre de documents de la collection
Les suivants CloudWatch les métriques peuvent être utiles lors de l'évaluation de la compression basée sur un dictionnaire :
CPUUtilization
FreeableMemory
VolumeBytesUsed
VolumeReadIOPs
VolumeWriteIOPs
Métriques CollStats :
Taille de stockage
size
En outre, il peut être utile de suivre les indicateurs spécifiques à votre application, tels que la latence et le débit par type de requête ou API.