

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

# Optimalisasi retensi snapshot
<a name="snapshot-retention-management"></a>

Fitur retensi snapshot Apache Iceberg memungkinkan pengguna untuk menanyakan data historis pada titik waktu tertentu dan mengembalikan modifikasi yang tidak diinginkan ke tabel mereka. Di Katalog AWS Glue Data, konfigurasi retensi snapshot mengontrol berapa lama snapshot ini (versi data tabel) disimpan sebelum kedaluwarsa dan dihapus. Ini membantu mengelola biaya penyimpanan dan overhead metadata dengan menghapus snapshot lama secara otomatis berdasarkan periode retensi yang dikonfigurasi atau jumlah snapshot maksimum yang harus disimpan. 

Anda dapat mengonfigurasi periode retensi dalam beberapa hari dan jumlah snapshot maksimum yang akan disimpan untuk tabel. AWS Glue menghapus snapshot yang lebih lama dari periode retensi yang ditentukan dari metadata tabel, sambil menjaga snapshot terbaru hingga batas yang dikonfigurasi. Setelah menghapus snapshot lama dari metadata, AWS Glue hapus data dan file metadata yang sesuai yang tidak lagi direferensikan dan unik untuk snapshot yang kedaluwarsa. Ini memungkinkan kueri perjalanan waktu hanya hingga sisa snapshot yang disimpan, sambil merebut kembali ruang penyimpanan yang digunakan oleh data snapshot yang kedaluwarsa.

**Topics**
+ [Mengaktifkan pengoptimal retensi snapshot](enable-snapshot-retention.md)
+ [Memperbarui pengoptimal retensi snapshot](update-snapshot-retention.md)
+ [Menonaktifkan pengoptimal retensi snapshot](disable-snapshot-retention.md)

# Mengaktifkan pengoptimal retensi snapshot
<a name="enable-snapshot-retention"></a>

 Anda dapat menggunakan AWS Glue konsol, AWS CLI, atau AWS API untuk mengaktifkan pengoptimal retensi snapshot untuk tabel Apache Iceberg Anda di Katalog Data. Untuk tabel baru, Anda dapat memilih Apache Iceberg sebagai format tabel dan mengaktifkan pengoptimal retensi snapshot saat Anda membuat tabel. Retensi snapshot dinonaktifkan secara default untuk tabel baru.

------
#### [ Console ]

**Untuk mengaktifkan pengoptimal retensi snapshot**

1.  Buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)dan masuk sebagai administrator data lake, pembuat tabel, atau pengguna yang telah diberikan `lakeformation:GetDataAccess` izin `glue:UpdateTable` dan di atas tabel. 

1. Di panel navigasi, di bawah **Katalog Data**, pilih **Tabel**.

1. ****Pada halaman **Tabel, pilih tabel** Iceberg yang ingin Anda aktifkan pengoptimal retensi snapshot, lalu di bawah menu **Tindakan**, pilih Aktifkan di bawah Optimasi.****

   Anda juga dapat mengaktifkan optimasi dengan memilih tabel dan membuka halaman **rincian Tabel**. Pilih tab **Pengoptimalan tabel** di bagian bawah halaman, dan pilih **Aktifkan retensi snapshot**. 

1. Pada halaman **Aktifkan pengoptimalan**, di bawah **konfigurasi Optimasi**, Anda memiliki dua opsi: **Gunakan pengaturan default** atau **Sesuaikan pengaturan**. Jika Anda memilih untuk menggunakan pengaturan default, AWS Glue gunakan properti yang ditentukan dalam konfigurasi tabel Iceberg untuk menentukan periode retensi snapshot dan jumlah snapshot yang akan dipertahankan. Dengan tidak adanya konfigurasi ini, AWS Glue pertahankan satu snapshot selama lima hari, dan menghapus file yang terkait dengan snapshot yang kedaluwarsa.

