Hapus catatan dari grup fitur - Amazon SageMaker

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

Hapus catatan dari grup fitur

Anda dapat menggunakan Amazon SageMaker Feature Store API untuk menghapus catatan dari grup fitur Anda. Grup fitur adalah objek yang berisi data pembelajaran mesin (ML) Anda, di mana kolom data Anda dijelaskan oleh fitur dan data Anda terkandung dalam catatan. Catatan berisi nilai untuk fitur yang terkait dengan pengenal catatan tertentu.

Ada dua konfigurasi penyimpanan untuk grup fitur Anda: toko online dan toko offline. Toko online hanya menyimpan catatan dengan waktu acara terbaru dan biasanya digunakan untuk pencarian real-time untuk inferensi ML. Toko offline menyimpan semua catatan dan bertindak sebagai database historis dan biasanya digunakan untuk eksplorasi fitur, pelatihan ML, dan inferensi batch.

Untuk informasi selengkapnya tentang konsep Toko Fitur, lihatDiagram konsumsi.

Ada dua cara untuk menghapus catatan dari grup fitur Anda, dan perilakunya berbeda tergantung pada konfigurasi penyimpanan. Dalam topik berikut kami akan menjelaskan cara menghapus catatan lunak dan keras dari toko online dan offline dan memberikan contoh.

Hapus catatan dari toko online

Anda dapat menghapus catatan lunak atau keras dari toko online menggunakan DeleteRecord API dengan menggunakan parameter DeletionMode permintaan untuk menentukan SoftDelete (default) atauHardDelete. Untuk informasi lebih lanjut tentang DeleteRecordAPI, lihat DeleteRecorddi SageMaker API Referensi Amazon.

Dengan toko online:

  • Saat Anda menghapus lunak (default), catatan tidak lagi dapat diambil oleh GetRecord atau BatchGetRecord dan nilai kolom fitur disetel kenull, kecuali untuk nilai RecordIdentifer dan EventTime fitur.

  • Ketika Anda sulit menghapus, catatan sepenuhnya dihapus dari toko online.

Dalam kedua kasus, Feature Store menambahkan penanda rekaman yang dihapus ke file. OfflineStore Penanda rekaman yang dihapus adalah catatan yang RecordIdentifer sama dengan aslinya, tetapi dengan is_deleted nilai yang disetel keTrue, EventTime disetel ke input hapusEventTime, dan nilai fitur lainnya yang disetel kenull.

Perhatikan bahwa yang EventTime ditentukan DeleteRecord harus ditetapkan lebih lambat EventTime dari catatan yang ada di OnlineStore untuk yang samaRecordIdentifer. Jika tidak, penghapusan tidak terjadi:

  • UntukSoftDelete, catatan yang ada (tidak dihapus) tetap ada diOnlineStore, meskipun penanda catatan hapus masih ditulis ke fileOfflineStore.

  • HardDeletereturnEventTime: 400 ValidationException untuk menunjukkan bahwa operasi penghapusan gagal. Tidak ada penanda catatan hapus yang ditulis ke fileOfflineStore.

Contoh berikut menggunakan delete_recordoperasi SDK for Python (Boto3) untuk menghapus catatan dari grup fitur. Untuk menghapus catatan dari grup fitur, Anda perlu:

  • Nama grup fitur (feature-group-name)

  • Catat nilai pengenal sebagai string () record-identifier-value

  • Waktu acara penghapusan () deletion-event-time

    Waktu acara penghapusan harus lebih lambat dari waktu acara rekaman yang ingin Anda hapus.

Contoh penghapusan lunak toko online

Untuk soft delete Anda akan perlu menggunakan DeleteRecord API dan dapat menggunakan default DeletionMode atau mengatur DeletionMode keSoftDelete.

import boto3 client = boto3.client('sagemaker-featurestore-runtime') client.delete_record( FeatureGroupName='feature-group-name', RecordIdentifierValueAsString='record-identifier-value', EventTime='deletion-event-time', TargetStores=[ 'OnlineStore', ], DeletionMode='SoftDelete' )

Contoh hard delete toko online

Untuk hard delete Anda akan perlu menggunakan DeleteRecord API dan mengatur DeletionMode keHardDelete.

import boto3 client = boto3.client('sagemaker-featurestore-runtime') client.delete_record( FeatureGroupName='feature-group-name', RecordIdentifierValueAsString='record-identifier-value', EventTime='deletion-event-timestamp', TargetStores=[ 'OnlineStore', ], DeletionMode='HardDelete' )

Hapus catatan dari toko offline

Dengan Amazon SageMaker Feature Store Anda dapat menghapus catatan dengan lembut dan keras dari format tabel OfflineStore Iceberg. Dengan format tabel OfflineStore Iceberg:

  • Ketika Anda menghapus catatan versi terbaru dari file tabel Iceberg tidak akan berisi catatan, tetapi versi sebelumnya masih akan berisi catatan dan dapat diakses menggunakan perjalanan waktu. Untuk informasi tentang perjalanan waktu, lihat Menanyakan data tabel Gunung Es dan melakukan perjalanan waktu di panduan pengguna Athena.

  • Ketika Anda sulit menghapus catatan Anda menghapus versi sebelumnya dari tabel Iceberg yang berisi catatan. Dalam hal ini Anda harus menentukan versi tabel Iceberg yang ingin Anda hapus.

Dapatkan nama tabel Iceberg Anda

