Wartung von Tabellen - Amazon Simple Storage Service

Wartung von Tabellen

S3 Tables bietet Wartungsvorgänge zur Verbesserung der Verwaltung und Leistung Ihrer einzelnen Tabellen an. Die folgenden Optionen sind standardmäßig für alle Tabellen in Tabellen-Buckets aktiviert. Sie können sie bearbeiten oder deaktivieren, indem Sie Wartungskonfigurationsdateien für Ihre S3 Table angeben.

Für die Bearbeitung dieser Konfiguration sind die Berechtigungen s3tables:GetTableMaintenanceConfiguration und s3tables:PutTableMaintenanceConfiguration erforderlich.

Anmerkung

Sie können die automatisierten Wartungsvorgänge von S3 Tables für Ihre Tabellen über CloudTrail-Protokolle verfolgen. Weitere Informationen finden Sie unter CloudTrail-Verwaltungsereignisse für die Wartung von S3 Tables .

Komprimierung

Die Komprimierung wird auf Tabellenebene konfiguriert und kombiniert mehrere kleinere Objekte zu weniger größeren Objekten, um die Apache Iceberg Abfrageleistung zu verbessern. Beim Kombinieren von Objekten überträgt die Komprimierung auch die Auswirkungen von Löschungen auf Zeilenebene in Ihrer Tabelle.

Die Verdichtung ist standardmäßig für alle Tabellen aktiviert, mit einer Standardziel-Dateigröße von 512 MB oder einem benutzerdefinierten Wert zwischen 64 MB und 512 MB. Die komprimierten Dateien werden als der neueste Snapshot Ihrer Tabelle geschrieben.

Anmerkung

Die Komprimierung wird nur für Apache Parquet-, Avro- und ORC-Dateitypen unterstützt.

Strategien für eine Verdichtung

Sie können aus mehreren Komprimierungsstrategien wählen, die die Abfrageleistung je nach Ihren Abfragemustern und der Sortierreihenfolge der Tabellen weiter erhöhen können.

S3 Tables unterstützt die folgenden Verdichtungsstrategien für Tabellen:

  • Auto (Standard)

    • Amazon S3 wählt auf der Grundlage Ihrer Tabellensortierreihenfolge die beste Verdichtungsstrategie aus. Dies ist die Standardkomprimierungsstrategie für alle Tabellen.

    • Bei Tabellen, deren Metadaten eine definierte Sortierreihenfolge enthalten, wird auto automatisch eine sort-Verdichtung durchführen.

    • Bei Tabellen ohne Sortierreihenfolge wird auto standardmäßig die binpack-Verdichtung verwenden.

  • Binpack

    • Kombiniert kleine Dateien zu größeren Dateien und zielt in der Regel auf Größen über 100 MB ab. Dabei werden alle ausstehenden Löschungen angewendet. Dies ist die Standardkomprimierungsstrategie für unsortierte Tabellen.

  • Sortierung

    • Organisiert Daten auf der Grundlage festgelegter Spalten, die während der Verdichtung automatisch nach Hierarchie sortiert werden, wodurch die Abfrageleistung für gefilterte Vorgänge verbessert wird. Diese Strategie wird empfohlen, wenn Sie mit Ihren Abfragen häufig nach bestimmten Spalten filtern. Wenn Sie diese Strategie verwenden, wendet S3 Tables automatisch eine hierarchische Sortierung auf Spalten an, wenn a in den Tabelleneigenschaften definiert sort_order ist.

  • Z-Reihenfolge

    • Optimiert die Datenorganisation, indem mehrere Attribute zu einem einzigen Skalarwert zusammengefasst werden, der für die Sortierung verwendet werden kann, wodurch effizientes Abfragen über mehrere Dimensionen hinweg ermöglicht wird. Diese Strategie wird empfohlen, wenn Sie Daten über mehrere Dimensionen hinweg gleichzeitig abfragen müssen. Diese Strategie erfordert, dass Sie in den Eigenschaften Ihrer Iceberg-Tabelle mithilfe der sort_order-Tabelleneigenschaft eine Sortierreihenfolge festlegen.

Die Verdichtung verursacht zusätzliche Kosten. Die Komprimierungsstrategien z-order und sort können höhere Kosten verursachen als binpack. Weitere Informationen finden Sie in den Preisinformationen unter Amazon S3 – Preise.

Beispiele für eine Verdichtung

Die folgenden Beispiele zeigen die Konfigurationen für eine Tabellendichtung.

So konfigurieren Sie die Größe der Zieldatei für eine Komprimierung über die AWS CLI

Die Mindestgröße der Zielkomprimierungsdatei beträgt 64 MB, die maximale Größe 512 MB.

Im folgenden Beispiel wird die Zieldateigröße mithilfe der PutTableMaintenanceConfiguration-API auf 256 MB geändert.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'

Weitere Informationen finden Sie unter put-table-maintenance-configuration in der Referenz zum AWS CLI-Befehl.

So konfigurieren Sie die Verdichtung mit der AWS CLI

