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 mit dem 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 Eisberg-Tabelle bei der Erstellung der Feature-Gruppe konfigurieren, die Eigenschaften einer vorhandenen Feature-Gruppe aktualisieren und die aktuell in der Tabelle festgelegten Eigenschaften einsehen. Mit diesen Einstellungen können Sie Konfigurationsparameter wie die Aufbewahrung von Snapshots, die Verwaltung von Metadatendateien und das Schreibverhalten steuern, um die Gesamtgröße und Leistung Ihrer Offline-Speichertabelle zu verwalten.

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

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 die fortgesetzte Kompatibilität nicht garantieren, was dazu führen kann, dass nicht in den Offline-Speicher geschrieben werden kann.

IcebergProperties Typ

Der IcebergProperties Typ bietet einen validierten Wrapper für Iceberg-Eigenschaftenkonfigurationen, wodurch sichergestellt wird, dass alle Schlüssel zur zulässigen Menge gehören, und dass doppelte Einträge vermieden werden.

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 möchten.

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 Feature-Gruppe 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 in der zugrunde liegenden AWS Glue Tabelle aktualisiert werden.

Sie können auch ein Objekt erstellen FeatureGroupcreate, aufrufen und dann das Objektgruppenobjekt an die FeatureGroupManager Klasse übergeben und aufrufen, um Blockierungen update zu vermeiden, während die Feature-Gruppe mit der Erstellung fertig 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 Feature-Gruppe

Die update Funktion akzeptiert einen iceberg_properties Parameter des TypsIcebergProperties. Sie verwendet eine bereits erstellte Feature-Gruppe, ruft die AWS Glue Data Catalog des Offline-Speichers 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", } ), )

Iceberg-Eigenschaften für eine Feature-Gruppe anzeigen

Die FeatureGroupManager.get Funktion akzeptiert einen include_iceberg_properties Parameter. Wenn sie auf gesetzt istTrue, ruft sie die manuell festgelegten Iceberg-Eigenschaften ab, die 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 Werte sind. Um alle AWS Glue Tabelleneigenschaften abzurufen, verwenden Sie direkt die AWS Glue API. 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 AmazonSageMakerFeatureStoreAccesssowohl die als auch die AmazonSageMakerFullAccessverwalteten Richtlinien mit der von Ihnen verwendeten IAM-Rolle verknüpft sind. Verwalten Sie Ihre Richtlinie auf der Grundlage Ihres Zugriffsmusters.

Zulässige Iceberg-Eigenschaften

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.

Zulässige Eigenschaften von Iceberg-Tabellen
Eigenschaft Standardwert Description
write.metadata.delete-after-commit.enabled false Steuert, ob nach jedem Commit der Tabelle die Metadatendateien mit der ältesten verfolgten Version gelöscht werden sollen.
write.metadata.previous-versions-max 100 Die maximale Anzahl von Metadatendateien aus früheren Versionen, die nachverfolgt werden sollen.
history.expire.max-snapshot-age-ms 432000000(5 Tage) Das voreingestellte maximale Alter von Snapshots, die während des Ablaufs von Snapshots in der Tabelle und all ihren Verzweigungen beibehalten werden sollen.
history.expire.min-snapshots-to-keep 1 Standardmäßige Mindestanzahl an Snapshots, die in der Tabelle und all ihren Verzweigungen beibehalten werden sollen, während Snapshots ablaufen.
history.expire.max-ref-age-ms Long.MAX_VALUE(für immer) Für Snapshot-Verweise mit Ausnahme des main Branches ist das maximale Alter der Snapshot-Referenzen voreingestellt, die während ablaufender Snapshots beibehalten werden sollen. Der main Branch läuft nie ab.
write.target-file-size-bytes 536870912(512 MB) Steuert die Größe von Dateien, die für das Ziel generiert werden, etwa so viele Byte zu verwenden.
write.delete.target-file-size-bytes 67108864(64 MB) Steuert die Größe von Löschdateien, die generiert werden, um auf etwa diese Anzahl von Byte abzuzielen.
write.delete.mode copy-on-write Modus, der für Löschbefehle verwendet wird: copy-on-write oder merge-on-read (v2 und höher).
write.update.mode copy-on-write Modus, der für Aktualisierungsbefehle verwendet wird: copy-on-write oder merge-on-read (v2 und höher).
write.delete.granularity partition Steuert die Granularität der generierten Löschdateien: partition oderfile.
write.parquet.row-group-size-bytes 134217728(128 MB) Gruppengröße der Parkettreihe.
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.