Verwaltung der wörterbuchbasierten Komprimierung in Amazon DocumentDB 8.0 - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung der wörterbuchbasierten Komprimierung in Amazon DocumentDB 8.0

Amazon DocumentDB 8.0 führt einen neuen Algorithmus zur Dokumentenkomprimierung, zstd, als verbesserte Alternative zu ein. LZ4 Wenn Sie die Wörterbuchkomprimierung für eine Amazon DocumentDB 8.0-Sammlung aktivieren, indem Sie Zstd als Komprimierungsalgorithmus auswählen, werden Dokumente aus Ihrer Sammlung ausgewählt, um ein benutzerdefiniertes Komprimierungswörterbuch zu erstellen. Neue und aktualisierte Dokumente werden mit diesem Wörterbuch und dem zstd-Algorithmus komprimiert. Mit diesem Ansatz werden in der Regel höhere Komprimierungsraten erzielt als mit Standardkomprimierungsmethoden, insbesondere bei Sammlungen mit konsistenten Dokumentschemas oder wiederholten Feldnamen.

Lz4 ist ein Algorithmus, der für schnelle Komprimierung und Dekomprimierung entwickelt wurde. Es ist bekannt, dass er die CPU wenig belastet und gleichzeitig eine spürbare Komprimierung erreicht. Zstd ist ein Allzweckalgorithmus, der mit Standardeinstellungen mehr CPU verbraucht, aber bessere Komprimierungsraten als lz4 erzielt. Die Verwendung von Wörterbüchern verbessert die Komprimierung für die meisten JSON-Dokumente noch weiter. Einige Vorteile des Zstd-Algorithmus sind:

  • Geringere Speicherkosten: Höhere Komprimierungsraten bedeuten weniger Speicherverbrauch und niedrigere Kosten.

  • NiedrigereI/O: Compressed documents require less I/O, potenziell bessere Leistung.

  • Optimiert für Ihre Sammlung: Das Wörterbuch wurde speziell für die Datenmuster Ihrer Sammlung trainiert.

Anmerkung

Wörterbuchbasierte Komprimierung wird in den Amazon DocumentDB DocumentDB-Versionen 3.6, 4.0 und 5.0 nicht unterstützt.

Performanceaspekte

Die Zstd-Komprimierung beinhaltet die folgenden Kompromisse:

  • Speicher im Vergleich zur CPU: Durch die Zstd-Komprimierung werden bessere Komprimierungsraten erzielt, im Vergleich zur Komprimierung werden jedoch möglicherweise etwas mehr CPU-Ressourcen beansprucht. LZ4

  • Anfängliche Komprimierung: Neue Sammlungen erreichen möglicherweise erst dann eine optimale Komprimierung, wenn genügend Dokumente eingefügt wurden, um ein effektives Wörterbuch zu trainieren. Derzeit wird ein Wörterbuch trainiert, wenn die Sammlung mindestens 100 Dokumente enthält.

  • Workload-Typ: Bei leseintensiven Workloads, bei denen die gesamten Daten in den Puffercache passen, kann es aufgrund des Dekomprimierungsaufwands zu einem Anstieg der Latenz und der CPU-Auslastung kommen.

Die Zstd-Komprimierung ist besonders effektiv für Sammlungen mit kleinen Dokumenten, Dokumentarrays und sich wiederholenden Feldnamen.

Aktivierung der wörterbuchbasierten Komprimierung

Für neue Sammlungen können Sie den folgenden Befehl verwenden, um die Zstd-Komprimierung zu aktivieren:

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

Sie können die Komprimierung auch für eine bestehende Sammlung aktivieren oder ändern:

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

Um den Zstd-Algorithmus für alle Sammlungen auf Ihrem Cluster zu aktivieren, können Sie die Cluster-Parametergruppe so ändern, dass „zstd“ als Wert für den Parameter „default_collection_compression“ ausgewählt wird.

Erste Schritte

Bei Amazon DocumentDB 8.0 ist die Zstd-Komprimierung standardmäßig aktiviert. Sie können sie jederzeit ausschalten, indem Sie den Wert von 'default_compression' in Ihrer Cluster-Parametergruppe auf disabled setzen. Es muss beachtet werden, dass ab Amazon DocumentDB 8.0 'enabled' keine gültige Wahl mehr für default_compression ist und Sie zwischen Zstd und wählen müssen. LZ4

Überwachen

Sie können die Komprimierungsinformationen für eine Sammlung mit einem der folgenden Befehle anzeigen:

  • db.runCommand ({collStats: „MyCollection“}) ODER

  • db.collection.stats ()

Diese Befehle geben wichtige Statistiken zurück, anhand derer Sie das Kompressionsverhältnis berechnen können:

  • compression.algorithm: Der verwendete Algorithmus („lz4" oder „zstd“)

  • StorageSize: Der tatsächliche Speicherplatz, der von der Sammlung nach der Komprimierung verwendet wird. Beachten Sie, dass diese Zahl die Fragmentierung (d. h. den ungenutzten Speicherplatz auf Datenbankseiten) beinhaltet

  • avgObjSize: Die durchschnittliche logische Größe der Dokumente der Sammlung, dekomprimiert. Beachten Sie: Wenn Ihre Sammlung mehr als 20.000 Dokumente umfasst, handelt es sich bei dieser Zahl um eine ungefähre Zahl, die auf einer Stichprobe von 20.000 Dokumenten basiert.

  • Größe: Die logische Größe der Sammlung ohne Komprimierung. Diese Zahl ergibt sich aus der avgObjSize Multiplikation mit der Gesamtzahl der Dokumente in der Sammlung. Wenn avgObjSize es sich also um eine Näherung handelt, ist diese Zahl auch eine Näherung.

  • Anzahl: Anzahl der Dokumente in der Sammlung

Die folgenden CloudWatch Messwerte können bei der Bewertung der wörterbuchbasierten Komprimierung hilfreich sein:

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

CollStats-Metriken:

  • storageSize

  • size

Darüber hinaus kann es nützlich sein, anwendungsspezifische Kennzahlen wie Latenz und Durchsatz pro Abfragetyp oder API im Auge zu behalten.