

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
<a name="feature-store-iceberg-metadata-management"></a>

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 unter[Zulässige Iceberg-Eigenschaften](#feature-store-iceberg-allowed-properties).

**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
<a name="feature-store-iceberg-properties-type"></a>

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
<a name="feature-store-iceberg-validating-properties"></a>

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
<a name="feature-store-iceberg-create"></a>

Die `FeatureGroupManager.create` Funktion akzeptiert einen `iceberg_properties` Parameter des Typs`IcebergProperties`. 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 `FeatureGroup``create`, 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
<a name="feature-store-iceberg-update"></a>

Die `update` Funktion akzeptiert einen `iceberg_properties` Parameter des Typs`IcebergProperties`. 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
<a name="feature-store-iceberg-get"></a>

Die `FeatureGroupManager.get` Funktion akzeptiert einen `include_iceberg_properties` Parameter. Wenn sie auf gesetzt ist`True`, 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
<a name="feature-store-iceberg-permissions"></a>

Stellen Sie sicher, dass [AmazonSageMakerFeatureStoreAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFeatureStoreAccess.html)sowohl die als auch die [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)verwalteten Richtlinien mit der von Ihnen verwendeten IAM-Rolle verknüpft sind. Verwalten Sie Ihre Richtlinie auf der Grundlage Ihres Zugriffsmusters.

## Zulässige Iceberg-Eigenschaften
<a name="feature-store-iceberg-allowed-properties"></a>

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](https://iceberg.apache.org/docs/latest/configuration/) 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. | 