

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Manajemen metadata gunung es
<a name="feature-store-iceberg-metadata-management"></a>

Saat Anda membuat grup fitur dengan format tabel Iceberg, Amazon SageMaker Feature Store membuat dan mengelola tabel Iceberg yang mendasarinya atas nama Anda menggunakan nilai konfigurasi default. Anda dapat mengonfigurasi properti tabel Iceberg pada pembuatan grup fitur, memperbarui properti pada grup fitur yang ada, dan melihat properti yang saat ini ditetapkan pada tabel. Pengaturan ini memberi Anda kontrol atas parameter konfigurasi seperti retensi snapshot, manajemen file metadata, dan perilaku tulis untuk mengelola ukuran dan kinerja keseluruhan tabel toko offline Anda.

Hanya sebagian dari properti tabel Iceberg yang telah divalidasi untuk kompatibilitas dengan Feature Store. Mengonfigurasi properti di luar set yang didukung ini tidak menjamin perilaku yang benar. Untuk daftar lengkap properti yang didukung, lihat[Properti Iceberg yang diizinkan](#feature-store-iceberg-allowed-properties).

**Prasyarat:** Grup fitur Anda harus memiliki toko offline menggunakan format tabel Iceberg.

**penting**  
Jika properti Iceberg yang tidak diizinkan diubah, Toko Fitur tidak dapat menjamin kompatibilitas lanjutan dan dapat menyebabkan ketidakmampuan untuk menulis ke toko offline.

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

`IcebergProperties`Jenis ini menyediakan pembungkus yang divalidasi untuk konfigurasi properti Iceberg, memastikan semua kunci milik set yang diizinkan dan mencegah entri duplikat.

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

### Memvalidasi properti
<a name="feature-store-iceberg-validating-properties"></a>

Kunci tidak valid dan duplikat menghasilkan kesalahan saat diteruskan ke fungsi buat atau perbarui. Anda dapat memvalidasi kunci secara opsional menggunakan metode ini. `validate_property_keys()` Ini sangat membantu saat menambahkan atau menghapus properti dari `IcebergProperties` objek yang ada.

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

## Buat grup fitur dengan properti Iceberg
<a name="feature-store-iceberg-create"></a>

`FeatureGroupManager.create`Fungsi menerima `iceberg_properties` parameter tipe`IcebergProperties`. Ini membuat grup fitur dan menunggu pembuatan selesai sebelum memperbarui properti Iceberg pada tabel yang mendasarinya. AWS Glue 

Atau, Anda dapat membuat`FeatureGroup`, memanggil`create`, lalu meneruskan objek grup fitur ke `FeatureGroupManager` kelas dan memanggil `update` untuk menghindari pemblokiran saat grup fitur selesai dibuat.

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

## Perbarui properti Iceberg pada grup fitur yang ada
<a name="feature-store-iceberg-update"></a>

`update`Fungsi menerima `iceberg_properties` parameter tipe`IcebergProperties`. Dibutuhkan grup fitur yang sudah dibuat, mengambil toko offline, dan menetapkan properti Iceberg yang ditentukan. AWS Glue Data Catalog 

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

## Lihat properti Iceberg pada grup fitur
<a name="feature-store-iceberg-get"></a>

`FeatureGroupManager.get`Fungsi menerima `include_iceberg_properties` parameter. Ketika diatur ke`True`, ia mengambil properti Iceberg yang telah diatur secara manual dan merupakan bagian dari daftar yang diizinkan, dan menambahkannya ke `iceberg_properties` bidang di objek yang dikembalikan.

Ini hanya mengembalikan properti set yang merupakan bagian dari daftar yang diizinkan. Untuk mendapatkan semua properti AWS Glue tabel, gunakan AWS Glue API secara langsung. Jika properti Iceberg yang diizinkan tidak muncul, properti tersebut belum disetel secara eksplisit dan menggunakan nilai defaultnya.

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

## Izin yang diperlukan
<a name="feature-store-iceberg-permissions"></a>

Pastikan kebijakan [AmazonSageMakerFeatureStoreAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFeatureStoreAccess.html)dan kebijakan [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)terkelola melekat pada peran IAM yang Anda gunakan. Kelola kebijakan Anda berdasarkan pola akses Anda.

## Properti Iceberg yang diizinkan
<a name="feature-store-iceberg-allowed-properties"></a>

Tabel berikut mencantumkan properti tabel Iceberg yang telah divalidasi untuk digunakan dengan Feature Store. Untuk informasi selengkapnya tentang properti ini, lihat [Konfigurasi tabel](https://iceberg.apache.org/docs/latest/configuration/) dalam dokumentasi Apache Iceberg.


**Properti tabel Iceberg yang diizinkan**  

| Properti | Nilai default | Deskripsi | 
| --- | --- | --- | 
| write.metadata.delete-after-commit.enabled | false | Mengontrol apakah akan menghapus file metadata versi terlama yang dilacak setelah setiap komit tabel. | 
| write.metadata.previous-versions-max | 100 | Jumlah maksimal file metadata versi sebelumnya untuk dilacak. | 
| history.expire.max-snapshot-age-ms | 432000000(5 hari) | Usia maksimal snapshot default untuk disimpan di atas meja dan semua cabangnya saat snapshot kedaluwarsa. | 
| history.expire.min-snapshots-to-keep | 1 | Jumlah minimum snapshot default untuk disimpan di atas meja dan semua cabangnya saat snapshot kedaluwarsa. | 
| history.expire.max-ref-age-ms | Long.MAX\_VALUE(selamanya) | Untuk referensi snapshot kecuali main cabang, usia maksimum default referensi snapshot tetap dipertahankan saat snapshot kedaluwarsa. mainCabang tidak pernah kedaluwarsa. | 
| write.target-file-size-bytes | 536870912(512 MB) | Mengontrol ukuran file yang dihasilkan untuk menargetkan tentang banyak byte ini. | 
| write.delete.target-file-size-bytes | 67108864(64 MB) | Mengontrol ukuran file hapus yang dihasilkan untuk menargetkan tentang banyak byte ini. | 
| write.delete.mode | copy-on-write | Mode yang digunakan untuk menghapus perintah: copy-on-write atau merge-on-read (v2 dan di atas). | 
| write.update.mode | copy-on-write | Mode yang digunakan untuk perintah pembaruan: copy-on-write atau merge-on-read (v2 dan di atas). | 
| write.delete.granularity | partition | Mengontrol perincian file hapus yang dihasilkan: partition atau. file | 
| write.parquet.row-group-size-bytes | 134217728(128 MB) | Ukuran kelompok baris parket. | 
| read.split.target-size | 134217728(128 MB) | Ukuran target saat menggabungkan pemisahan input data. | 
| read.split.metadata-target-size | 33554432(32 MB) | Ukuran target saat menggabungkan pemisahan input metadata. | 
| read.split.open-file-cost | 4194304(4 MB) | Perkiraan biaya untuk membuka file, digunakan sebagai bobot minimum saat menggabungkan split. | 