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
autoautomatisch einesort-Verdichtung durchführen. -
Bei Tabellen ohne Sortierreihenfolge wird
autostandardmäßig diebinpack-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_orderist.
-
-
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 \ --namespacemynamespace\ --nametesttable\ --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 aufsort. Bei der Festlegung der Komprimierung können Sie zwischen folgenden Komprimierungsstrategien wählen:auto,binpack,sortoderz-orderAnmerkung
Um die Komprimierungsstrategie auf
sortoderz-orderfestzulegen, 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 \ --namespacemynamespace\ --nametesttable\ --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 \ --namespacemynamespace\ --nametesttable\ --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
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 WertMinimumSnapshotsauf 10 und der WertMaximumSnapshotAgeauf 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 \ --namespacemy_namespace\ --namemy_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 \ --namespacemy_namespace\ --namemy_table\ --type icebergSnapshotManagement \ --value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'
Weitere Informationen finden Sie unter put-table-maintenance-configuration
Ü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.