View a markdown version of this page

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 pengoptimalan untuk meningkatkan kinerja kueri pada tabel Apache Iceberg. Saat data terakumulasi, kueri dapat menjadi kurang efisien karena peningkatan overhead pemrosesan file dan biaya komputasi penerapan penghapusan tingkat baris yang disimpan dalam file hapus Iceberg. Untuk mengatasi tantangan ini, Athena mendukung pemadatan manual dan operator vakum untuk mengoptimalkan struktur meja. Athena juga bekerja dengan statistik Iceberg untuk memungkinkan pengoptimalan kueri berbasis biaya dan pengindeksan kolom Parquet 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 pada tabel Iceberg Anda.

MENGOPTIMALKAN

T OPTIMIZE table REWRITE DATA indakan pemadatan menulis ulang file data ke tata letak yang lebih optimal berdasarkan ukuran dan jumlah file penghapusan terkait. Untuk rincian sintaks dan properti tabel, lihatMENGOPTIMALKAN.

Contoh

Contoh berikut menggabungkan file hapus ke dalam file data dan menghasilkan file di dekat ukuran file yang ditargetkan di mana nilainya category beradac1.

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

VAKUM

VACUUMmelakukan kedalu warsa snapshot dan penghapusan https://iceberg.apache.org/docs/latest/spark-procedures/#remove_orphan_files file yatim piatu. Tindakan ini mengurangi ukuran metadata dan menghapus file yang tidak dalam status tabel saat ini yang juga lebih tua dari periode penyimpanan yang ditentukan untuk tabel. Untuk detail sintaks, lihatVAKUM.

Contoh

Contoh berikut menggunakan properti tabel untuk mengonfigurasi tabel iceberg_table agar menyimpan data tiga hari terakhir, kemudian digunakan VACUUM untuk mengakhiri 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 Iceberg Anda, Athena secara otomatis menggunakan informasi ini untuk membuat keputusan cerdas tentang urutan bergabung, 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 pengoptimalan berbasis biaya. Untuk memulai, lihat Meng optimalkan kinerja kueri menggunakan statistik kolom di Panduan AWS Glue Pengguna atau menggunakan konsol Athena untuk menghasilkan statistik sesuai permintaan pada tabel Iceberg 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 bekerja 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 Parquet secara default dengan Tabel S3 jika indeks kolom ada di file Parquet yang mendasarinya. Untuk tabel Iceberg lainnya, Athena menggunakan use_iceberg_parquet_column_index properti untuk menentukan apakah akan menggunakan indeks kolom dalam file Parquet. Atur properti tabel ini menggunakan AWS Glue konsol atau UpdateTable API.