View a markdown version of this page

Verwaltung von Iceberg-Metadaten - Amazon SageMaker KI

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 von Iceberg-Metadaten

Wenn Sie eine Feature-Gruppe im Iceberg-Tabellenformat erstellen, erstellt und verwaltet Amazon SageMaker Feature Store die zugrunde liegende Iceberg-Tabelle in Ihrem Namen unter Verwendung von Standardkonfigurationswerten. Sie können die Eigenschaften der Iceberg-Tabelle bei der Erstellung der Feature-Gruppe konfigurieren, die Eigenschaften einer vorhandenen Feature-Gruppe aktualisieren und die derzeit in der Tabelle festgelegten Eigenschaften anzeigen. Mit diesen Einstellungen haben Sie die Kontrolle über Konfigurationsparameter wie die Aufbewahrung von Snapshots, die Verwaltung von Metadatendateien und das Schreibverhalten, um die Gesamtgröße und Leistung Ihrer Offline-Store-Tabelle zu verwalten.

Nur ein Teil der Eigenschaften der Iceberg-Tabelle wurde auf Kompatibilität mit Feature Store überprüft. Die Konfiguration von Eigenschaften außerhalb dieses unterstützten Satzes garantiert kein korrektes Verhalten. Eine vollständige Liste der unterstützten Eigenschaften finden Sie unterZulässige Eigenschaften von Iceberg.

Voraussetzung: Ihre Feature-Gruppe muss über einen Offline-Store verfügen, der das Iceberg-Tabellenformat verwendet.

Wichtig

Wenn unzulässige Iceberg-Eigenschaften geändert werden, kann Feature Store keine kontinuierliche Kompatibilität garantieren und kann dazu führen, dass nicht in den Offline-Store geschrieben werden kann.

IcebergProperties typ

Der IcebergProperties Typ bietet einen validierten Wrapper für Iceberg-Eigenschaftenkonfigurationen, der sicherstellt, dass alle Schlüssel zum erlaubten Satz gehören, und doppelte Einträge verhindert.

class IcebergProperties(Base): """Configuration for Iceberg table properties in a Feature Group offline store.""" properties: Optional[Dict[str, str]] = None

Eigenschaften werden validiert

Ungültige und doppelte Schlüssel führen zu einem Fehler, wenn sie an die Erstellungs- oder Aktualisierungsfunktion übergeben werden. Sie können Schlüssel optional mit der validate_property_keys() Methode validieren. Dies ist hilfreich, wenn Sie Eigenschaften zu einem vorhandenen IcebergProperties Objekt hinzufügen oder daraus entfernen.

