Optimalkan tabel Iceberg - Amazon Athena

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

Optimalkan tabel Iceberg

Athena menyediakan beberapa fitur optimasi untuk meningkatkan kinerja query pada tabel Apache Iceberg. Ketika data terakumulasi, kueri dapat menjadi kurang efisien karena peningkatan overhead pemrosesan file dan biaya komputasi untuk menerapkan penghapusan tingkat baris yang disimpan dalam file penghapusan Iceberg. Untuk mengatasi tantangan ini, Athena mendukung pemadatan manual dan operator vakum untuk mengoptimalkan struktur tabel. Athena juga bekerja dengan statistik Iceberg untuk mengaktifkan optimasi kueri berbasis biaya dan pengindeksan kolom Parket untuk pemangkasan data yang tepat selama eksekusi kueri. Fitur-fitur ini bekerja sama untuk mengurangi waktu eksekusi kueri, meminimalkan pemindaian data, dan menurunkan biaya. Topik ini menjelaskan cara menggunakan kemampuan pengoptimalan ini untuk mempertahankan kueri berkinerja tinggi di tabel Iceberg Anda.

MENGOPTIMALKAN

OPTIMIZE table REWRITE DATATindakan pemadatan menulis ulang file data ke dalam tata letak yang lebih dioptimalkan berdasarkan ukuran dan jumlah file penghapusan terkait. Untuk detail properti sintaks dan tabel, lihatMENGOPTIMALKAN.

Contoh

Contoh berikut menggabungkan menghapus file ke dalam file data dan menghasilkan file di dekat ukuran file yang ditargetkan di mana nilai category adalahc1.

OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'

VAKUM

VACUUMmelakukan kedaluwarsa snapshot dan penghapusan file yatim piatu. Tindakan ini mengurangi ukuran metadata dan menghapus file yang tidak dalam keadaan tabel saat ini yang juga lebih tua dari periode retensi yang ditentukan untuk tabel. Untuk detail sintaks, lihatVAKUM.

Contoh

Contoh berikut menggunakan properti tabel untuk mengkonfigurasi tabel iceberg_table untuk mempertahankan tiga hari terakhir data, kemudian menggunakan VACUUM untuk kedaluwarsa snapshot lama dan menghapus file yatim dari tabel.

ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table

Gunakan statistik tabel Iceberg

Pengoptimal berbasis biaya Athena menggunakan statistik Iceberg untuk menghasilkan rencana kueri yang optimal. Ketika statistik telah dibuat untuk tabel Gunung Es Anda, Athena secara otomatis menggunakan informasi ini untuk membuat keputusan cerdas tentang pemesanan gabungan, filter, dan perilaku agregasi, seringkali meningkatkan kinerja kueri dan mengurangi biaya.

Statistik gunung es diaktifkan secara default saat Anda menggunakan Tabel S3. Untuk tabel Iceberg lainnya, Athena menggunakan properti tabel use_iceberg_statistics untuk menentukan apakah akan memanfaatkan statistik untuk optimasi berbasis biaya. Untuk memulai, lihat Mengoptimalkan performa kueri menggunakan statistik kolom di Panduan AWS Glue Pengguna atau gunakan konsol Athena untuk menghasilkan statistik sesuai permintaan pada tabel Gunung Es Anda.

Gunakan pengindeksan kolom Parket

Pengindeksan kolom parket memungkinkan Athena melakukan pemangkasan data yang lebih tepat selama eksekusi kueri dengan memanfaatkan statistik tingkat halaman selain min/max statistik tingkat grup baris. Hal ini memungkinkan Athena untuk melewati halaman yang tidak perlu dalam grup baris, secara signifikan mengurangi jumlah data yang dipindai dan meningkatkan kinerja kueri. Ini berfungsi paling baik untuk kueri dengan predikat filter selektif pada kolom yang diurutkan, meningkatkan waktu eksekusi dan efisiensi pemindaian data sekaligus mengurangi jumlah data yang perlu dibaca Athena dari Amazon S3.

Athena menggunakan indeks kolom Parket secara default dengan Tabel S3 jika indeks kolom hadir dalam file Parket yang mendasarinya. Untuk tabel Iceberg lainnya, Athena menggunakan use_iceberg_parquet_column_index properti untuk menentukan apakah akan menggunakan indeks kolom dalam file Parket. Setel properti tabel ini menggunakan AWS Glue konsol atau UpdateTable API.