Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione della compressione basata su dizionari in Amazon DocumentDB 8.0
Amazon DocumentDB 8.0 introduce un nuovo algoritmo di compressione dei documenti, zstd, come alternativa migliorata a. LZ4 Quando abiliti la compressione del dizionario su una raccolta Amazon DocumentDB 8.0 selezionando Zstd come algoritmo di compressione, i documenti della tua raccolta vengono campionati per creare un dizionario di compressione personalizzato. I documenti nuovi e aggiornati vengono compressi utilizzando questo dizionario e l'algoritmo zstd. Questo approccio consente in genere di ottenere rapporti di compressione più elevati rispetto ai metodi di compressione standard, in particolare per le raccolte con schemi di documenti coerenti o nomi di campo ripetuti.
Lz4 è un algoritmo progettato per una compressione e una decompressione rapide. È noto per essere leggero sulla CPU pur ottenendo una compressione evidente. Zstd è un algoritmo generico che con le impostazioni predefinite utilizza più CPU ma raggiunge rapporti di compressione migliori rispetto a lz4. L'uso dei dizionari migliora ulteriormente la compressione per la maggior parte dei documenti JSON. Alcuni vantaggi dell'algoritmo Zstd sono:
Costi di archiviazione ridotti: rapporti di compressione più elevati significano un minore utilizzo dello storage e costi inferiori.
Prestazioni inferiori I/O: Compressed documents require less I/O e potenzialmente migliorative.
Ottimizzato per la tua raccolta: il dizionario è addestrato specificamente per i modelli di dati della tua raccolta.
Nota
La compressione basata su dizionario non è supportata nelle versioni 3.6, 4.0 e 5.0 di Amazon DocumentDB.
Considerazioni sulle prestazioni
La compressione Zstd comporta i seguenti compromessi:
Storage vs. CPU: la compressione Zstd raggiunge rapporti di compressione migliori ma può utilizzare un po' più risorse della CPU rispetto alla compressione. LZ4
Compressione iniziale: è possibile che le nuove raccolte non raggiungano una compressione ottimale finché non vengono inseriti abbastanza documenti per addestrare un dizionario efficace. Attualmente, un dizionario viene addestrato se raccoglie almeno 100 documenti.
Tipo di carico di lavoro: i carichi di lavoro ad alta intensità di lettura in cui tutti i dati vengono inseriti nella cache buffer possono registrare un aumento della latenza e dell'utilizzo della CPU a causa del sovraccarico di decompressione.
La compressione Zstd è particolarmente efficace per raccolte con documenti di piccole dimensioni, matrici di documenti e nomi di campo ripetuti.
Attivazione della compressione basata su dizionari
Per le nuove raccolte puoi usare il comando seguente per abilitare la compressione Zstd:
db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )
Puoi anche abilitare o modificare la compressione su una raccolta esistente:
db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })
Per abilitare l'algoritmo Zstd in tutte le raccolte del cluster, puoi modificare il gruppo di parametri del cluster per selezionare «zstd» come valore per il parametro «default_collection_compression».
Nozioni di base
Amazon DocumentDB 8.0 viene fornito con la compressione Zstd attivata per impostazione predefinita. Puoi sempre disattivarla impostando il valore di 'default_compression' su disabilitato nel gruppo di parametri del cluster. Va notato che a partire da Amazon DocumentDB 8.0, 'enabled' non è più una scelta valida per default_compression ed è necessario selezionare tra Zstd e. LZ4
Monitoraggio
È possibile visualizzare le informazioni di compressione per una raccolta utilizzando uno dei seguenti comandi:
db.runCommand ({collStats: «myCollection»}) OPPURE
db.collection.stats ()
Questi comandi restituiscono statistiche chiave che è possibile utilizzare per calcolare il rapporto di compressione:
compression.algorithm: L'algoritmo utilizzato («lz4" o «zstd»)
StorageSize: lo spazio di archiviazione effettivo utilizzato dalla raccolta, dopo la compressione. Nota che questo numero include la frammentazione (ovvero lo spazio inutilizzato nelle pagine del database)
avgObjSize: dimensione logica media dei documenti della raccolta, decompressi. Tieni presente che se la tua raccolta contiene più di 20.000 documenti, questo numero sarà un'approssimazione basata su un campione di 20.000 documenti.
dimensione: la dimensione logica della raccolta senza compressione. Questo numero si ottiene avgObjSize moltiplicando per il numero totale di documenti della raccolta, quindi se avgObjSize è un'approssimazione, anche questo numero sarà un'approssimazione.
conteggio: numero di documenti nella raccolta
Le seguenti CloudWatch metriche possono essere utili per valutare la compressione basata sul dizionario:
CPUUtilization
FreeableMemory
VolumeBytesUsed
VolumeReadIOPs
VolumeWriteIOPs
Metriche CollStats:
storageSize
formato
Inoltre, può essere utile tenere traccia delle metriche specifiche dell'applicazione, come la latenza e il throughput per tipo di query o API.