iceberg_properties = IcebergProperties( # Validates on creation properties={ "write.target-file-size-bytes": "268435456", "write.delete.mode": "merge-on-read", } ) # Add non-allowed property iceberg_properties.properties.update({"write.delete.isolation-level": "Snapshot"}) # Validate again — throws error because of non-allowed property iceberg_properties.validate_property_keys()

Erstellen Sie eine Objektgruppe mit Iceberg-Eigenschaften

Die FeatureGroupManager.create Funktion akzeptiert einen iceberg_properties Parameter des TypsIcebergProperties. Sie erstellt eine Feature-Gruppe und wartet, bis die Erstellung abgeschlossen ist, bevor die Iceberg-Eigenschaften der zugrunde liegenden AWS Glue Tabelle aktualisiert werden.

Sie können auch ein Objekt der Objektgruppe erstellen FeatureGroupcreate, aufrufen und dann an die FeatureGroupManager Klasse und den Aufruf übergeben, um Blockierungen update zu vermeiden, während die Erstellung der Objektgruppe abgeschlossen ist.

fg = FeatureGroupManager.create( # ...other parameters... offline_store_config=OfflineStoreConfig( s3_storage_config=S3StorageConfig(s3_uri="s3://my-bucket/features/"), table_format="Iceberg", # Must use Iceberg table format ), iceberg_properties=IcebergProperties( properties={ "write.target-file-size-bytes": "536870912", "history.expire.min-snapshots-to-keep": "3", } ), )

Aktualisieren Sie die Iceberg-Eigenschaften einer vorhandenen Objektgruppe

Die update Funktion akzeptiert einen iceberg_properties Parameter des TypsIcebergProperties. Sie verwendet eine bereits erstellte Feature-Gruppe, ruft die AWS Glue Data Catalog aus dem Offline-Store ab und legt die angegebenen Iceberg-Eigenschaften fest.

fg = FeatureGroupManager.get(feature_group_name="my-feature-group") fg.update( iceberg_properties=IcebergProperties( properties={ "write.target-file-size-bytes": "268435456", "write.delete.mode": "merge-on-read", } ), )

Zeigt die Iceberg-Eigenschaften einer Feature-Gruppe an

Die FeatureGroupManager.get Funktion akzeptiert einen include_iceberg_properties Parameter. Wenn dieser Wert auf gesetzt istTrue, ruft sie die Iceberg-Eigenschaften ab, die manuell festgelegt wurden und Teil der Liste der zulässigen Eigenschaften sind, und fügt sie dem iceberg_properties Feld im zurückgegebenen Objekt hinzu.

Dadurch werden nur festgelegte Eigenschaften zurückgegeben, die Teil der Liste der zulässigen Eigenschaften sind. Verwenden Sie die AWS Glue API direkt, um alle AWS Glue Tabelleneigenschaften abzurufen. Wenn eine zulässige Iceberg-Eigenschaft nicht angezeigt wird, wurde sie nicht explizit festgelegt und verwendet ihren Standardwert.

fg = FeatureGroupManager.get( feature_group_name="my-feature-group", include_iceberg_properties=True, ) print(fg.iceberg_properties.properties) # e.g. {"write.target-file-size-bytes": "536870912"}

Erforderliche Berechtigungen

Stellen Sie sicher, dass AmazonSageMakerFeatureStoreAccess sowohl die als auch die AmazonSageMakerFullAccess verwalteten Richtlinien der IAM-Rolle zugeordnet sind, die Sie verwenden. Verwalten Sie Ihre Richtlinie auf der Grundlage Ihres Zugriffsmusters.

Zulässige Eigenschaften von Iceberg

In der folgenden Tabelle sind die Eigenschaften der Iceberg-Tabelle aufgeführt, die für die Verwendung mit Feature Store validiert wurden. Weitere Informationen zu diesen Eigenschaften finden Sie unter Tabellenkonfiguration in der Apache Iceberg-Dokumentation.

Erlaubte Eigenschaften der Iceberg-Tabelle
Eigenschaft Standardwert Description
write.metadata.delete-after-commit.enabled false Steuert, ob die Metadatendateien der ältesten getrackten Version nach jedem Tabellen-Commit gelöscht werden.
write.metadata.previous-versions-max 100 Die maximale Anzahl der Metadatendateien früherer Versionen, die nachverfolgt werden sollen.
history.expire.max-snapshot-age-ms 432000000(5 Tage) Das maximale Standardalter der Snapshots, die auf der Tabelle und all ihren Zweigen gespeichert werden sollen, solange die Snapshots ablaufen.
history.expire.min-snapshots-to-keep 1 Standardmäßige Mindestanzahl von Snapshots, die in der Tabelle und allen ihren Zweigen beibehalten werden sollen, solange die Snapshots ablaufen.
history.expire.max-ref-age-ms Long.MAX_VALUE(für immer) Für Snapshot-Referenzen mit Ausnahme der main Verzweigung gilt das maximale Standardalter der Snapshot-Verweise, die während des Ablaufs der Snapshots beibehalten werden sollen. Der main Branch läuft nie ab.
write.target-file-size-bytes 536870912(512 MB) Steuert die Größe der Dateien, die für eine Zielgröße von etwa dieser Anzahl Byte generiert wurden.
write.delete.target-file-size-bytes 67108864(64 MB) Steuert die Größe der Löschdateien, die für eine bestimmte Anzahl von Byte generiert wurden.
write.delete.mode copy-on-write Für Löschbefehle verwendeter Modus: copy-on-write oder merge-on-read (v2 und höher).
write.update.mode copy-on-write Für Aktualisierungsbefehle verwendeter Modus: copy-on-write oder merge-on-read (v2 und höher).
write.delete.granularity partition Steuert die Granularität der generierten Löschdateien: partition oder. file
write.parquet.row-group-size-bytes 134217728(128 MB) Gruppengröße der Parkettreihen.
read.split.target-size 134217728(128 MB) Zielgröße beim Kombinieren von Dateneingabe-Splits.
read.split.metadata-target-size 33554432(32 MB) Zielgröße beim Kombinieren von Metadaten-Eingabe-Splits.
read.split.open-file-cost 4194304(4 MB) Die geschätzten Kosten für das Öffnen einer Datei, die als Mindestgewicht beim Kombinieren von Teilungen verwendet werden.