1.  Selanjutnya, pilih peran IAM yang AWS Glue dapat diambil atas nama Anda untuk menjalankan pengoptimal. Untuk detail tentang izin yang diperlukan untuk peran IAM, lihat bagian. [Prasyarat pengoptimalan tabel](optimization-prerequisites.md)

   Ikuti langkah-langkah di bawah ini untuk memperbarui peran IAM yang ada: 

   1.  Untuk memperbarui kebijakan izin untuk peran IAM, di konsol IAM, buka peran IAM yang digunakan untuk menjalankan pemadatan. 

   1.  Di bagian Tambahkan izin, pilih Buat kebijakan. Di jendela browser yang baru dibuka, buat kebijakan baru untuk digunakan dengan peran Anda. 

   1. Di halaman Buat kebijakan, pilih tab JSON. Salin kode JSON yang ditampilkan di Prasyarat ke bidang editor kebijakan.

1. Jika Anda memilih untuk mengatur nilai untuk **konfigurasi retensi Snapshot** secara manual, pilih **Sesuaikan pengaturan**.   
![\[Halaman detail tabel Apache Iceberg dengan Aktifkan Retensi> Sesuaikan opsi pengaturan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/table-enable-retention.png)

1. Pilih kotak **Terapkan peran IAM yang dipilih ke opsi pengoptimal yang dipilih** untuk menggunakan peran IAM tunggal untuk semua mengaktifkan semua pengoptimal.

1. Jika Anda memiliki konfigurasi kebijakan keamanan di mana pengoptimal tabel Iceberg perlu mengakses bucket Amazon S3 dari Virtual Private Cloud (VPC) tertentu, buat koneksi jaringan atau gunakan yang sudah ada. AWS Glue 

   Jika Anda belum menyiapkan Koneksi AWS Glue VPC, buat yang baru dengan mengikuti langkah-langkah di bagian [Membuat koneksi untuk konektor](https://docs.aws.amazon.com/glue/latest/dg/creating-connections.html) menggunakan AWS Glue konsol atau /SDK. AWS CLI

1. Selanjutnya, di bawah **konfigurasi retensi Snapshot**, pilih untuk menggunakan nilai yang ditentukan dalam [konfigurasi tabel Iceberg](https://iceberg.apache.org/docs/1.5.2/configuration/#table-behavior-properties), atau tentukan nilai kustom untuk periode retensi snapshot (history.expire. max-snapshot-age-ms), jumlah snapshot minimum (history.expire. min-snapshots-to-keep) untuk mempertahankan, dan waktu dalam jam antara pekerjaan penghapusan snapshot berturut-turut berjalan.

1.  Pilih **Hapus file terkait** untuk menghapus file yang mendasarinya saat pengoptimal tabel menghapus snapshot lama dari metadata tabel.

    Jika Anda tidak memilih opsi ini, ketika snapshot lama dihapus dari metadata tabel, file terkait mereka akan tetap berada di penyimpanan sebagai file yatim piatu. 

1. Selanjutnya, baca pernyataan peringatan, dan pilih **Saya mengakui** untuk melanjutkan.
**catatan**  
 Di Katalog Data, pengoptimal retensi snapshot menghormati siklus hidup yang dikendalikan oleh kebijakan retensi tingkat cabang dan tag. Untuk informasi selengkapnya, lihat bagian [Percabangan dan penandaan](https://iceberg.apache.org/docs/latest/branching/#overview) di dokumentasi Gunung Es.

1. Tinjau konfigurasi dan pilih **Aktifkan pengoptimalan**.

   Tunggu beberapa menit hingga pengoptimal retensi berjalan dan kedaluwarsa snapshot lama berdasarkan konfigurasi.

------
#### [ AWS CLI ]

 Untuk mengaktifkan retensi snapshot untuk tabel Iceberg baru di AWS Glue, Anda perlu membuat pengoptimal tabel tipe `retention` dan mengatur `enabled` bidang ke dalam. `true` `table-optimizer-configuration` Anda dapat melakukan ini menggunakan AWS CLI perintah `create-table-optimizer` atau`update-table-optimizer`. Selain itu, Anda perlu menentukan bidang konfigurasi retensi seperti `snapshotRetentionPeriodInDays` dan `numberOfSnapshotsToRetain` berdasarkan kebutuhan Anda.

Contoh berikut menunjukkan cara mengaktifkan pengoptimal retensi snapshot. Ganti ID akun dengan ID AWS akun yang valid. Ganti nama database dan nama tabel dengan nama tabel Iceberg yang sebenarnya dan nama database. Ganti `roleArn` dengan Nama AWS Sumber Daya (ARN) peran IAM dan nama peran IAM yang memiliki izin yang diperlukan untuk menjalankan pengoptimal retensi snapshot. 

```
aws glue create-table-optimizer \
  --catalog-id 123456789012 \
  --database-name iceberg_db \
  --table-name iceberg_table \
  --table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012:role/optimizer_role","enabled":'true', "vpcConfiguration":{
"glueConnectionName":"glue_connection_name"}, "retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7,"numberOfSnapshotsToRetain":3,"cleanExpiredFiles":'true'}}}'\
  --type retention
```

 Perintah ini membuat pengoptimal retensi untuk tabel Iceberg yang ditentukan dalam katalog, database, dan Wilayah yang diberikan. table-optimizer-configurationMenentukan peran IAM ARN untuk digunakan, mengaktifkan pengoptimal, dan menetapkan konfigurasi retensi. Dalam contoh ini, ia mempertahankan snapshot selama 7 hari, menyimpan minimal 3 snapshot, dan membersihkan file yang kedaluwarsa. 
+  snapshotRetentionPeriodInDays —Jumlah hari untuk menyimpan snapshot sebelum kedaluwarsa. Nilai default-nya adalah `5`. 
+ numberOfSnapshotsToRetain — Jumlah minimum snapshot yang harus disimpan, bahkan jika mereka lebih tua dari periode retensi. Nilai default-nya adalah `1`. 
+ cleanExpiredFiles — Boolean yang menunjukkan apakah akan menghapus file data yang kedaluwarsa setelah snapshot kedaluwarsa. Nilai default-nya adalah `true`.

   Ketika disetel ke true, snapshot lama akan dihapus dari metadata tabel, dan file yang mendasarinya dihapus. Jika parameter ini disetel ke false, snapshot lama akan dihapus dari metadata tabel tetapi file yang mendasarinya tetap berada di penyimpanan sebagai file yatim piatu. 

------
#### [ AWS API ]

[CreateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-CreateTableOptimizer)Operasi panggilan untuk mengaktifkan pengoptimal retensi snapshot untuk tabel.

------

Setelah Anda mengaktifkan pemadatan, tab **pengoptimalan tabel** menunjukkan detail pemadatan berikut (setelah sekitar 15-20 menit):

Waktu mulai  
Waktu di mana pengoptimal retensi snapshot dimulai. Nilainya adalah stempel waktu dalam waktu UTC. 

Waktu aktif  
Waktu menunjukkan berapa lama pengoptimal untuk menyelesaikan tugas. Nilainya adalah stempel waktu dalam waktu UTC. 

Status  
Status pengoptimal dijalankan. Nilai adalah sukses atau gagal.

File data dihapus  
Jumlah total file yang dihapus.

File manifes dihapus  
Jumlah total file manifes yang dihapus.

Daftar manifes dihapus  
Jumlah total daftar manifes yang dihapus.

# Memperbarui pengoptimal retensi snapshot
<a name="update-snapshot-retention"></a>

 Anda dapat memperbarui konfigurasi pengoptimal retensi snapshot yang ada untuk tabel Apache Iceberg tertentu menggunakan AWS Glue konsol,, AWS CLI atau API. UpdateTableOptimizer 

------
#### [ Console ]

**Untuk memperbarui konfigurasi retensi snapshot**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Katalog Data** dan pilih **Tabel**. Dari daftar tabel, pilih tabel Iceberg yang ingin Anda perbarui konfigurasi pengoptimal retensi snapshot.

1. Di bagian bawah halaman **detail Tabel**, pilih tab **Pengoptimalan tabel**, lalu pilih **Edit**. Anda juga dapat memilih **Edit** di bawah **Optimasi** dari menu **Tindakan** yang terletak di sudut kanan atas halaman.

1.  Pada halaman **Edit optimasi**, buat perubahan yang diinginkan. 

1.  Pilih **Simpan**. 

------
#### [ AWS CLI ]

 Untuk memperbarui pengoptimal retensi snapshot menggunakan AWS CLI, Anda dapat menggunakan perintah berikut: 

```
aws glue update-table-optimizer \
 --catalog-id 123456789012 \
 --database-name iceberg_db \
 --table-name iceberg_table \
 --table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012:role/optimizer_role"","enabled":'true', "vpcConfiguration":{"glueConnectionName":"glue_connection_name"},"retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7,"numberOfSnapshotsToRetain":3,"cleanExpiredFiles":'true'}}}' \
 --type retention
```

 Perintah ini memperbarui konfigurasi retensi untuk tabel yang ditentukan dalam katalog, database, dan Wilayah yang diberikan. Parameter kuncinya adalah: 
+  snapshotRetentionPeriodInDays —Jumlah hari untuk menyimpan snapshot sebelum kedaluwarsa. Nilai default-nya adalah `1`. 
+ numberOfSnapshotsToRetain — Jumlah minimum snapshot yang harus disimpan, bahkan jika mereka lebih tua dari periode retensi. Nilai default-nya adalah `5`. 
+ cleanExpiredFiles — Boolean yang menunjukkan apakah akan menghapus file data yang kedaluwarsa setelah snapshot kedaluwarsa. Nilai default-nya adalah `true`. 

   Ketika disetel ke true, snapshot lama akan dihapus dari metadata tabel, dan file yang mendasarinya dihapus. Jika parameter ini disetel ke false, snapshot lama akan dihapus dari metadata tabel tetapi file yang mendasarinya tetap berada di penyimpanan sebagai file yatim piatu. 

------
#### [ API ]

Untuk memperbarui pengoptimal tabel, Anda dapat menggunakan `UpdateTableOptimizer` API. API ini memungkinkan Anda memperbarui konfigurasi pengoptimal tabel yang ada untuk pemadatan, retensi, atau penghapusan file yatim piatu. Parameter permintaan meliputi:
+ CataloGid (wajib): ID katalog yang berisi tabel 
+  DatabaseName (opsional): Nama database yang berisi tabel 
+  TableName (opsional): Nama tabel 
+  type (required): Jenis pengoptimal tabel (pemadatan, retensi, atau orphan\$1file\$1deletion) 
+  RetentionConfiguration (wajib): Konfigurasi yang diperbarui untuk pengoptimal tabel, termasuk ARN peran, status diaktifkan, konfigurasi retensi, dan konfigurasi penghapusan file yatim piatu. 

------

# Menonaktifkan pengoptimal retensi snapshot
<a name="disable-snapshot-retention"></a>

 Anda dapat menonaktifkan pengoptimal retensi snapshot untuk tabel Apache Iceberg tertentu menggunakan konsol atau. AWS Glue AWS CLI

------
#### [ Console ]

**Untuk menonaktifkan retensi snapshot**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Pilih **Katalog Data** dan pilih **Tabel**. Dari daftar tabel, pilih tabel Iceberg yang ingin Anda nonaktifkan pengoptimal untuk retensi snapshot.

1. Pada bagian bawah halaman **Detail tabel**, pilih **Optimasi tabel** dan **Nonaktifkan**, **retensi Snapshot** di bawah **Tindakan**.

   Anda juga dapat memilih **Nonaktifkan** di bawah **Optimasi** dari menu **Tindakan** yang terletak di sudut kanan atas halaman.

1.  Pilih **Nonaktifkan** pada pesan konfirmasi. Anda dapat mengaktifkan kembali pengoptimal retensi snapshot di lain waktu. 

    Setelah Anda mengonfirmasi, pengoptimal retensi snapshot dinonaktifkan dan status retensi snapshot kembali ke. `Not enabled`

------
#### [ AWS CLI ]

Pada contoh berikut, ganti ID akun dengan ID AWS akun yang valid. Ganti nama database dan nama tabel dengan nama tabel Iceberg yang sebenarnya dan nama database. Ganti `roleArn` dengan Nama AWS Sumber Daya (ARN) peran IAM dan nama sebenarnya dari peran IAM yang memiliki izin yang diperlukan untuk menjalankan pengoptimal retensi.

```
aws glue update-table-optimizer \
  --catalog-id 123456789012 \
  --database-name iceberg_db \
  --table-name iceberg_table \
  --table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012:role/optimizer_role", "vpcConfiguration":{"glueConnectionName":"glue_connection_name"}, "enabled":'false'}'\ 
  --type retention
```

------
#### [ AWS API ]

[UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer)Operasi panggilan untuk menonaktifkan pengoptimal retensi snapshot untuk tabel tertentu.

------