

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

# Mengisi dan mengelola tabel transaksional
<a name="populate-otf"></a>

[Apache Iceberg](https://iceberg.apache.org/), [Apache Hudi](https://hudi.incubator.apache.org/), dan Linux Foundation [Delta Lake](https://delta.io/) adalah format tabel open-source yang dirancang untuk menangani analisis data skala besar dan beban kerja data lake di Apache Spark. 

Anda dapat mengisi tabel Iceberg, Hudi, dan Delta Lake dengan menggunakan metode berikut: AWS Glue Data Catalog 
+ Perayap AWS Glue; — Perayap AWS Glue s dapat secara otomatis menemukan dan mengisi metadata tabel Iceberg, Hudi dan Delta Lake di Katalog Data. Untuk informasi selengkapnya, lihat [Menggunakan crawler untuk mengisi Katalog Data](add-crawler.md).
+ AWS Glue Pekerjaan ETL — Anda dapat membuat pekerjaan ETL untuk menulis data ke tabel Iceberg, Hudi, dan Delta Lake dan mengisi metadata mereka di Katalog Data. Untuk informasi selengkapnya, lihat [Menggunakan kerangka kerja data lake dengan pekerjaan AWS Glue ETL](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-datalake-native-frameworks.html).
+ AWS Glue konsol, AWS Lake Formation konsol, AWS CLI atau API — Anda dapat menggunakan AWS Glue konsol, konsol Lake Formation, atau API untuk membuat dan mengelola definisi tabel Iceberg di Katalog Data.

**Topics**
+ [Membuat tabel Apache Iceberg](#creating-iceberg-tables)
+ [Mengoptimalkan tabel Iceberg](table-optimizers.md)
+ [Mengoptimalkan kinerja kueri untuk tabel Iceberg](iceberg-column-statistics.md)

## Membuat tabel Apache Iceberg
<a name="creating-iceberg-tables"></a>

Anda dapat membuat tabel Apache Iceberg yang menggunakan format data Apache Parquet di AWS Glue Data Catalog dengan data yang berada di Amazon S3. Tabel dalam Katalog Data adalah definisi metadata yang mewakili data dalam penyimpanan data. Secara default, AWS Glue membuat tabel Iceberg v2. Untuk perbedaan antara tabel v1 dan v2, lihat [Format perubahan versi dalam dokumentasi](https://iceberg.apache.org/spec/#appendix-e-format-version-changes) Apache Iceberg.

 [Apache Iceberg](https://iceberg.apache.org/) adalah format tabel terbuka untuk dataset analitik yang sangat besar. Iceberg memungkinkan perubahan mudah pada skema Anda, juga dikenal sebagai evolusi skema, yang berarti bahwa pengguna dapat menambahkan, mengganti nama, atau menghapus kolom dari tabel data tanpa mengganggu data yang mendasarinya. Iceberg juga menyediakan dukungan untuk pembuatan versi data, yang memungkinkan pengguna untuk melacak perubahan data dari waktu ke waktu. Ini memungkinkan fitur perjalanan waktu, yang memungkinkan pengguna untuk mengakses dan menanyakan versi historis data dan menganalisis perubahan data antara pembaruan dan penghapusan.

Anda dapat menggunakan AWS Glue atau konsol Lake Formation atau `CreateTable` operasi di AWS Glue API untuk membuat tabel Gunung Es di Katalog Data. Untuk informasi selengkapnya, lihat [CreateTable tindakan (Python: create\$1table](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-CreateTable)).

Saat Anda membuat tabel Gunung Es di Katalog Data, Anda harus menentukan format tabel dan jalur file metadata di Amazon S3 agar dapat melakukan pembacaan dan penulisan.

 Anda dapat menggunakan Lake Formation untuk mengamankan tabel Gunung Es menggunakan izin kontrol akses berbutir halus saat Anda mendaftarkan lokasi data Amazon S3. AWS Lake Formation Untuk data sumber di Amazon S3 dan metadata yang tidak terdaftar di Lake Formation, akses ditentukan oleh kebijakan izin IAM untuk Amazon S3 dan tindakan. AWS Glue Untuk informasi selengkapnya, lihat [Mengelola izin](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-permissions.html). 

**catatan**  
Data Catalog tidak mendukung pembuatan partisi dan menambahkan properti tabel Iceberg.

### Prasyarat
<a name="iceberg-prerequisites"></a>

 Untuk membuat tabel Gunung Es di Katalog Data, dan mengatur izin akses data Lake Formation, Anda harus melengkapi persyaratan berikut: 

1. 

**Izin diperlukan untuk membuat tabel Gunung Es tanpa data yang terdaftar di Lake Formation.**

   Selain izin yang diperlukan untuk membuat tabel di Katalog Data, pembuat tabel memerlukan izin berikut:
   + `s3:PutObject`pada sumber daya arn:aws:s3::: \$1bucketName\$1
   + `s3:GetObject`pada sumber daya arn:aws:s3::: \$1bucketName\$1
   + `s3:DeleteObject`pada sumber daya arn:aws:s3::: \$1bucketName\$1

1. 

**Izin yang diperlukan untuk membuat tabel Gunung Es dengan data yang terdaftar di Lake Formation:**

   Untuk menggunakan Lake Formation untuk mengelola dan mengamankan data di danau data Anda, daftarkan lokasi Amazon S3 Anda yang memiliki data untuk tabel dengan Lake Formation. Ini agar Lake Formation dapat menjual kredensyal ke layanan AWS analitis seperti Athena, Redshift Spectrum, dan Amazon EMR untuk mengakses data. Untuk informasi selengkapnya tentang mendaftarkan lokasi Amazon S3, lihat [Menambahkan lokasi Amazon S3 ke](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html) data lake Anda. 

   Kepala sekolah yang membaca dan menulis data dasar yang terdaftar di Lake Formation memerlukan izin berikut:
   + `lakeformation:GetDataAccess`
   + `DATA_LOCATION_ACCESS`

     Kepala sekolah yang memiliki izin lokasi data di lokasi juga memiliki izin lokasi di semua lokasi anak.

     Untuk informasi selengkapnya tentang izin lokasi data, lihat Ulink [kontrol akses data yang mendasari](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html#data-location-permissions).

 Untuk mengaktifkan pemadatan, layanan perlu mengambil peran IAM yang memiliki izin untuk memperbarui tabel di Katalog Data. Untuk detailnya, lihat [Prasyarat pengoptimalan tabel](optimization-prerequisites.md) 

### Membuat tabel Iceberg
<a name="create-iceberg-table"></a>

Anda dapat membuat tabel Iceberg v1 dan v2 menggunakan atau konsol Lake AWS Glue Formation atau AWS Command Line Interface seperti yang didokumentasikan di halaman ini. Anda juga dapat membuat tabel Iceberg menggunakan. Perayap AWS Glue Untuk informasi selengkapnya, lihat [Katalog Data dan Crawler](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) di Panduan AWS Glue Pengembang.

**Untuk membuat tabel Iceberg**

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

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. Di bawah Katalog Data, pilih **Tabel**, dan gunakan tombol **Buat tabel** untuk menentukan atribut berikut:
   + **Nama tabel** - Masukkan nama untuk tabel. Jika Anda menggunakan Athena untuk mengakses tabel, gunakan [tips penamaan ini di Panduan](https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html) Pengguna Amazon Athena.
   + **Database** — Pilih database yang ada atau buat yang baru.
   + **Deskripsi** — Deskripsi tabel. Anda dapat menulis deskripsi untuk membantu Anda memahami isi tabel tersebut.
   + **Format tabel** - Untuk **format Tabel**, pilih Apache Iceberg.
   + **Aktifkan pemadatan** — Pilih **Aktifkan pemadatan** untuk memadatkan objek Amazon S3 kecil dalam tabel menjadi objek yang lebih besar.
   + **Peran IAM** — Untuk menjalankan pemadatan, layanan mengasumsikan peran IAM atas nama Anda. Anda dapat memilih peran IAM menggunakan drop-down. Pastikan peran memiliki izin yang diperlukan untuk mengaktifkan pemadatan.

     Untuk mempelajari lebih lanjut tentang izin yang diperlukan, lihat[Prasyarat pengoptimalan tabel](optimization-prerequisites.md).
   + **Lokasi** - Tentukan jalur ke folder di Amazon S3 yang menyimpan tabel metadata. Iceberg membutuhkan file metadata dan lokasi di Katalog Data untuk dapat melakukan pembacaan dan penulisan.
   + **Skema** - Pilih **Tambahkan kolom** untuk menambahkan kolom dan tipe data kolom. Anda memiliki opsi untuk membuat tabel kosong dan memperbarui skema nanti. Katalog Data mendukung tipe data Hive. Untuk informasi selengkapnya, lihat [Tipe data sarang](https://cwiki.apache.org/confluence/plugins/servlet/mobile?contentId=27838462#content/view/27838462). 

      Iceberg memungkinkan Anda untuk mengembangkan skema dan partisi setelah Anda membuat tabel. Anda dapat menggunakan [kueri Athena untuk memperbarui skema tabel dan kueri](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-evolving-table-schema.html) [Spark](https://iceberg.apache.org/docs/latest/spark-ddl/#alter-table-sql-extensions) untuk memperbarui partisi. 

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

```
aws glue create-table \
    --database-name iceberg-db \
    --region us-west-2 \
    --open-table-format-input '{
      "IcebergInput": { 
           "MetadataOperation": "CREATE",
           "Version": "2"
         }
      }' \
    --table-input '{"Name":"test-iceberg-input-demo",
            "TableType": "EXTERNAL_TABLE",
            "StorageDescriptor":{ 
               "Columns":[ 
                   {"Name":"col1", "Type":"int"}, 
                   {"Name":"col2", "Type":"int"}, 
                   {"Name":"col3", "Type":"string"}
                ], 
               "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/"
            }
        }'
```

------

**Topics**
+ [Prasyarat](#iceberg-prerequisites)
+ [Membuat tabel Iceberg](#create-iceberg-table)

# Mengoptimalkan tabel Iceberg
<a name="table-optimizers"></a>

AWS Glue mendukung opsi pengoptimalan tabel mutiple untuk meningkatkan manajemen dan kinerja tabel Apache Iceberg yang digunakan oleh mesin AWS analitik dan pekerjaan ETL. Pengoptimal ini menyediakan pemanfaatan penyimpanan yang efisien, peningkatan kinerja kueri, dan manajemen data yang efektif. Ada tiga jenis pengoptimal tabel yang tersedia di: AWS Glue
+ **Pemadatan** — Pemadatan data memadatkan file data kecil untuk mengurangi penggunaan penyimpanan dan meningkatkan kinerja baca. File data digabungkan dan ditulis ulang untuk menghapus data usang dan mengkonsolidasikan data yang terfragmentasi menjadi file yang lebih besar dan lebih efisien. Anda dapat mengonfigurasi pemadatan agar berjalan secara otomatis. 

  Binpack adalah strategi pemadatan default di Apache Iceberg. Ini menggabungkan file data yang lebih kecil menjadi yang lebih besar untuk kinerja yang optimal. Compaction juga mendukung strategi sort dan Z-order yang mengelompokkan data serupa bersama-sama. Urutkan mengatur data berdasarkan kolom tertentu, meningkatkan kinerja kueri untuk operasi yang difilter. Z-order membuat kumpulan data yang diurutkan yang meningkatkan kinerja kueri saat beberapa kolom ditanyakan secara bersamaan. Ketiga strategi pemadatan - bincpak, sort, dan Z-order - mengurangi jumlah data yang dipindai oleh mesin kueri, sehingga menurunkan biaya pemrosesan kueri.
+ **Retensi snapshot** — Snapshot adalah versi stempel waktu dari tabel Iceberg. Konfigurasi retensi snapshot memungkinkan pelanggan untuk menerapkan berapa lama untuk menyimpan snapshot dan berapa banyak snapshot yang akan disimpan. Mengonfigurasi pengoptimal retensi snapshot dapat membantu mengelola overhead penyimpanan dengan menghapus snapshot yang lebih lama dan tidak perlu serta file yang mendasarinya yang terkait.
+ **Penghapusan file yatim piatu — File** yatim piatu adalah file yang tidak lagi direferensikan oleh metadata tabel Iceberg. File-file ini dapat terakumulasi dari waktu ke waktu, terutama setelah operasi seperti penghapusan tabel atau pekerjaan ETL yang gagal. Mengaktifkan penghapusan file yatim memungkinkan AWS Glue untuk secara berkala mengidentifikasi dan menghapus file-file yang tidak perlu ini, membebaskan penyimpanan.

Konfigurasi pengoptimalan tingkat katalog tersedia melalui konsol Lake Formation dan menggunakan operasi API. AWS Glue `UpdateCatalog` Anda dapat mengaktifkan atau menonaktifkan pemadatan, retensi snapshot, dan pengoptimal penghapusan file yatim untuk tabel Iceberg individual di Katalog Data menggunakan konsol, atau operasi API. AWS Glue AWS CLI AWS Glue 

 Video berikut menunjukkan cara mengonfigurasi pengoptimal untuk tabel Iceberg di Katalog Data. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/xOXE7AS-pNA?si=lKvt_TSlPkoc6OXn/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/xOXE7AS-pNA?si=lKvt_TSlPkoc6OXn)


**Topics**
+ [Prasyarat pengoptimalan tabel](optimization-prerequisites.md)
+ [Pengoptimal tabel tingkat katalog](catalog-level-optimizers.md)
+ [Optimalisasi pemadatan](compaction-management.md)
+ [Optimalisasi retensi snapshot](snapshot-retention-management.md)
+ [Menghapus file yatim piatu](orphan-file-deletion.md)
+ [Melihat detail pengoptimalan](view-optimization-status.md)
+ [Melihat Amazon CloudWatch metrik](view-optimization-metrics.md)
+ [Menghapus pengoptimal](delete-optimizer.md)
+ [Pertimbangan dan batasan](optimizer-notes.md)
+ [Wilayah yang Didukung untuk pengoptimal tabel](regions-optimizers.md)

# Prasyarat pengoptimalan tabel
<a name="optimization-prerequisites"></a>

Pengoptimal tabel mengasumsikan izin peran AWS Identity and Access Management (IAM) yang Anda tentukan saat Anda mengaktifkan opsi pengoptimalan (pemadatan, retensi snapshot, dan penghapusan file yatim piatu) untuk sebuah tabel. Anda dapat membuat peran tunggal untuk semua pengoptimal atau membuat peran terpisah untuk setiap pengoptimal.

**catatan**  
Pengoptimal penghapusan file yatim piatu tidak memerlukan izin atau. `glue:updateTable` `s3:putObject` Pengoptimal kedaluwarsa snapshot dan pemadatan memerlukan set izin yang sama.

Peran IAM harus memiliki izin untuk membaca data dan memperbarui metadata di Katalog Data. Anda dapat membuat peran IAM dan melampirkan kebijakan inline berikut:
+ Tambahkan kebijakan sebaris berikut yang memberikan izin Amazon read/write S3 di lokasi untuk data yang tidak terdaftar. AWS Lake Formation Kebijakan ini juga mencakup izin untuk memperbarui tabel di Katalog Data, dan AWS Glue mengizinkan menambahkan log di Amazon CloudWatch log dan metrik publikasi. Untuk data sumber di Amazon S3 yang tidak terdaftar di Lake Formation, akses ditentukan oleh kebijakan izin IAM untuk Amazon S3 dan tindakan. AWS Glue 

  Dalam kebijakan inline berikut, ganti `bucket-name` dengan nama bucket Amazon S3 Anda`aws-account-id`, `region` dan dengan nomor akun dan Wilayah Katalog Data yang AWS valid`database_name`, dengan nama database Anda, `table_name` dan dengan nama tabel.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket/*"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "glue:UpdateTable",
                  "glue:GetTable"
              ],
              "Resource": [
                  "arn:aws:glue:us-east-1:111122223333:table/<database-name>/<table-name>",
                  "arn:aws:glue:us-east-1:111122223333:database/<database-name>",
                  "arn:aws:glue:us-east-1:111122223333:catalog"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogGroup",
                  "logs:CreateLogStream",
                  "logs:PutLogEvents"
              ],
              "Resource": [
                  "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-compaction/logs:*",
                  "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-retention/logs:*",
                  "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*"
              ]
          }
      ]
  }
  ```

------
+ Gunakan kebijakan berikut untuk mengaktifkan pemadatan data yang terdaftar di Lake Formation. 

  Jika peran pengoptimalan tidak memiliki izin `IAM_ALLOWED_PRINCIPALS` grup yang diberikan pada tabel, peran tersebut memerlukan Lake Formation `ALTER``DESCRIBE`, `INSERT` dan `DELETE` izin di atas tabel. 

  Untuk informasi selengkapnya tentang mendaftarkan bucket Amazon S3 dengan Lake Formation, lihat [Menambahkan lokasi Amazon S3 ke](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html) data lake Anda.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lakeformation:GetDataAccess"
        ],
        "Resource": "*"
      },
      {
        "Effect": "Allow",
        "Action": [
          "glue:UpdateTable",
          "glue:GetTable"
        ],
        "Resource": [
          "arn:aws:glue:us-east-1:111122223333:table/databaseName/tableName",
          "arn:aws:glue:us-east-1:111122223333:database/databaseName",
          "arn:aws:glue:us-east-1:111122223333:catalog"
        ]
      },
      {
        "Effect": "Allow",
        "Action": [
          "logs:CreateLogGroup",
          "logs:CreateLogStream",
          "logs:PutLogEvents"
        ],
        "Resource": [
          "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-compaction/logs:*",
          "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-retention/logs:*",
          "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*"
        ]
      }
    ]
  }
  ```

------
+ (Opsional) Untuk mengoptimalkan tabel Iceberg dengan data di bucket Amazon S3 yang dienkripsi [menggunakan enkripsi sisi Server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html), peran pemadatan memerlukan izin untuk mendekripsi objek Amazon S3 dan menghasilkan kunci data baru untuk menulis objek ke bucket terenkripsi. Tambahkan kebijakan berikut ke AWS KMS kunci yang diinginkan. Kami hanya mendukung enkripsi tingkat ember.

  ```
  {
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>"
      },
      "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
      ],
      "Resource": "*"
  }
  ```
+  (Opsional) Untuk lokasi data yang terdaftar di Lake Formation, peran yang digunakan untuk mendaftarkan lokasi memerlukan izin untuk mendekripsi objek Amazon S3 dan menghasilkan kunci data baru untuk menulis objek ke bucket terenkripsi. Untuk informasi selengkapnya, lihat [Mendaftarkan lokasi Amazon S3 terenkripsi](https://docs.aws.amazon.com/lake-formation/latest/dg/register-encrypted.html). 
+ (Opsional) Jika AWS KMS kunci disimpan di AWS akun yang berbeda, Anda harus menyertakan izin berikut ke peran pemadatan.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
        ],
        "Resource": [
          "arn:aws:kms:us-east-1:111122223333:key/key-id"
        ]
      }
    ]
  }
  ```

------
+  Peran yang Anda gunakan untuk menjalankan pemadatan harus memiliki `iam:PassRole` izin pada peran tersebut. 

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "iam:PassRole"
        ],
        "Resource": [
          "arn:aws:iam::111122223333:role/<optimizer-role-name>"
        ]
      }
    ]
  }
  ```

------
+ Tambahkan kebijakan kepercayaan berikut ke peran AWS Glue layanan untuk mengambil peran IAM untuk menjalankan proses pemadatan.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "",
        "Effect": "Allow",
        "Principal": {
          "Service": "glue.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
  ```

------
+ <a name="catalog-optimizer-requirement"></a> (Opsional) Untuk memperbarui pengaturan Katalog Data untuk mengaktifkan pengoptimalan tabel tingkat katalog, peran IAM yang digunakan harus memiliki `glue:UpdateCatalog` izin atau AWS Lake Formation `ALTER CATALOG` izin pada katalog root. Anda dapat menggunakan `GetCatalog` API untuk memverifikasi properti katalog. 

# Pengoptimal tabel tingkat katalog
<a name="catalog-level-optimizers"></a>

Dengan konfigurasi katalog satu kali, Anda dapat mengatur pengoptimal otomatis seperti pemadatan, retensi snapshot, dan penghapusan file yatim untuk semua tabel Apache Iceberg yang baru dan diperbarui di. AWS Glue Data Catalog Konfigurasi pengoptimal tingkat katalog memungkinkan Anda menerapkan pengaturan pengoptimal yang konsisten di semua tabel dalam katalog, sehingga tidak perlu mengonfigurasi pengoptimal satu per satu untuk setiap tabel.

Administrator data lake dapat mengonfigurasi pengoptimal tabel dengan memilih katalog default di konsol Lake Formation dan mengaktifkan pengoptimal menggunakan opsi. `Table optimization` Saat Anda membuat tabel baru atau memperbarui tabel yang ada di Katalog Data, Katalog Data secara otomatis menjalankan pengoptimalan tabel untuk mengurangi beban operasional.

Jika Anda telah mengonfigurasi pengoptimalan pada tingkat tabel atau jika sebelumnya Anda telah menghapus setelan pengoptimalan tabel untuk tabel, pengaturan khusus tabel tersebut lebih diutamakan daripada pengaturan katalog default untuk pengoptimalan tabel. Jika parameter konfigurasi tidak didefinisikan pada tingkat tabel atau katalog, nilai properti tabel Iceberg akan diterapkan. Pengaturan ini berlaku untuk retensi snapshot dan pengoptimal penghapusan file yatim piatu.

Saat mengaktifkan pengoptimal tingkat katalog, pertimbangkan hal berikut:
+ Saat Anda mengonfigurasi pengaturan pengoptimalan pada saat pembuatan katalog dan kemudian menonaktifkan pengoptimalan melalui permintaan Katalog Pembaruan, operasi akan mengalir melalui semua tabel di dalam katalog.
+ Jika Anda telah mengonfigurasi pengoptimal untuk tabel tertentu, maka operasi nonaktifkan di tingkat katalog tidak akan memengaruhi tabel ini.
+ Saat Anda menonaktifkan pengoptimal di tingkat katalog, tabel dengan konfigurasi pengoptimal yang ada akan mempertahankan pengaturan spesifiknya dan tetap tidak terpengaruh oleh perubahan tingkat katalog. Namun, tabel tanpa konfigurasi pengoptimalnya sendiri akan mewarisi status dinonaktifkan dari tingkat katalog.
+ Karena retensi snapshot dan pengoptimal penghapusan file yatim piatu dapat berbasis jadwal, pembaruan akan memperkenalkan penundaan acak pada awal jadwal mereka. Ini akan menyebabkan setiap pengoptimal memulai pada waktu yang sedikit berbeda, menyebarkan beban dan mengurangi kemungkinan melebihi batas layanan.
+ Pengaturan pengoptimal tingkat katalog tidak secara otomatis diwarisi oleh tabel saat enkripsi diaktifkan. AWS Glue Data Catalog Jika katalog Anda mengaktifkan enkripsi metadata, Anda harus mengonfigurasi pengoptimal tabel satu per satu untuk setiap tabel. Untuk menggunakan pewarisan pengoptimal tingkat katalog, enkripsi metadata harus dinonaktifkan pada katalog.

**Topics**
+ [Mengaktifkan optimasi tabel otomatis tingkat katalog](enable-auto-table-optimizers.md)
+ [Melihat pengoptimalan tingkat katalog](view-catalog-optimizations.md)
+ [Menonaktifkan optimasi tabel tingkat katalog](disable-auto-table-optimizers.md)

# Mengaktifkan optimasi tabel otomatis tingkat katalog
<a name="enable-auto-table-optimizers"></a>

 Anda dapat mengaktifkan optimasi tabel otomatis untuk semua tabel Apache Iceberg baru di Katalog Data. Setelah membuat tabel, Anda juga dapat secara eksplisit memperbarui pengaturan pengoptimalan tabel secara manual. 

 Untuk memperbarui pengaturan Katalog Data untuk mengaktifkan pengoptimalan tabel tingkat katalog, peran IAM yang digunakan harus memiliki izin pada `glue:UpdateCatalog` katalog root. Anda dapat menggunakan `GetCatalog` API untuk memverifikasi properti katalog. 

 Untuk tabel terkelola Lake Formation, peran IAM yang dipilih selama konfigurasi pengoptimalan katalog memerlukan Lake Formation`ALTER`,`DESCRIBE`,`INSERT`, dan `DELETE` izin untuk setiap tabel baru atau tabel yang diperbarui. 

## Untuk mengaktifkan pengoptimal tingkat katalog (konsol)
<a name="enable-catalog-optimizers-console"></a>

1. Buka konsol Lake Formation di [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Di panel navigasi, pilih **Katalog Data**.

1. Pilih tab **Katalog**.

1. Pilih katalog tingkat akun.

1. Pilih **Pengoptimalan tabel**, **Edit di bawah tab** **Pengoptimalan tabel**. **Anda juga dapat memilih **Edit pengoptimalan dari Tindakan.****  
![\[Tangkapan layar menunjukkan opsi edit untuk mengaktifkan pengoptimalan di tingkat katalog.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/catalog-edit-optimizations.png)

1. Pada halaman **optimasi Tabel**, konfigurasikan opsi berikut:  
![\[Tangkapan layar menunjukkan opsi pengoptimalan di tingkat katalog.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/catalog-optimization-options.png)

   1. Konfigurasikan pengaturan **Pemadatan**:
      + Aktifkan/nonaktifkan pemadatan.
      + Pilih peran IAM yang memiliki izin yang diperlukan untuk menjalankan pengoptimal.

        Untuk informasi selengkapnya tentang persyaratan izin untuk peran IAM, lihat[Prasyarat pengoptimalan tabel](optimization-prerequisites.md).

   1. Konfigurasikan pengaturan **retensi Snapshot**:
      + Aktifkan/nonaktifkan retensi.
      + Tetapkan periode retensi snapshot dalam beberapa hari - default adalah 5 hari.
      + Setel jumlah snapshot yang akan dipertahankan - default adalah 1 snapshot.
      + Aktifkan/nonaktifkan pembersihan file yang kedaluwarsa.

   1. Konfigurasikan **pengaturan penghapusan file Orphan**:
      + Aktifkan/nonaktifkan penghapusan file yatim piatu.
      + Atur periode retensi file yatim piatu dalam beberapa hari - default adalah 3 hari.

1. Pilih **Simpan**.

## Mengaktifkan Pengoptimal Tingkat Katalog melalui AWS CLI
<a name="catalog-auto-optimizers-cli"></a>

Gunakan perintah CLI berikut untuk memperbarui katalog yang ada dengan pengaturan pengoptimal:

**Example Perbarui katalog dengan pengaturan pengoptimal**  

```
aws glue update-catalog \
   --name catalog-id \
  --catalog-input \
  '{
    "CatalogId": "111122223333",
    "CatalogInput": {
        "CatalogProperties": {
            "CustomProperties": {
                "ColumnStatistics.Enabled": "false",
                "ColumnStatistics.RoleArn": "arn:aws:iam::111122223333:role/service-role/stats-role-name"
            },
            "IcebergOptimizationProperties": {
                "RoleArn": "arn:aws:iam::111122223333:role/optimizer-role-name",
                "Compaction": {
                    "enabled": "true"
                },
                "Retention": {
                    "enabled": "true",
                    "snapshotRetentionPeriodInDays": "10",
                    "numberOfSnapshotsToRetain": "5",
                    "cleanExpiredFiles": "true"
                },
                "OrphanFileDeletion": {
                    "enabled": "true",
                    "orphanFileRetentionPeriodInDays": "3"
                }
            }
        }
    }
}'
```

Jika Anda mengalami masalah dengan pengoptimal tingkat katalog, periksa hal berikut:
+ Pastikan peran IAM memiliki izin yang benar seperti yang diuraikan di bagian Prasyarat.
+ Periksa CloudWatch log untuk setiap pesan kesalahan yang terkait dengan operasi pengoptimal.

   Untuk informasi selengkapnya, lihat [Melihat metrik yang tersedia](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) di *Panduan Amazon CloudWatch Pengguna*. 
+ Verifikasi bahwa pengaturan katalog berhasil diterapkan dengan memeriksa konfigurasi katalog.
+ Untuk kegagalan akses tabel, periksa CloudWatch log dan EventBridge pemberitahuan untuk informasi kesalahan terperinci.

# Melihat pengoptimalan tingkat katalog
<a name="view-catalog-optimizations"></a>

 Saat pengoptimalan tabel tingkat katalog diaktifkan, kapan saja tabel Apache Iceberg dibuat atau diperbarui melalui atau `UpdateTable` APIs melalui Konsol Manajemen AWS, SDK, `CreateTable` atau, pengaturan tingkat tabel yang setara dibuat untuk tabel tersebut. Perayap AWS Glue

 Setelah membuat atau memperbarui tabel, Anda dapat memverifikasi detail tabel untuk mengonfirmasi pengoptimalan tabel. Ini `Table optimization` menunjukkan `Configuration source` properti ditetapkan sebagai`Catalog`. 

![\[Gambar tabel Apache Iceberg dengan konfigurasi pengoptimalan tingkat katalog telah diterapkan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/catalog-optimization-enabled.png)


# Menonaktifkan optimasi tabel tingkat katalog
<a name="disable-auto-table-optimizers"></a>

 Anda dapat menonaktifkan pengoptimalan tabel untuk tabel baru menggunakan AWS Lake Formation konsol, `glue:UpdateCatalog` API. 

**Untuk menonaktifkan pengoptimalan tabel di tingkat katalog**

1. Buka konsol Lake Formation di [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Di bilah navigasi kiri, pilih **Katalog**.

1. Pada halaman **ringkasan Katalog**, pilih **Edit** di bawah **Pengoptimalan tabel**.

1. Pada halaman **Edit optimasi**, batalkan pilihan **opsi Optimasi**.

1. Pilih **Simpan**.

# Optimalisasi pemadatan
<a name="compaction-management"></a>

 Danau data Amazon S3 menggunakan format tabel terbuka seperti Apache Iceberg menyimpan data sebagai objek S3. Memiliki ribuan objek Amazon S3 kecil dalam tabel data lake meningkatkan overhead metadata dan memengaruhi kinerja baca. AWS Glue Data Catalog menyediakan pemadatan terkelola untuk tabel Iceberg, memadatkan objek kecil menjadi yang lebih besar untuk kinerja baca yang lebih baik oleh layanan AWS analitik seperti dan Amazon Athena Amazon EMR, dan pekerjaan ETL. AWS Glue Katalog Data melakukan pemadatan tanpa mengganggu kueri bersamaan dan mendukung pemadatan hanya untuk tabel format Parket. 

Pengoptimal tabel terus memantau partisi tabel dan memulai proses pemadatan ketika ambang batas terlampaui untuk jumlah file dan ukuran file.

Dalam Katalog Data, proses pemadatan dimulai ketika tabel atau salah satu partisinya memiliki lebih dari 100 file. Setiap file harus lebih kecil dari 75% dari ukuran file target. Ukuran file target ditentukan oleh properti `write.target-file-size-bytes` tabel, yang defaultnya 512 MB jika tidak disetel secara eksplisit.

 Untuk batasan, lihat [Format dan batasan yang didukung untuk pemadatan data terkelola](optimizer-notes.md#compaction-notes). 

**Topics**
+ [Mengaktifkan pengoptimal pemadatan](enable-compaction.md)
+ [Menonaktifkan pengoptimal pemadatan](disable-compaction.md)

# Mengaktifkan pengoptimal pemadatan
<a name="enable-compaction"></a>

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

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

**Untuk mengaktifkan pemadatan**

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 dalam format tabel terbuka yang ingin Anda aktifkan pemadatan, lalu di bawah menu **Tindakan**, pilih **Optimasi**, lalu pilih **Aktifkan**.

   Anda juga dapat mengaktifkan pemadatan dengan memilih tab **Pengoptimalan tabel** pada halaman **Detail tabel**. Pilih tab **Pengoptimalan tabel** di bagian bawah halaman, dan pilih **Aktifkan pemadatan**. 

   Opsi **Aktifkan optimasi** juga tersedia saat Anda membuat tabel Gunung Es baru di Katalog Data.

1. Pada halaman **Aktifkan pengoptimalan**, pilih **Pemadatan** di bawah **opsi Optimasi**.  
![\[Halaman detail tabel Apache Iceberg dengan opsi Aktifkan pemadatan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/table-enable-compaction.png)

1. Selanjutnya, pilih peran IAM dari drop-down dengan izin yang ditunjukkan di bagian. [Prasyarat pengoptimalan tabel](optimization-prerequisites.md) 

   Anda juga dapat memilih **Buat opsi peran IAM baru untuk membuat peran** kustom dengan izin yang diperlukan untuk menjalankan pemadatan.

    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. Pada halaman Buat kebijakan, pilih `JSON` tab. Salin kode JSON yang ditampilkan di Prasyarat ke bidang editor kebijakan.

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. Pilih strategi pemadatan. Opsi yang tersedia adalah:
   + **Binpack** — Binpack adalah strategi pemadatan default di Apache Iceberg. Ini menggabungkan file data yang lebih kecil menjadi yang lebih besar untuk kinerja yang optimal.
   + **Sortir** - Penyortiran di Apache Iceberg adalah teknik organisasi data yang mengelompokkan informasi dalam file berdasarkan kolom tertentu, secara signifikan meningkatkan kinerja kueri dengan mengurangi jumlah file yang perlu diproses. Anda menentukan urutan pengurutan dalam metadata Iceberg menggunakan bidang urutan-urutan, dan ketika beberapa kolom ditentukan, data diurutkan dalam urutan kolom muncul dalam urutan pengurutan, memastikan catatan dengan nilai yang sama disimpan bersama dalam file. Strategi pemadatan penyortiran mengambil pengoptimalan lebih lanjut dengan menyortir data di semua file dalam partisi. 
   + **Z-order** - Z-ordering adalah cara untuk mengatur data ketika Anda perlu mengurutkan berdasarkan beberapa kolom dengan kepentingan yang sama. Tidak seperti penyortiran tradisional yang memprioritaskan satu kolom di atas yang lain, pemesanan Z memberikan bobot seimbang untuk setiap kolom, membantu mesin kueri Anda membaca lebih sedikit file saat mencari data.

     Teknik ini bekerja dengan menyatukan digit biner nilai dari kolom yang berbeda. Misalnya, jika Anda memiliki angka 3 dan 4 dari dua kolom, urutan Z pertama-tama mengubahnya menjadi biner (3 menjadi 011 dan 4 menjadi 100), kemudian memasukkan digit ini untuk membuat nilai baru: 011010. Interleaving ini menciptakan pola yang membuat data terkait tetap berdekatan secara fisik.

     Z-pemesanan sangat efektif untuk kueri multi-dimensi. Misalnya, tabel pelanggan yang diurutkan Z berdasarkan pendapatan, status, dan kode pos dapat memberikan kinerja yang unggul dibandingkan dengan penyortiran hierarkis saat melakukan kueri di beberapa dimensi. Organisasi ini memungkinkan kueri yang menargetkan kombinasi tertentu dari pendapatan dan lokasi geografis untuk dengan cepat menemukan data yang relevan sambil meminimalkan pemindaian file yang tidak perlu.

1. **File input minimum — Jumlah file** data yang diperlukan dalam partisi sebelum pemadatan dipicu.

1. **Hapus ambang batas file** - Operasi penghapusan minimum yang diperlukan dalam file data sebelum memenuhi syarat untuk pemadatan.

1. Pilih **Aktifkan pengoptimalan**.

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

 Contoh berikut menunjukkan cara mengaktifkan pemadatan. 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 pemadatan. Anda dapat mengganti strategi pemadatan `sort` dengan strategi lain yang didukung seperti `z-order` atau`binpack`.

order” tergantung pada kebutuhan Anda.

```
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"},
    "compactionConfiguration": {
      "icebergConfiguration": {"strategy": "sort"}
    }
  }'\
--type compaction
```

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

Panggilan [CreateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-CreateTableOptimizer)operasi untuk mengaktifkan pemadatan untuk tabel.

------

Setelah Anda mengaktifkan pemadatan, tab **pengoptimalan tabel** menunjukkan detail pemadatan berikut setelah proses pemadatan selesai:

Waktu mulai  
Waktu di mana proses pemadatan dimulai dalam Katalog Data. Nilainya adalah stempel waktu dalam waktu UTC. 

Waktu akhir  
Waktu di mana proses pemadatan berakhir di Katalog Data. Nilainya adalah stempel waktu dalam waktu UTC. 

Status  
Status pemadatan berjalan. Nilai sukses atau gagal.

File dipadatkan  
Jumlah total file yang dipadatkan.

Byte dipadatkan  
Jumlah total byte yang dipadatkan.

# Menonaktifkan pengoptimal pemadatan
<a name="disable-compaction"></a>

 Anda dapat menonaktifkan pemadatan otomatis untuk tabel Apache Iceberg tertentu menggunakan konsol atau. AWS Glue AWS CLI

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

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. Pada navigasi kiri, di bawah **Katalog Data**, pilih **Tabel**. 

1. Dari daftar tabel, pilih tabel Iceberg yang ingin Anda nonaktifkan pemadatan.

1. Pilih tab **Pengoptimalan tabel** di bagian bawah halaman **detail Tabel**.

1. Dari **Tindakan**, pilih **Nonaktifkan**, lalu pilih **Pemadatan**.

1.  Pilih **Nonaktifkan pemadatan** pada pesan konfirmasi. Anda dapat mengaktifkan kembali pemadatan di lain waktu. 

    Setelah Anda mengonfirmasi, pemadatan dinonaktifkan dan status pemadatan untuk tabel kembali ke. `Disabled`

------
#### [ 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) dari peran IAM dan nama sebenarnya dari peran IAM yang memiliki izin yang diperlukan untuk menjalankan pemadatan.

```
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":'false', "vpcConfiguration":{"glueConnectionName":"glue_connection_name"}}'\ 
  --type compaction
```

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

Panggilan [UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer)operasi untuk menonaktifkan pemadatan untuk tabel tertentu.

------

# 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.

------

# Menghapus file yatim piatu
<a name="orphan-file-deletion"></a>

 AWS Glue Data Catalog memungkinkan Anda untuk menghapus file yatim piatu dari tabel Iceberg Anda. File yatim piatu adalah file yang tidak direferensikan yang ada di sumber data Amazon S3 Anda di bawah lokasi tabel yang ditentukan, tidak dilacak oleh metadata tabel Iceberg, dan lebih tua dari batas usia yang dikonfigurasi. File yatim piatu ini dapat terakumulasi dari waktu ke waktu karena kegagalan dalam operasi seperti pemadatan, penurunan partisi, atau penulisan ulang tabel, dan mengambil ruang penyimpanan yang tidak perlu.

Pengoptimal penghapusan file yatim piatu dalam AWS Glue memindai metadata tabel dan file data aktual, mengidentifikasi file yatim piatu, dan menghapusnya untuk merebut kembali ruang penyimpanan. Pengoptimal hanya menghapus file yang dibuat setelah tanggal pembuatan pengoptimal yang juga memenuhi kriteria penghapusan yang dikonfigurasi. File yang dibuat sebelum atau pada tanggal pembuatan pengoptimal tidak pernah dihapus.

**Logika penghapusan file yatim piatu**

1. Pemeriksaan tanggal - Membandingkan tanggal pembuatan file dengan tanggal pembuatan pengoptimal. Jika file lebih tua dari atau sama dengan tanggal pembuatan pengoptimal, file dilewati.

1. Pemeriksaan konfigurasi pengoptimal - Jika file lebih baru dari tanggal pembuatan pengoptimal, evaluasi file terhadap batas usia yang dikonfigurasi. Pengoptimal menghapus file jika cocok dengan kriteria penghapusan. Melewatkan file, jika tidak sesuai dengan kriteria.

 Anda dapat memulai penghapusan file yatim piatu dengan membuat pengoptimal tabel penghapusan file yatim piatu di Katalog Data.

**penting**  
 Secara default, penghapusan file yatim mengevaluasi file di seluruh lokasi tabel Anda. AWS Glue Meskipun Anda dapat mengonfigurasi sub-awalan untuk membatasi cakupan evaluasi menggunakan parameter API, Anda harus memastikan lokasi tabel tidak berisi file dari sumber data atau tabel lain. Jika lokasi tabel Anda tumpang tindih dengan sumber data lain, layanan mungkin mengidentifikasi dan menghapus file yang tidak terkait sebagai anak yatim. 

**Topics**
+ [Mengaktifkan penghapusan file yatim](enable-orphan-file-deletion.md)
+ [Memperbarui pengoptimal penghapusan file yatim](update-orphan-file-deletion.md)
+ [Menonaktifkan penghapusan file yatim](disable-orphan-file-deletion.md)

# Mengaktifkan penghapusan file yatim
<a name="enable-orphan-file-deletion"></a>

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

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

**Untuk mengaktifkan penghapusan file yatim**

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 di mana Anda ingin mengaktifkan penghapusan file yatim piatu.

   **Pilih tab **Pengoptimalan tabel** di bagian bawah halaman, dan pilih **Aktifkan**, **penghapusan file Orphan** dari Tindakan.** 

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

1. **Pada halaman **Aktifkan pengoptimalan**, pilih **Penghapusan file yatim di bawah Opsi pengoptimalan**.**

1. Jika Anda memilih untuk menggunakan **pengaturan Default**, semua file yatim piatu akan dihapus setelah 3 hari. Jika Anda ingin menyimpan file yatim piatu selama beberapa hari tertentu, pilih **Sesuaikan** pengaturan.

1. Selanjutnya, pilih peran IAM dengan izin yang diperlukan untuk menghapus file yatim piatu.

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. Jika Anda memilih **Sesuaikan pengaturan**, masukkan jumlah hari untuk menyimpan file sebelum dihapus di bawah konfigurasi penghapusan file **Orphan**. Anda juga dapat menentukan interval antara dua pengoptimal berturut-turut berjalan. Nilai default adalah 24 jam.

1. Pilih **Aktifkan pengoptimalan**.

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

 Untuk mengaktifkan penghapusan file yatim piatu untuk tabel Iceberg di AWS Glue, Anda perlu membuat pengoptimal tabel tipe `orphan_file_deletion` dan mengatur bidang ke true. `enabled` Untuk membuat pengoptimal penghapusan file yatim piatu untuk tabel Iceberg menggunakan AWS CLI, Anda dapat menggunakan perintah berikut:

```
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"}, "orphanFileDeletionConfiguration":{"icebergConfiguration":{"orphanFileRetentionPeriodInDays":3, "location":'S3 location'}}}'\
 --type orphan_file_deletion
```

 Perintah ini membuat pengoptimal penghapusan file yatim piatu untuk tabel Iceberg yang ditentukan. Parameter kuncinya adalah:
+ ROLEARN — ARN peran IAM dengan izin untuk mengakses bucket S3 dan sumber daya Glue.
+ diaktifkan - Setel ke true untuk mengaktifkan pengoptimal.
+ orphanFileRetentionPeriodInDays — Jumlah hari untuk menyimpan file yatim piatu sebelum menghapusnya (minimal 1 hari).
+ type - Setel ke orphan\$1file\$1deletion untuk membuat pengoptimal penghapusan file yatim piatu.

 Setelah membuat pengoptimal tabel, itu akan menjalankan penghapusan file yatim secara berkala (sekali per hari jika dibiarkan diaktifkan). Anda dapat memeriksa proses menggunakan `list-table-optimizer-runs` API. Pekerjaan penghapusan file yatim piatu akan mengidentifikasi dan menghapus file yang tidak dilacak dalam metadata Iceberg untuk tabel.

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

Panggil [CreateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-CreateTableOptimizer)operasi untuk membuat pengoptimal penghapusan file yatim piatu untuk tabel tertentu.

------

# Memperbarui pengoptimal penghapusan file yatim
<a name="update-orphan-file-deletion"></a>

 Anda dapat memodifikasi konfigurasi untuk pengoptimal penghapusan file yatim piatu, seperti mengubah periode penyimpanan untuk file yatim atau peran IAM yang digunakan oleh pengoptimal menggunakan konsol,, atau operasi. AWS Glue AWS CLI`UpdateTableOptimizer` 

------
#### [ Konsol Manajemen AWS ]

**Untuk memperbarui pengoptimal penghapusan file yatim**

1.  Pilih **Katalog Data** dan pilih **Tabel**. Dari daftar tabel, pilih tabel yang ingin Anda perbarui konfigurasi pengoptimal penghapusan file yatim piatu.

1. Di bagian bawah halaman **detail Tabel**, pilih **Optimasi tabel**, lalu pilih **Edit**. 

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

1.  Pilih **Simpan**. 

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

 Anda dapat menggunakan `update-table-optimizer` panggilan untuk memperbarui pengoptimal penghapusan file yatim di AWS Glue, Anda dapat menggunakan panggilan. Ini memungkinkan Anda untuk memodifikasi `OrphanFileDeletionConfiguration` di `icebergConfiguration` bidang di mana Anda dapat menentukan yang diperbarui `OrphanFileRetentionPeriodInDays` untuk mengatur jumlah hari untuk mempertahankan file yatim piatu, untuk menentukan lokasi tabel Iceberg untuk menghapus file yatim dari. 

```
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"},"orphanFileDeletionConfiguration":{"icebergConfiguration":{"orphanFileRetentionPeriodInDays":5}}}' \
 --type orphan_file_deletion
```

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

Panggil [UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer)operasi untuk memperbarui pengoptimal penghapusan file yatim piatu untuk sebuah tabel.

------

 

# Menonaktifkan penghapusan file yatim
<a name="disable-orphan-file-deletion"></a>

 Anda dapat menonaktifkan pengoptimal penghapusan file yatim piatu untuk tabel Apache Iceberg tertentu menggunakan konsol atau. AWS Glue AWS CLI

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

**Untuk menonaktifkan penghapusan file yatim**

1. Pilih **Katalog Data** dan pilih **Tabel**. Dari daftar tabel, pilih tabel Iceberg yang ingin Anda nonaktifkan pengoptimal untuk penghapusan file yatim piatu.

1. Pada bagian bawah halaman **Rincian tabel**, pilih tab **Pengoptimalan tabel**.

1. Pilih **Tindakan**, lalu pilih **Nonaktifkan**, penghapusan **file Orphan**.

   Anda juga dapat memilih **Nonaktifkan** di bawah **Optimasi** dari menu **Tindakan**.

1.  Pilih **Nonaktifkan** pada pesan konfirmasi. Anda dapat mengaktifkan kembali pengoptimal penghapusan file yatim piatu di lain waktu. 

    Setelah Anda mengonfirmasi, pengoptimal penghapusan file yatim dinonaktifkan dan status penghapusan file yatim piatu 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) dari peran IAM dan nama sebenarnya dari peran IAM yang memiliki izin yang diperlukan untuk menonaktifkan pengoptimal.

```
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":'false'}'\ 
  --type orphan_file_deletion
```

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

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

------

# Melihat detail pengoptimalan
<a name="view-optimization-status"></a>

Anda dapat melihat status pengoptimalan untuk tabel Apache Iceberg di AWS Glue konsol AWS CLI, atau menggunakan AWS operasi API. 

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

**Untuk melihat status pengoptimalan untuk tabel Iceberg (konsol)**
+ **Anda dapat melihat status pengoptimalan untuk tabel Iceberg di AWS Glue konsol dengan memilih tabel Iceberg dari daftar Tabel di bawah Katalog **Data**.** Di bawah **optimasi Tabel**. Pilih **Lihat semua**  
![\[Halaman detail tabel Apache Iceberg dengan opsi Aktifkan pemadatan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/table-list-compaction-status.png)

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

Anda dapat melihat detail pengoptimalan menggunakan AWS CLI.

Dalam contoh berikut, ganti ID akun dengan ID akun yang valid AWS , nama database, dan nama tabel dengan nama tabel Iceberg yang sebenarnya. Untuk`type`, menyediakan dan mengoptimalkan jenis. Nilai yang dapat diterima adalah `compaction``retention`,, dan`orphan-file-deletion`.
+ **Untuk mendapatkan detail proses pemadatan terakhir untuk sebuah tabel**

  ```
  aws get-table-optimizer \
    --catalog-id 123456789012 \
    --database-name iceberg_db \
    --table-name iceberg_table \
    --type compaction
  ```
+ Gunakan contoh berikut untuk mengambil riwayat pengoptimal untuk tabel tertentu.

  ```
  aws list-table-optimizer-runs \
    --catalog-id 123456789012 \
    --database-name iceberg_db \
    --table-name iceberg_table \
    --type compaction
  ```
+ Contoh berikut menunjukkan cara mengambil proses pengoptimalan dan detail konfigurasi untuk beberapa pengoptimal. Anda dapat menentukan maksimal 20 pengoptimal.

  ```
  aws glue batch-get-table-optimizer \
  --entries '[{"catalogId":"123456789012", "databaseName":"iceberg_db", "tableName":"iceberg_table", "type":"compaction"}]'
  ```

------
#### [ API ]
+ Gunakan `GetTableOptimizer` operasi untuk mengambil detail run terakhir dari pengoptimal. 
+  Gunakan `ListTableOptimizerRuns` operasi untuk mengambil riwayat pengoptimal yang diberikan pada tabel tertentu. Anda dapat menentukan 20 pengoptimal dalam satu panggilan API. 
+ Gunakan [BatchGetTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-BatchGetTableOptimizer)operasi untuk mengambil detail konfigurasi untuk beberapa pengoptimal di akun Anda. 

------

# Melihat Amazon CloudWatch metrik
<a name="view-optimization-metrics"></a>

 Setelah menjalankan pengoptimal tabel berhasil, layanan membuat Amazon CloudWatch metrik pada kinerja pekerjaan pengoptimalan. Anda dapat pergi ke **CloudWatch Metrik dan memilih Metrik**, **Semua** **metrik**. Anda dapat memfilter metrik berdasarkan namespace tertentu (misalnya AWS Glue), nama tabel, atau nama database.

 Untuk informasi selengkapnya, lihat [Melihat metrik yang tersedia](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) di *Panduan Amazon CloudWatch Pengguna*. 

****Pemadatan****
+ Jumlah byte yang dipadatkan 
+ Jumlah file yang dipadatkan
+ Jumlah DPU yang dialokasikan untuk pekerjaan 
+ Durasi Pekerjaan (Jam) 

****Retensi snapshot****
+ Jumlah file data yang dihapus 
+ Jumlah file manifes yang dihapus
+ Jumlah daftar Manifest dihapus 
+ Durasi Pekerjaan (Jam)

****Penghapusan file yatim****
+ Jumlah file yatim piatu yang dihapus 
+ Durasi Pekerjaan (Jam) 

# Menghapus pengoptimal
<a name="delete-optimizer"></a>

Anda dapat menghapus pengoptimal dan metadata terkait untuk tabel yang menggunakan AWS CLI atau AWS operasi API.

Jalankan AWS CLI perintah berikut untuk menghapus riwayat optimasi untuk tabel. Anda perlu menentukan pengoptimal `type` bersama dengan ID katalog, nama database dan nama tabel. Nilai yang dapat diterima adalah:`compaction`,`retention`, dan`orphan_file_deletion`.

```
aws glue delete-table-optimizer \
  --catalog-id 123456789012 \
  --database-name iceberg_db \
  --table-name iceberg_table \
  --type compaction
```

 Gunakan `DeleteTableOptimizer` operasi untuk menghapus pengoptimal untuk tabel.

# Pertimbangan dan batasan
<a name="optimizer-notes"></a>

 Bagian ini mencakup hal-hal yang perlu dipertimbangkan saat menggunakan pengoptimal tabel di dalam. AWS Glue Data Catalog

## Daya tahan dan kebenaran
<a name="durability-correctness"></a>

**Lokasi Tabel S3:**

Jika beberapa AWS Glue Data Catalog tabel berbagi lokasi Amazon S3 yang sama dan mengaktifkan pengoptimal, retensi snapshot atau pengoptimal penghapusan file yatim piatu untuk satu tabel dapat menghapus file yang masih direferensikan oleh tabel lainnya. Pastikan bahwa setiap tabel dengan pengoptimal diaktifkan memiliki lokasi Amazon S3 unik yang tidak dibagikan dengan tabel lain, termasuk tabel di database yang berbeda.

**Kedaluwarsa Siklus Hidup S3:**

Aturan kedaluwarsa siklus hidup Amazon S3 yang berlaku untuk lokasi penyimpanan tabel Iceberg dapat menghapus manifes dan file data yang masih direferensikan oleh snapshot aktif. Jika bucket Anda memiliki aturan kedaluwarsa siklus hidup, pastikan bucket tersebut mengecualikan jalur penyimpanan tabel Iceberg.

## Format dan batasan yang didukung untuk pemadatan data terkelola
<a name="compaction-notes"></a>

Pemadatan data mendukung berbagai tipe data dan format kompresi untuk membaca dan menulis data, termasuk membaca data dari tabel terenkripsi.

**Kontrol Konkurensi:**

 Apache Iceberg mendukung kontrol konkurensi optimis, memungkinkan banyak penulis untuk melakukan operasi secara bersamaan. Konflik terdeteksi dan diselesaikan pada waktu komit. Saat bekerja dengan saluran pipa streaming, konfigurasikan pengaturan coba lagi yang sesuai melalui properti tabel dan pengaturan pemadatan untuk menangani penulisan bersamaan secara efektif. Untuk panduan terperinci, lihat Blog AWS Big Data tentang [mengelola penulisan bersamaan di tabel Iceberg](https://aws.amazon.com/blogs/big-data/manage-concurrent-write-conflicts-in-apache-iceberg-on-the-aws-glue-data-catalog/). 

**Percobaan Ulang Pemadatan:**

 Ketika operasi pemadatan gagal empat kali berturut-turut, pengoptimalan tabel AWS Glue katalog secara otomatis menangguhkan pengoptimal untuk mencegah konsumsi sumber daya komputasi yang tidak perlu. Pertama-tama selidiki log dan coba pahami mengapa pemadatan berulang kali gagal. Untuk melanjutkan optimasi pemadatan, Anda dapat mengaktifkan kembali pengoptimal melalui AWS Glue konsol atau API. 

 **Pemadatan data mendukung:**
+ **Enkripsi** - Pemadatan data hanya mendukung enkripsi Amazon S3 default (SSE-S3) dan enkripsi KMS sisi server (SSE-KMS).
+ **Strategi pemadatan** — Binpack, sortir, dan penyortiran urutan-Z
+ Anda dapat menjalankan pemadatan dari akun tempat Katalog Data berada saat bucket Amazon S3 yang menyimpan data yang mendasarinya ada di akun lain. Untuk melakukan ini, peran pemadatan memerlukan akses ke bucket Amazon S3.

 **Pemadatan data saat ini tidak mendukung:** 
+ **Pemadatan pada tabel lintas akun** — Anda tidak dapat menjalankan pemadatan pada tabel lintas akun.
+ **Pemadatan pada tabel Lintas wilayah** — Anda tidak dapat menjalankan pemadatan pada tabel Lintas wilayah.
+ **Mengaktifkan pemadatan pada tautan sumber daya**
+ **Tabel di kelas penyimpanan Amazon S3 Express One Zone** — Anda tidak dapat menjalankan pemadatan di Amazon S3 Express One Zone Iceberg Tables. 
+ **Strategi pemadatan orde Z tidak mendukung tipe data berikut:**
  + Decimal
  + TimestampWithoutZone

## Pertimbangan untuk retensi snapshot dan pengoptimal penghapusan file yatim
<a name="retention-notes"></a>

Pertimbangan berikut berlaku untuk retensi snapshot dan pengoptimal penghapusan file yatim piatu. 
+ Proses penyimpanan snapshot dan penghapusan file yatim piatu memiliki batas maksimum untuk menghapus 1.000.000 file per proses. Saat menghapus snapshot yang kedaluwarsa, jika jumlah file yang memenuhi syarat untuk dihapus melebihi 1.000.000, file yang tersisa di luar ambang batas itu akan terus ada di penyimpanan tabel sebagai file yatim piatu. 
+ Snapshot akan dipertahankan oleh pengoptimal retensi snapshot hanya jika kedua kriteria terpenuhi: jumlah minimum snapshot yang harus disimpan dan periode retensi yang ditentukan.
+ Pengoptimal retensi snapshot menghapus metadata snapshot kedaluwarsa dari Apache Iceberg, mencegah kueri perjalanan waktu untuk snapshot kedaluwarsa dan secara opsional menghapus file data terkait.
+  Pengoptimal penghapusan file yatim piatu menghapus data yatim piatu dan file metadata yang tidak lagi direferensikan oleh metadata Iceberg jika waktu pembuatannya sebelum periode retensi penghapusan file yatim dari saat pengoptimal dijalankan.
+ Apache Iceberg memfasilitasi kontrol versi melalui cabang dan tag, yang diberi nama pointer ke status snapshot tertentu. Setiap cabang dan tag mengikuti siklus hidup independennya sendiri, diatur oleh kebijakan retensi yang ditentukan pada tingkat masing-masing. AWS Glue Data Catalog Pengoptimal mempertimbangkan kebijakan siklus hidup ini, memastikan kepatuhan terhadap aturan retensi yang ditentukan. Kebijakan retensi tingkat cabang dan tag lebih diutamakan daripada konfigurasi pengoptimal. 

   Untuk informasi selengkapnya, lihat [Percabangan dan Penandaan](https://iceberg.apache.org/docs/nightly/branching/) di dokumentasi Apache Iceberg. 
+ Retensi snapshot dan pengoptimal penghapusan file yatim piatu akan menghapus file yang memenuhi syarat untuk dibersihkan sesuai parameter yang dikonfigurasi. Tingkatkan kontrol Anda atas penghapusan file dengan menerapkan kebijakan pembuatan versi dan siklus hidup S3 pada bucket yang sesuai.

   Untuk petunjuk terperinci tentang pengaturan pembuatan versi dan pembuatan aturan siklus hidup, lihat. [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) 
+  Untuk penentuan file yatim piatu yang tepat, pastikan bahwa lokasi tabel yang disediakan dan sub-jalur apa pun tidak tumpang tindih dengan atau berisi data dari tabel atau sumber data lain. Jika jalur tumpang tindih, Anda berisiko kehilangan data yang tidak dapat dipulihkan dari penghapusan file yang tidak diinginkan. 

## Pengecualian debugging OversizedAllocationException
<a name="debug-exception"></a>

Untuk menyelesaikan `OversizedAllocationException` pengecualian:
+ Kurangi ukuran batch pembaca vektor dan periksa. Ukuran batch default adalah 5000. Ini dikendalikan di`read.parquet.vectorization.batch-size`.
  + Jika ini tidak berfungsi bahkan setelah beberapa variasi, matikan vektorisasi. Ini dikendalikan di`read.parquet.vectorization.enabled`.

# Wilayah yang Didukung untuk pengoptimal tabel
<a name="regions-optimizers"></a>

Fitur pengoptimalan tabel (pemadatan, retensi snapshot, dan penghapusan file yatim piatu) tersedia dalam hal berikut: AWS Glue Data Catalog Wilayah AWS
+ Asia Pasifik (Tokyo)
+ Asia Pacific (Seoul)
+ Asia Pacific (Mumbai)
+ Asia Pasifik (Singapura)
+ Asia Pasifik (Sydney)
+ Asia Pasifik (Jakarta)
+ Kanada (Pusat)
+ Eropa (Irlandia)
+ Europe (London)
+ Eropa (Frankfurt)
+ Eropa (Stockholm)
+ Timur AS (N. Virginia)
+ AS Timur (Ohio)
+ AS Barat (Oregon)
+ Amerika Selatan (Sao Paulo)

# Mengoptimalkan kinerja kueri untuk tabel Iceberg
<a name="iceberg-column-statistics"></a>

Apache Iceberg adalah format tabel terbuka berkinerja tinggi untuk kumpulan data analitik yang sangat besar. AWS Glue mendukung penghitungan dan pembaruan jumlah nilai yang berbeda (NDVs) untuk setiap kolom dalam tabel Iceberg. Statistik ini dapat memfasilitasi optimasi kueri, manajemen data, dan efisiensi kinerja yang lebih baik untuk insinyur data dan ilmuwan yang bekerja dengan kumpulan data skala besar.

 AWS Glue memperkirakan jumlah nilai yang berbeda di setiap kolom tabel Iceberg dan menyimpannya dalam file [Puffin di](https://iceberg.apache.org/puffin-spec/) Amazon S3 yang terkait dengan snapshot tabel Iceberg. Puffin adalah format file Iceberg yang dirancang untuk menyimpan metadata seperti indeks, statistik, dan sketsa. Menyimpan sketsa dalam file Puffin yang terkait dengan snapshot memastikan konsistensi transaksional dan kesegaran statistik NDV.

Anda dapat mengonfigurasi untuk menjalankan tugas pembuatan statistik kolom menggunakan AWS Glue konsol atau AWS CLI. Saat Anda memulai proses, AWS Glue mulai pekerjaan Spark di latar belakang dan perbarui metadata AWS Glue tabel di Katalog Data. Anda dapat melihat statistik kolom menggunakan AWS Glue konsol AWS CLI atau atau dengan memanggil operasi [GetColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_GetColumnStatisticsForTable.html)API.

**catatan**  
Jika Anda menggunakan AWS Lake Formation izin untuk mengontrol akses ke tabel, peran yang diasumsikan oleh tugas statistik kolom memerlukan akses tabel penuh untuk menghasilkan statistik.

**Topics**
+ [Prasyarat untuk menghasilkan statistik kolom](iceberg-column-stats-prereqs.md)
+ [Menghasilkan statistik kolom untuk tabel Gunung Es](iceberg-generate-column-stats.md)
+ [Lihat juga](#see-also-iceberg-stats)

# Prasyarat untuk menghasilkan statistik kolom
<a name="iceberg-column-stats-prereqs"></a>

Untuk menghasilkan atau memperbarui statistik kolom untuk tabel Iceberg, tugas pembuatan statistik mengasumsikan peran AWS Identity and Access Management (IAM) atas nama Anda. Berdasarkan izin yang diberikan untuk peran tersebut, tugas pembuatan statistik kolom dapat membaca data dari penyimpanan data Amazon S3.

Saat mengonfigurasi tugas pembuatan statistik kolom, Anda AWS Glue dapat membuat peran yang menyertakan kebijakan `AWSGlueServiceRole` AWS terkelola ditambah kebijakan sebaris yang diperlukan untuk sumber data yang ditentukan. 

Jika Anda menentukan peran yang ada untuk menghasilkan statistik kolom, pastikan peran tersebut menyertakan `AWSGlueServiceRole` kebijakan atau yang setara (atau versi bawah cakupan kebijakan ini), dan kebijakan sebaris yang diperlukan.

Untuk informasi lebih lanjut tentang izin yang diperlukan, lihat [Prasyarat untuk menghasilkan statistik kolom](column-stats-prereqs.md). 

# Menghasilkan statistik kolom untuk tabel Gunung Es
<a name="iceberg-generate-column-stats"></a>

Ikuti langkah-langkah ini untuk mengonfigurasi jadwal untuk menghasilkan statistik di Katalog Data menggunakan AWS Glue konsol AWS CLI atau atau atau menjalankan **StartColumnStatisticsTaskRun**operasi.

**Untuk menghasilkan statistik kolom**

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

1. Pilih **Tabel** di bawah Katalog Data.

1. Pilih tabel Gunung Es dari daftar. 

1. Pilih **Statistik kolom**, **Hasilkan sesuai permintaan**, di bawah menu **Tindakan**.

   Anda juga dapat memilih tombol **Hasilkan statistik** di bawah tab **Statistik kolom** di bagian bawah halaman **Tabel**.

1. Pada halaman **Hasilkan statistik**, berikan detail pembuatan statistik. Ikuti langkah 6-11 di [Menghasilkan statistik kolom pada jadwal](generate-column-stats.md) bagian untuk mengonfigurasi jadwal pembuatan statistik untuk tabel Iceberg. 

   Anda juga dapat memilih untuk menghasilkan statistik kolom sesuai permintaan dengan mengikuti petunjuk di [Menghasilkan statistik kolom sesuai permintaan](column-stats-on-demand.md)
**catatan**  
Opsi pengambilan sampel tidak tersedia untuk tabel Iceberg.

   AWS Glue menghitung jumlah nilai yang berbeda untuk setiap kolom tabel Iceberg ke file Puffin baru yang berkomitmen pada ID snapshot yang ditentukan di lokasi Amazon S3 Anda.

## Lihat juga
<a name="see-also-iceberg-stats"></a>
+ [Melihat statistik kolom](view-column-stats.md)
+ [Melihat tugas statistik kolom berjalan](view-stats-run.md)
+ [Menghentikan tugas statistik kolom](stop-stats-run.md)
+ [Menghapus statistik kolom](delete-column-stats.md)