

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Gestión de metadatos de Iceberg
<a name="feature-store-iceberg-metadata-management"></a>

Cuando crea un grupo de entidades con el formato de tabla Iceberg, Amazon SageMaker Feature Store crea y gestiona la tabla Iceberg subyacente en su nombre utilizando los valores de configuración predeterminados. Puede configurar las propiedades de la tabla Iceberg al crear el grupo de entidades, actualizar las propiedades de un grupo de entidades existente y ver las propiedades actualmente configuradas en la tabla. Estos ajustes le permiten controlar los parámetros de configuración, como la retención de instantáneas, la administración de los archivos de metadatos y el comportamiento de escritura, para gestionar el tamaño y el rendimiento generales de la tabla de almacenamiento sin conexión.

Solo se ha validado la compatibilidad con Feature Store de un subconjunto de las propiedades de la tabla Iceberg. La configuración de propiedades fuera de este conjunto compatible no garantiza un comportamiento correcto. Para ver la lista completa de propiedades compatibles, consulte[Propiedades de Iceberg permitidas](#feature-store-iceberg-allowed-properties).

**Requisito previo:** su grupo de características debe tener un almacén fuera de línea que utilice el formato de tabla Iceberg.

**importante**  
Si se modifican las propiedades de Iceberg no permitidas, Feature Store no puede garantizar la continuidad de la compatibilidad y puede provocar la imposibilidad de escribir en la tienda offline.

## IcebergProperties escriba
<a name="feature-store-iceberg-properties-type"></a>

El `IcebergProperties` tipo proporciona un contenedor validado para las configuraciones de propiedades de Iceberg, lo que garantiza que todas las claves pertenezcan al conjunto permitido y evita las entradas duplicadas.

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

### Validar propiedades
<a name="feature-store-iceberg-validating-properties"></a>

Las claves no válidas o duplicadas provocan un error cuando se pasan a la función de creación o actualización. Si lo desea, puede validar las claves mediante `validate_property_keys()` este método. Esto resulta útil cuando se añaden o quitan propiedades de un `IcebergProperties` objeto existente.

```
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()
```

## Cree un grupo de elementos con las propiedades de Iceberg
<a name="feature-store-iceberg-create"></a>

La `FeatureGroupManager.create` función acepta un `iceberg_properties` parámetro de tipo`IcebergProperties`. Crea un grupo de entidades y espera a que se complete la creación antes de actualizar las propiedades del Iceberg en la tabla subyacente AWS Glue .

Como alternativa, puede crear una llamada y`FeatureGroup`, a continuación`create`, pasar el objeto del grupo de entidades a la `FeatureGroupManager` clase y llamarlo `update` para evitar el bloqueo mientras el grupo de entidades termina de crearse.

```
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",
        }
    ),
)
```

## Actualice las propiedades de Iceberg en un grupo de entidades existente
<a name="feature-store-iceberg-update"></a>

La `update` función acepta un `iceberg_properties` parámetro de tipo`IcebergProperties`. Toma un grupo de funciones ya creado, recupera el del almacén sin conexión y establece las propiedades AWS Glue Data Catalog de Iceberg especificadas.

```
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",
        }
    ),
)
```

## Vea las propiedades de Iceberg en un grupo de características
<a name="feature-store-iceberg-get"></a>

La `FeatureGroupManager.get` función acepta un `include_iceberg_properties` parámetro. Cuando se establece en`True`, recupera las propiedades de Iceberg que se han establecido manualmente y que forman parte de la lista de permitidos, y las añade al `iceberg_properties` campo del objeto devuelto.

Esto solo devuelve las propiedades del conjunto que forman parte de la lista de permitidos. Para obtener todas las propiedades de la AWS Glue tabla, utilice la AWS Glue API directamente. Si no aparece una propiedad de Iceberg permitida, significa que no se ha establecido de forma explícita y utiliza su valor predeterminado.

```
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"}
```

## Permisos necesarios
<a name="feature-store-iceberg-permissions"></a>

Asegúrese de que [AmazonSageMakerFeatureStoreAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFeatureStoreAccess.html)tanto la política como la [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)gestionada estén asociadas a la función de IAM que esté utilizando. Administre su política en función de su patrón de acceso.

## Propiedades de Iceberg permitidas
<a name="feature-store-iceberg-allowed-properties"></a>

En la siguiente tabla se enumeran las propiedades de la tabla Iceberg que se han validado para su uso con Feature Store. Para obtener más información sobre estas propiedades, consulte la [configuración de la tabla](https://iceberg.apache.org/docs/latest/configuration/) en la documentación de Apache Iceberg.


**Propiedades de la tabla Iceberg permitidas**  

| Propiedad | Predeterminado | Description (Descripción) | 
| --- | --- | --- | 
| write.metadata.delete-after-commit.enabled | false | Controla si se eliminan los archivos de metadatos de la versión rastreada más antigua después de cada confirmación de tabla. | 
| write.metadata.previous-versions-max | 100 | El número máximo de archivos de metadatos de versiones anteriores que se deben rastrear. | 
| history.expire.max-snapshot-age-ms | 432000000(5 días) | La antigüedad máxima predeterminada de las instantáneas se mantiene sobre la mesa y en todas sus ramas mientras las instantáneas caducan. | 
| history.expire.min-snapshots-to-keep | 1 | Número mínimo predeterminado de instantáneas que se deben conservar en la mesa y en todas sus ramas mientras las instantáneas caducan. | 
| history.expire.max-ref-age-ms | Long.MAX\_VALUE(para siempre) | Para las referencias a las instantáneas, excepto a la main rama, la antigüedad máxima predeterminada de las referencias a las instantáneas se mantiene mientras las instantáneas caducan. La main sucursal nunca caduca. | 
| write.target-file-size-bytes | 536870912(512 MB) | Controla el tamaño de los archivos generados para abarcar esta cantidad de bytes aproximadamente. | 
| write.delete.target-file-size-bytes | 67108864(64 MB) | Controla el tamaño de los archivos de eliminación generados para centrarse en esa cantidad de bytes. | 
| write.delete.mode | copy-on-write | Modo utilizado para eliminar comandos: copy-on-write o merge-on-read (v2 y superior). | 
| write.update.mode | copy-on-write | Modo utilizado para actualizar los comandos: copy-on-write o merge-on-read (v2 y superior). | 
| write.delete.granularity | partition | Controla la granularidad de los archivos de eliminación generados: partition ofile. | 
| write.parquet.row-group-size-bytes | 134217728(128 MB) | Tamaño del grupo de hileras de parquet. | 
| read.split.target-size | 134217728(128 MB) | Tamaño objetivo al combinar divisiones de entrada de datos. | 
| read.split.metadata-target-size | 33554432(32 MB) | Tamaño objetivo al combinar divisiones de entrada de metadatos. | 
| read.split.open-file-cost | 4194304(4 MB) | El coste estimado de abrir un archivo, que se utiliza como peso mínimo al combinar divisiones. | 