VACUUM - Amazon Athena

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

VACUUM

VACUUMPernyataan tersebut melakukan pemeliharaan tabel pada tabel Apache Iceberg dengan melakukan kedaluwarsa snapshot dan penghapusan file yatim piatu.

catatan

VACUUMbersifat transaksional dan hanya didukung untuk tabel Apache Iceberg di mesin Athena versi 3.

VACUUMPernyataan tersebut mengoptimalkan tabel Iceberg dengan mengurangi konsumsi penyimpanan. Untuk informasi selengkapnya tentang penggunaan VACUUM, lihat Optimalkan tabel Iceberg. Perhatikan bahwa, karena VACUUM pernyataan tersebut melakukan API panggilan ke Amazon S3, biaya berlaku untuk permintaan terkait ke Amazon S3.

Awas

Jika Anda menjalankan operasi kedaluwarsa snapshot, Anda tidak dapat lagi melakukan perjalanan waktu ke snapshot yang kedaluwarsa.

Sinopsis

Untuk menghapus file data yang tidak lagi diperlukan untuk tabel Iceberg, gunakan sintaks berikut.

VACUUM [database_name.]target_table
  • VACUUMmengharapkan data Iceberg berada di folder Amazon S3 daripada ember Amazon S3. Misalnya, jika data Gunung Es Anda berada dis3://amzn-s3-demo-bucket/alih-alihs3://amzn-s3-demo-bucket/myicebergfolder/, VACUUM pernyataan gagal dengan pesan kesalahan GENERIC_ INTERNAL _ERROR: Jalur hilang di lokasi sistem file:. s3://amzn-s3-demo-bucket

  • VACUUMAgar dapat menghapus file data, peran eksekusi kueri Anda harus memiliki s3:DeleteObject izin di bucket tempat tabel Iceberg, metadata, snapshot, dan file data berada. Jika izin tidak ada, VACUUM kueri akan berhasil, tetapi file tidak akan dihapus.

  • Untuk berjalan VACUUM di atas meja dengan nama yang dimulai dengan garis bawah (misalnya,_mytable), lampirkan nama tabel di backticks, seperti pada contoh berikut. Jika Anda mengawali nama tabel dengan nama database, jangan lampirkan nama database di backticks. Perhatikan bahwa tanda kutip ganda tidak akan berfungsi sebagai pengganti backticks.

    Perilaku ini khusus untukVACUUM. INSERT INTOPernyataan CREATE dan tidak memerlukan backticks untuk nama tabel yang dimulai dengan garis bawah.

    VACUUM `_mytable` VACUUM my_database.`_mytable`

Operasi dilakukan

VACUUMmelakukan operasi berikut:

  • Menghapus snapshot yang lebih tua dari jumlah waktu yang ditentukan oleh properti vacuum_max_snapshot_age_seconds tabel. Secara default, properti ini diatur ke 432000 detik (5 hari).

  • Menghapus snapshot yang tidak berada dalam periode yang akan dipertahankan yang melebihi jumlah yang ditentukan oleh properti vacuum_min_snapshots_to_keep tabel. Default-nya adalah 1.

    Anda dapat menentukan properti tabel ini dalam CREATE TABLE pernyataan Anda. Setelah tabel dibuat, Anda dapat menggunakan ALTER TABLE SET TBLPROPERTIES pernyataan untuk memperbaruinya.

  • Menghapus semua metadata dan file data yang tidak dapat dijangkau sebagai akibat dari penghapusan snapshot. Anda dapat mengonfigurasi jumlah file metadata lama yang akan dipertahankan dengan menyetel properti tabel. vacuum_max_metadata_files_to_keep Nilai default-nya adalah 100.

  • Menghapus file yatim piatu yang lebih tua dari waktu yang ditentukan dalam properti vacuum_max_snapshot_age_seconds tabel. File yatim piatu adalah file dalam direktori data tabel yang bukan bagian dari status tabel.

Untuk informasi lebih lanjut tentang membuat dan mengelola tabel Apache Iceberg di Athena, lihat dan. Buat tabel Iceberg Kelola tabel Iceberg