View a markdown version of this page

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 LZ4 ein. 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 entnommen, 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 als bei Standardkomprimierungsmethoden erreicht, 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 schonen und gleichzeitig eine spürbare Komprimierung erreicht. Zstd ist ein Allzweckalgorithmus, der mit den Standardeinstellungen mehr CPU verbraucht, aber bessere Komprimierungsraten als LZ4 erreicht. Die Verwendung von Wörterbüchern verbessert die Komprimierung für die meisten JSON-Dokumente noch weiter. Einige Vorteile des Zstd-Algorithmus sind:

  • Reduzierte Speicherkosten — Höhere Komprimierungsraten bedeuten weniger Speicherverbrauch und geringere Kosten.

  • Niedriger I/O — Komprimierte Dokumente benötigen weniger I/O, was möglicherweise die Leistung verbessert.

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

Anmerkung

Dictionary-based Die Komprimierung wird in den Amazon DocumentDB-Versionen 3.6, 4.0 und 5.0 nicht unterstützt.

Leistungsaspekte

Die Zstd-Komprimierung beinhaltet die folgenden Kompromisse:

  • Speicher im Vergleich zu CPU — Bei der Zstd-Komprimierung werden bessere Komprimierungsraten erzielt, im Vergleich zur LZ4-Komprimierung werden jedoch möglicherweise etwas mehr CPU-Ressourcen beansprucht.

  • 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 trainiert Amazon DocumentDB ein Wörterbuch, wenn eine Sammlung mindestens 100 Dokumente umfasst.

  • Art der Arbeitslast — Read-intensive Bei Workloads, bei denen die gesamten Daten in den Puffer-Cache passen, kann es aufgrund des Dekomprimierungsaufwands zu einer Erhöhung der Latenz und der CPU-Auslastung kommen.

Die Zstd-Komprimierung ist besonders effektiv für Sammlungen mit kleinen Dokumenten, Dokumentarrays und wiederholten 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 neuen Sammlungen in Ihrem Cluster zu aktivieren, setzen Sie den default_collection_compression Parameter in Ihrer Cluster-Parametergruppe auf zstd.

Erste Schritte

In Amazon DocumentDB 8.0 verwenden neue Sammlungen standardmäßig die Zstd-Komprimierung. Um die Komprimierung für neue Sammlungen zu deaktivieren, setzen Sie den default_collection_compression Parameter in Ihrer Cluster-Parametergruppe auf disabled.

Beginnend mit Amazon DocumentDB 8.0, enabled ist kein gültiger Wert mehr für default_collection_compression. Die gültigen Werte sind zstd, lz4 und disabled.

Ü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, die Sie zur Berechnung des Komprimierungsverhältnisses verwenden können:

  • Komprimierungsalgorithmus — Der verwendete Algorithmus (lz4 oder zstd)

  • Größe des Speichers — Der tatsächliche Speicher, der von der Sammlung nach der Komprimierung verwendet wird. Beachten Sie, dass diese Zahl die Fragmentierung beinhaltet (d. h. den ungenutzten Speicherplatz auf Datenbankseiten)

  • Durchschn.ObjSize — Die durchschnittliche logische Größe der Dokumente der Sammlung, dekomprimiert. Beachten Sie, dass, wenn Ihre Sammlung mehr als 20.000 Dokumente umfasst, diese Zahl eine ungefähre Zahl ist, 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 Multiplikation von avgObjSize mit der Gesamtzahl der Dokumente in der Sammlung, also wennObjSize ist eine Annäherung, diese Zahl wird auch eine Annäherung sein.

  • Graf — Anzahl der Dokumente in der Sammlung

Folgendes CloudWatch Metriken können bei der Bewertung der wörterbuchbasierten Komprimierung hilfreich sein:

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

CollStats-Metriken:

  • Größe des Speichers

  • size

Darüber hinaus kann es nützlich sein, die für Ihre Anwendung spezifischen Metriken wie Latenz und Durchsatz pro Abfragetyp oder API im Auge zu behalten.