View a markdown version of this page

Manajemen metadata gunung es - Amazon SageMaker AI

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

Manajemen metadata gunung es

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, lihatProperti Iceberg yang diizinkan.

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

IcebergPropertiesJenis 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

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

FeatureGroupManager.createFungsi menerima iceberg_properties parameter tipeIcebergProperties. Ini membuat grup fitur dan menunggu pembuatan selesai sebelum memperbarui properti Iceberg pada tabel yang mendasarinya. AWS Glue

Atau, Anda dapat membuatFeatureGroup, memanggilcreate, 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

updateFungsi menerima iceberg_properties parameter tipeIcebergProperties. 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

FeatureGroupManager.getFungsi menerima include_iceberg_properties parameter. Ketika diatur keTrue, 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

Pastikan kebijakan AmazonSageMakerFeatureStoreAccessdan kebijakan AmazonSageMakerFullAccessterkelola melekat pada peran IAM yang Anda gunakan. Kelola kebijakan Anda berdasarkan pola akses Anda.

Properti Iceberg yang diizinkan

Tabel berikut mencantumkan properti tabel Iceberg yang telah divalidasi untuk digunakan dengan Feature Store. Untuk informasi selengkapnya tentang properti ini, lihat Konfigurasi tabel 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.