Gestion de la compression de documents au niveau de la collection - Amazon DocumentDB

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 de documents au niveau de la collection

La compression de documents au niveau des collections Amazon DocumentDB vous permet de réduire les coûts de stockage et d'E/S en compressant les documents de vos collections. Vous pouvez activer la compression de documents au niveau de la collection et consulter les mesures de compression selon les besoins en mesurant les gains de stockage grâce à des mesures de compression telles que la taille de stockage des documents compressés et l'état de compression. Amazon DocumentDB utilise l'algorithme de LZ4 compression pour compresser les documents.

Amazon DocumentDB prend en charge la compression de documents à partir de la version 5.0. Les fonctions de compression de documents au niveau de la collection sont les suivantes :

  • Comportement par défaut : le paramètre de compression par défaut pour les nouvelles collections d'un cluster est déterminé par le paramètre du clusterdefault_collection_compression. Ce paramètre est défini sur « désactivé » par défaut.

  • Compression des collections existantes : le paramètre de compression des collections existantes peut être modifié à l'aide de la collMod commande.

  • Modification du seuil de compression — Le seuil de compression par défaut est de 2 Ko. Cette valeur peut être spécifiée pour les nouvelles collections à l'aide de la createCollection commande, et modifiée pour les collections existantes à l'aide de collMod la commande.

Note

La compression de documents Amazon DocumentDB n'est pas prise en charge sur les versions 3.6 et 4.0 d'Amazon DocumentDB.

Gestion de la compression des documents

Activation de la compression de documents dans une collection

Activez la compression de documents lors de la création d'une collection onAmazon DocumentDB en utilisant db.createCollection() la méthode :

db.createCollection( sample_collection,{ storageEngine : { documentDB: { compression:{enable: <true | false>} } } })

Activation de la compression de documents dans un cluster

La compression de documents peut être activée par défaut pour toutes les nouvelles collections au niveau d'un cluster en définissant le paramètre default_collection_compression du cluster sur « activé ». Lorsque ce paramètre est défini sur « activé », les collections nouvellement créées sur le cluster auront la compression activée par défaut avec un seuil de compression de 2 Ko.

Compression des collections existantes

Vous pouvez également modifier les paramètres de compression d'une collection existante à l'aide de l'collModopération et en spécifiant la storageEngine configuration suivante. Veuillez noter que les modifications apportées à l'aide de cette commande ne s'appliqueront qu'aux documents récemment insérés/mis à jour et que la compression des documents précédemment insérés ne changera pas.

db.runCommand({ collMod: "orders", storageEngine: { documentDB: {compression: {enable: <true | false>} } } })

Définition des seuils de compression

Par défaut, le seuil de compression pour les collections compressées est de 2 032 octets. Cette valeur de seuil peut être définie dans la createCollection commande lors de la création d'une nouvelle collection avec la compression activée :

db.createCollection( sample_collection, { storageEngine : { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })

Vous pouvez également modifier le seuil de compression d'une collection compressée existante à l'aide de l'collModopération et en spécifiant la storageEngine configuration suivante :

db.runCommand({ collMod: "orders", storageEngine: { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })

Notez que le seuil de compression ne peut être défini que sur une valeur comprise entre 128 et 8 000 octets. En outre, l'enableoption doit être définie sur « true » lors de la spécification du seuil de compression.

Surveillance de la compression des documents

Vous pouvez vérifier si une collection est compressée et calculer son taux de compression comme suit.

Consultez les statistiques de compression en exécutant la db.collection.stats() commande db.printCollectionStats() or depuis le shell mongo. La sortie indique la taille d'origine et la taille compressée que vous pouvez comparer pour analyser les gains de stockage liés à la compression de documents. Dans cet exemple, les statistiques d'une collection nommée « sample_collection » sont présentées ci-dessous. Un facteur d'échelle de 1024 x 1024 est utilisé ci-dessous pour afficher les storageSize valeurs size et en Mo.

db.sample_collection.stats(1024*1024)

Voici un exemple du résultat de la commande ci-dessus :

{ "ns" : "test.sample_collection", "count" : 1000000, "size" : 3906.3, "avgObjSize" : 4096, "storageSize" : 1953.1, compression:{"enabled" : true,"threshold" : 2032}, ... }
  • taille : taille d'origine de la collection de documents.

  • avgObjSize- La taille moyenne du document avant compression est arrondie à la première décimale. L'unité de mesure est l'octet.

  • storageSize- La taille de stockage de la collection après compression. L'unité de mesure est l'octet.

  • activé - Indique si la compression est activée ou désactivée.

Pour calculer le taux de compression réel, divisez la taille de la collection par la taille de stockage (taille/storageSize). Dans l'exemple ci-dessus, le calcul est 3906,3/1953,1, ce qui correspond à un taux de compression de 2:1.