Das folgende Beispiel ändert die Komprimierungsstrategie mithilfe der PutTableMaintenanceConfiguration-API auf sort. Bei der Festlegung der Komprimierung können Sie zwischen folgenden Komprimierungsstrategien wählen: auto, binpack, sort oder z-order

Anmerkung

Um die Komprimierungsstrategie auf sort oder z-order festzulegen, müssen die folgenden Voraussetzungen erfüllt sein:

  • Eine in Ihren Iceberg-Tabelleneigenschaften definierte Sortierreihenfolge.

  • Die s3tables:GetTableData-Berechtigung

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"enabled","settings":{"icebergCompaction":{"strategy":"sort"}}}'

Weitere Informationen finden Sie unter put-table-maintenance-configuration in der Referenz zum AWS CLI-Befehl.

So deaktivieren Sie die Komprimierung mit der AWS CLI

Im folgenden Beispiel wird die Komprimierung mithilfe der PutTableMaintenanceConfiguration-API deaktiviert.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'

Weitere Informationen finden Sie unter put-table-maintenance-configuration in der Referenz zum AWS CLI-Befehl.

Snapshot-Verwaltung

Die Snapshot-Verwaltung bestimmt die Anzahl der aktiven Snapshots für Ihre Tabelle. Sie basiert auf MinimumSnapshots (standardmäßig 1) und MaximumSnapshotAge (standardmäßig 120 Stunden). Auf der Basis dieser Konfigurationen lässt die Snapshot-Verwaltung Tabellen-Snapshots ablaufen und entfernt sie.

Wenn ein Snapshot abläuft, markiert Amazon S3 alle Objekte, die nur von diesem Snapshot referenziert sind, als nicht aktuell. Diese veralteten Objekte werden nach Ablauf der Anzahl von Tagen gelöscht, die in Ihrer Richtlinie zur Entfernung nicht referenzierter Dateien als Eigenschaft NoncurrentDays festgelegt wurde.

Anmerkung

Das Löschen von Objekten, die nicht aktuell sind, ist dauerhaft und es besteht keine Möglichkeit, diese Objekte wiederherzustellen.

Um Objekte anzuzeigen oder wiederherzustellen, die als nicht aktuell markiert wurden, wenden Sie sich an AWS -Support. Weitere Informationen zur Kontaktaufnahme mit dem AWS -Support finden Sie unter AWS kontaktieren und in der Dokumentation zum AWS -Support.

Die Snapshot-Verwaltung bestimmt die Objekte, die aus Ihrer Tabelle gelöscht werden sollen, nur unter Beachtung der Referenzen zu dieser Tabelle. Verweise auf diese Objekte von außerhalb der Tabelle verhindern nicht, dass sie durch die Snapshot-Verwaltung gelöscht werden.

Anmerkung

Die Snapshot-Verwaltung unterstützt keine Aufbewahrungswerte, die Sie als Eigenschaften von Iceberg-Tabellen in der Datei metadata.json oder über den SQL-Befehl ALTER TABLE SET TBLPROPERTIES konfigurieren. Dies gilt auch für die verzweigungs- oder Tag-basierte Aufbewahrung. Die Snapshot-Verwaltung ist deaktiviert, wenn Sie eine verzweigungs- oder tagbasierte Aufbewahrungsrichtlinie oder eine Aufbewahrungsrichtlinie für die Datei metadata.json konfigurieren, die länger ist als die über die PutTableMaintenanceConfiguration-API konfigurierten Werte. In diesen Fällen lässt S3 Snapshots nicht ablaufen oder entfernen. Sie müssen die Snapshots manuell löschen oder die Eigenschaften aus Ihrer Iceberg-Tabelle entfernen, um Speichergebühren zu vermeiden.

Sie können die Snapshot-Verwaltung nur auf Tabellenebene konfigurieren. Weitere Informationen finden Sie in den Preisinformationen unter Amazon S3 – Preise.

Beispiele für Snapshot-Verwaltung

Die folgenden Beispiele zeigen die Konfigurationen für die Snapshot-Verwaltung von Tabellen.

So konfigurieren Sie die Snapshot-Verwaltung mit der AWS CLI

Im folgenden Beispiel werden mithilfe der PutTableMaintenanceConfiguration-API der Wert MinimumSnapshots auf 10 und der Wert MaximumSnapshotAge auf 2.500 Stunden festgelegt.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace \ --name my_table \ --type icebergSnapshotManagement \ --value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'
So deaktivieren Sie die Snapshot-Verwaltung mit der AWS CLI

Das folgende Beispiel deaktiviert die Snapshot-Verwaltung über die PutTableMaintenanceConfiguration-API.

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace \ --name my_table \ --type icebergSnapshotManagement \ --value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'

Weitere Informationen finden Sie unter put-table-maintenance-configuration in der Referenz zum AWS CLI-Befehl.

Überlegungen und Einschränkungen

Weitere Informationen zu zusätzlichen Überlegungen und Einschränkungen bei der Komprimierung und Snapshot-Verwaltung finden Sie unter Überlegungen und Einschränkungen für Wartungsarbeiten.

Anmerkung

S3 Tables wendet die Standardgröße für Parquets für Zeilengruppen von 128 MB an.