

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
<a name="feature-store-delete-records"></a>

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, lihat[Diagram konsumsi](feature-store-concepts.md#feature-store-concepts-ingestion).

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.

**Topics**
+ [Hapus catatan dari toko online](#feature-store-delete-records-online-store)
+ [Hapus catatan dari toko offline](#feature-store-delete-records-offline-store)

## Hapus catatan dari toko online
<a name="feature-store-delete-records-online-store"></a>

Anda dapat menghapus catatan dengan lembut atau keras dari toko online menggunakan `DeleteRecord` API dengan menggunakan parameter `DeletionMode` permintaan untuk menentukan `SoftDelete` (default) atau`HardDelete`. Untuk informasi selengkapnya tentang `DeleteRecord` API, lihat [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)di Referensi Amazon SageMaker API.

Dengan toko online:
+ Saat Anda menghapus lunak (default), catatan tidak lagi dapat diambil oleh GetRecord atau BatchGetRecord dan nilai kolom fitur disetel ke`null`, 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 ke`True`, `EventTime` disetel ke input hapus`EventTime`, dan nilai fitur lainnya yang disetel ke`null`.

Perhatikan bahwa yang `EventTime` ditentukan `DeleteRecord` harus ditetapkan lebih lambat `EventTime` dari catatan yang ada di `OnlineStore` untuk yang sama`RecordIdentifer`. Jika tidak, penghapusan tidak terjadi:
+ Untuk`SoftDelete`, catatan yang ada (tidak dihapus) tetap ada di`OnlineStore`, meskipun penanda catatan hapus masih ditulis ke file`OfflineStore`. 
+ `HardDelete`return`EventTime`: `400 ValidationException` untuk menunjukkan bahwa operasi penghapusan gagal. Tidak ada penanda catatan hapus yang ditulis ke file`OfflineStore`.

Contoh berikut menggunakan operasi SDK for Python (Boto3) untuk [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/delete_record.html#delete-record](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/delete_record.html#delete-record)menghapus rekaman 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
<a name="feature-store-delete-records-online-store-soft-delete"></a>

Untuk soft delete Anda perlu menggunakan `DeleteRecord` API dan dapat menggunakan default `DeletionMode` atau mengatur `DeletionMode` ke`SoftDelete`. 

```
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
<a name="feature-store-delete-records-online-store-hard-delete"></a>

Untuk hard delete, Anda perlu menggunakan `DeleteRecord` API dan atur `DeletionMode` ke`HardDelete`.

```
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
<a name="feature-store-delete-records-offline-store"></a>

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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html) 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
<a name="feature-store-delete-records-offline-store-get-iceberg-table-name"></a>

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, lihat[Memulai dengan Amazon SageMaker Feature Store](feature-store-getting-started.md).

Untuk mendapatkan Anda`iceberg-table-name`, gunakan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html.title](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html.title)API untuk mendapatkan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCatalogConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCatalogConfig.html). Ini berisi metadata tabel Glue yang berfungsi sebagai katalog data untuk. `OfflineStore` Yang di `TableName` dalamnya `DataCatalogConfig` adalah milikmu`iceberg-table-name`.

### Amazon Athena toko offline contoh penghapusan lunak dan keras
<a name="feature-store-delete-records-offline-store-athena"></a>

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 Anda`OfflineStore`, lihat[Hapus catatan dari toko online](#feature-store-delete-records-online-store). 

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](#feature-store-delete-records-offline-store-get-iceberg-table-name) 

1. Jalankan `DELETE` perintah untuk menghapus catatan lunak pada`OfflineStore`, 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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html) di panduan pengguna Athena.

1. 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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-data-optimization.html) di panduan pengguna Athena. 

      ```
      OPTIMIZE iceberg-table-name REWRITE DATA USING BIN_PACK
      ```

   1. (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 [MENGUBAH PROPERTI SET TABEL di panduan pengguna](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-managing-tables.html#querying-iceberg-alter-table-set-properties) Athena. Untuk informasi selengkapnya tentang pasangan nilai kunci properti tabel Iceberg, lihat Properti [tabel di panduan pengguna](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-creating-tables.html#querying-iceberg-table-properties) Athena. 

      ```
      ALTER TABLE iceberg-table-name SET TBLPROPERTIES (
        'vacuum_min_snapshots_to_keep'='your-specified-value',
        'vacuum_max_snapshot_age_seconds'='your-specified-value'
      )
      ```

   1. Jalankan `VACUUM` perintah untuk menghapus file data yang tidak lagi diperlukan untuk tabel Iceberg Anda, tidak direferensikan oleh versi saat ini. `VACUUM`Perintah 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. [https://docs.aws.amazon.com/athena/latest/ug/vacuum-statement.html](https://docs.aws.amazon.com/athena/latest/ug/vacuum-statement.html)

      ```
      VACUUM iceberg-table-name
      ```

### Contoh penghapusan lunak dan keras toko offline Apache Spark
<a name="feature-store-delete-records-offline-store-spark"></a>

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](#feature-store-delete-records-offline-store-athena) atas, tetapi menggunakan prosedur Spark. Untuk daftar lengkap prosedur, lihat Prosedur [Spark](https://iceberg.apache.org/docs/1.3.1/spark-procedures/) dalam dokumentasi Apache Iceberg. 
+ Saat menghapus lunak dari`OfflineStore`: alih-alih menggunakan perintah di Athena, gunakan `DELETE` perintah di Apache [https://iceberg.apache.org/docs/latest/spark-writes/#delete-from](https://iceberg.apache.org/docs/latest/spark-writes/#delete-from)Spark.
+ 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. [https://iceberg.apache.org/docs/1.3.1/spark-procedures/#expire_snapshots](https://iceberg.apache.org/docs/1.3.1/spark-procedures/#expire_snapshots)
  + Untuk menghapus file data yang tidak lagi diperlukan dari tabel Iceberg Anda: alih-alih menggunakan `VACUUM` perintah di Athena, gunakan prosedur. [https://iceberg.apache.org/docs/1.3.1/spark-procedures/#remove_orphan_files](https://iceberg.apache.org/docs/1.3.1/spark-procedures/#remove_orphan_files)