Untuk menghapus lunak dan keras dari tabel OfflineStore Iceberg Anda, Anda harus mendapatkan nama tabel Iceberg Anda,. iceberg-table-name Instruksi berikut mengasumsikan Anda telah menggunakan Feature Store untuk membuat grup fitur menggunakan konfigurasi penyimpanan toko offline menggunakan format tabel Iceberg, dengan DisableGlueTableCreation = False (default). Untuk informasi selengkapnya tentang membuat grup fitur, lihatMemulai dengan Amazon SageMaker Feature Store.

Untuk mendapatkan Andaiceberg-table-name, gunakan DescribeFeatureGroupAPIuntuk mendapatkan DataCatalogConfig. Ini berisi metadata tabel Glue yang berfungsi sebagai katalog data untuk. OfflineStore Yang di TableName dalamnya DataCatalogConfig adalah milikmuiceberg-table-name.

Amazon Athena toko offline contoh penghapusan lunak dan keras

Instruksi berikut menggunakan Amazon Athena untuk menghapus lunak kemudian menghapus catatan dari tabel OfflineStore Iceberg. Ini mengasumsikan bahwa catatan yang ingin Anda hapus OfflineStore adalah penanda catatan yang dihapus. Untuk informasi tentang penanda rekaman yang dihapus di AndaOfflineStore, lihatHapus catatan dari toko online.

  1. Dapatkan nama tabel Iceberg Anda,. iceberg-table-name Untuk informasi tentang cara mendapatkan nama tabel Gunung Es Anda, lihat. Dapatkan nama tabel Iceberg Anda

  2. Jalankan DELETE perintah untuk menghapus catatan lunak padaOfflineStore, sehingga versi terbaru (atau snapshot) dari tabel Iceberg tidak akan berisi catatan. Contoh berikut menghapus catatan di mana is_deleted 'True' dan versi waktu peristiwa sebelumnya dari catatan tersebut. Anda dapat menambahkan kondisi tambahan berdasarkan fitur lain untuk membatasi penghapusan. Untuk informasi lebih lanjut tentang penggunaan DELETE dengan Athena, lihat DELETE di panduan pengguna Athena.

    DELETE FROM iceberg-table-name WHERE record-id-feature-name IS IN ( SELECT record-id-feature-name FROM iceberg-table-name WHERE is_deleted = 'True')

    Catatan yang dihapus lunak masih dapat dilihat pada versi file sebelumnya dengan melakukan perjalanan waktu. Untuk informasi tentang melakukan perjalanan waktu, lihat Menanyakan data tabel Gunung Es dan melakukan perjalanan waktu di panduan pengguna Athena.

  3. Hapus catatan dari versi sebelumnya dari tabel Iceberg Anda untuk menghapus catatan dari: OfflineStore

    1. Jalankan OPTIMIZE perintah untuk menulis ulang file data ke dalam tata letak yang lebih dioptimalkan, berdasarkan ukuran dan jumlah file hapus terkait. Untuk informasi selengkapnya tentang mengoptimalkan tabel Iceberg dan sintaksnya, lihat Mengoptimalkan tabel Gunung Es di panduan pengguna Athena.

      OPTIMIZE iceberg-table-name REWRITE DATA USING BIN_PACK
    2. (Opsional, hanya perlu dijalankan sekali) Jalankan ALTER TABLE perintah untuk mengubah nilai set tabel Iceberg, dan atur kapan versi file sebelumnya harus dihapus dengan keras sesuai dengan spesifikasi Anda. Ini dapat dilakukan dengan menetapkan nilai ke vacuum_min_snapshots_to_keep dan vacuum_max_snapshot_age_seconds properti. Untuk informasi selengkapnya tentang mengubah properti kumpulan tabel Iceberg, lihat ALTERTABLESETPROPERTIESdi panduan pengguna Athena. Untuk informasi selengkapnya tentang pasangan nilai kunci properti tabel Iceberg, lihat Properti tabel di panduan pengguna Athena.

      ALTER TABLE iceberg-table-name SET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value', 'vacuum_max_snapshot_age_seconds'='your-specified-value' )
    3. Jalankan VACUUM perintah untuk menghapus file data yang tidak lagi diperlukan untuk tabel Iceberg Anda, tidak direferensikan oleh versi saat ini. VACUUMPerintah harus dijalankan setelah catatan yang dihapus tidak lagi direferensikan dalam snapshot saat ini. Misalnya, vacuum_max_snapshot_age_seconds setelah penghapusan. Untuk informasi lebih lanjut tentang VACUUM Athena dan sintaksnya, lihat. VACUUM

      VACUUM iceberg-table-name

Contoh penghapusan lunak dan keras toko offline Apache Spark

Untuk menghapus catatan lunak dan kemudian keras dari tabel OfflineStore Iceberg menggunakan Apache Spark, Anda dapat mengikuti instruksi yang sama seperti di Amazon Athena toko offline contoh penghapusan lunak dan keras atas, tetapi menggunakan prosedur Spark. Untuk daftar lengkap prosedur, lihat Prosedur Spark dalam dokumentasi Apache Iceberg.

  • Saat menghapus lunak dariOfflineStore: alih-alih menggunakan perintah di Athena, gunakan DELETE perintah di Apache DELETE FROMSpark.

  • Untuk menghapus catatan dari versi sebelumnya dari tabel Iceberg Anda untuk menghapus catatan dari: OfflineStore

    • Saat mengubah konfigurasi tabel Iceberg Anda: alih-alih menggunakan ALTER TABLE perintah dari Athena, gunakan prosedur. expire_snapshots

    • Untuk menghapus file data yang tidak lagi diperlukan dari tabel Iceberg Anda: alih-alih menggunakan VACUUM perintah di Athena, gunakan prosedur. remove_orphan_files