Bekerja dengan Apache Iceberg V3 - Amazon Simple Storage Service

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

Bekerja dengan Apache Iceberg V3

Apache Iceberg Version 3 (V3) adalah versi terbaru dari spesifikasi format tabel Apache Iceberg, memperkenalkan kemampuan canggih untuk membangun danau data skala petabyte dengan peningkatan kinerja dan pengurangan overhead operasional. V3 mengatasi kemacetan kinerja umum yang dihadapi dengan V2, terutama seputar pembaruan batch dan penghapusan kepatuhan.

AWS menyediakan dukungan untuk vektor penghapusan dan garis keturunan baris seperti yang didefinisikan dalam spesifikasi Apache Iceberg Version 3 (V3). Fitur-fitur ini tersedia dengan Apache Spark di Amazon EMR 7.12, Glue AWS ETL,Amazon SageMaker Unified Studio Notebooks,dan tabel Apache Iceberg di Glue Data Catalog, termasuk Amazon S3 Tables.AWS

Fitur Utama di V3

Vektor Penghapusan

Menggantikan file penghapusan posisi V2 dengan format biner efisien yang disimpan sebagai file Puffin. Ini menghilangkan amplifikasi tulis dari pembaruan batch acak dan penghapusan kepatuhan GDPR, secara signifikan mengurangi overhead pemeliharaan data baru. Organizations yang memproses pembaruan frekuensi tinggi akan melihat peningkatan langsung dalam kinerja penulisan dan mengurangi biaya penyimpanan dari lebih sedikit file kecil.

Garis keturunan baris

Memungkinkan pelacakan perubahan yang tepat di tingkat baris. Sistem hilir Anda dapat memproses perubahan secara bertahap, mempercepat jalur data, dan mengurangi biaya komputasi untuk alur kerja pengambilan data perubahan (CDC). Kemampuan bawaan ini menghilangkan kebutuhan akan implementasi pelacakan perubahan khusus.

Kompatibilitas Versi

V3 mempertahankan kompatibilitas mundur dengan tabel V2. AWS layanan mendukung tabel V2 dan V3 secara bersamaan, memungkinkan Anda untuk:

  • Jalankan kueri di kedua tabel V2 dan V3

  • Tingkatkan tabel V2 yang ada ke V3 tanpa penulisan ulang data

  • Jalankan kueri perjalanan waktu yang mencakup snapshot V2 dan V3

  • Gunakan evolusi skema dan partisi tersembunyi di seluruh versi tabel

penting

V3 adalah upgrade satu arah. Setelah tabel ditingkatkan dari V2 ke V3, tabel tidak dapat diturunkan kembali ke V2 melalui operasi standar.

Memulai dengan V3

Prasyarat

Sebelum bekerja dengan tabel V3, pastikan Anda memiliki:

  • AWS Akun dengan izin IAM yang sesuai

  • Akses ke satu atau beberapa layanan AWS analitik (EMR, Glue, Amazon SageMaker Unified Studio Notebooks, atau Tabel S3)

  • Bucket S3 untuk menyimpan data tabel dan metadata

  • Bucket meja untuk memulai dengan Tabel S3 atau bucket S3 tujuan umum jika Anda membangun infrastruktur Gunung Es Anda sendiri

  • AWS Katalog Glue dikonfigurasi

Membuat Tabel V3

Membuat Tabel V3 Baru

Untuk membuat tabel Iceberg V3 baru, atur properti tabel format-versi ke 3.

Menggunakan Spark SQL:

CREATE TABLE IF NOT EXISTS myns.orders_v3 ( order_id bigint, customer_id string, order_date date, total_amount decimal(10,2), status string, created_at timestamp ) USING iceberg TBLPROPERTIES ( 'format-version' = '3' )

Meningkatkan Tabel V2 ke V3

Anda dapat memutakhirkan tabel V2 yang ada ke V3 secara atom tanpa menulis ulang data.

Menggunakan Spark SQL:

ALTER TABLE myns.existing_table SET TBLPROPERTIES ('format-version' = '3')
penting

V3 adalah upgrade satu arah. Setelah tabel ditingkatkan dari V2 ke V3, tabel tidak dapat diturunkan kembali ke V2 melalui operasi standar.

Apa yang terjadi selama upgrade:

  • Snapshot metadata baru dibuat secara atom

  • File data Parket yang ada digunakan kembali

  • Bidang baris garis keturunan ditambahkan ke metadata tabel

  • Pemadatan berikutnya akan menghapus file penghapusan V2 lama

  • Modifikasi baru akan menggunakan file Vektor Penghapusan V3

  • Pemutakhiran tidak melakukan pengisian ulang historis dari catatan pelacakan perubahan garis keturunan

Mengaktifkan Vektor Penghapusan

Untuk memanfaatkan Vektor Penghapusan untuk pembaruan, penghapusan, dan penggabungan, konfigurasikan mode tulis Anda.

Menggunakan Spark SQL:

ALTER TABLE myns.orders_v3 SET TBLPROPERTIES ('format-version' = '3', 'write.delete.mode' = 'merge-on-read', 'write.update.mode' = 'merge-on-read', 'write.merge.mode' = 'merge-on-read' )

Pengaturan ini memastikan bahwa operasi pembaruan, penghapusan, dan penggabungan membuat file Vektor Penghapusan alih-alih menulis ulang seluruh file data.

Memanfaatkan Lineage Baris untuk Pelacakan Perubahan

V3 secara otomatis menambahkan bidang metadata baris garis keturunan untuk melacak perubahan.

Menggunakan Spark SQL:

# Query with parameter value provided last_processed_sequence = 47 SELECT id, data, _row_id, _last_updated_sequence_number FROM myns.orders_v3 WHERE _last_updated_sequence_number > :last_processed_sequence

Bidang _row_id secara unik mengidentifikasi setiap baris, sementara _last_updated_sequence_number melacak saat baris terakhir diubah. Gunakan bidang ini untuk:

  • Identifikasi baris yang diubah untuk pemrosesan inkremental

  • Lacak garis keturunan data untuk kepatuhan

  • Optimalkan jaringan pipa CDC

  • Mengurangi biaya komputasi dengan hanya memproses perubahan

Praktik Terbaik untuk V3

Kapan Menggunakan V3

Pertimbangkan untuk memutakhirkan ke atau memulai dengan V3 saat:

  • Anda sering melakukan pembaruan atau penghapusan batch

  • Anda harus memenuhi persyaratan penghapusan GDPR atau kepatuhan

  • Beban kerja Anda melibatkan peningkatan frekuensi tinggi

  • Anda memerlukan alur kerja CDC yang efisien

  • Anda ingin mengurangi biaya penyimpanan dari file kecil

  • Anda membutuhkan kemampuan pelacakan perubahan yang lebih baik

Mengoptimalkan Kinerja Tulis

  • Aktifkan Vektor Penghapusan untuk beban kerja pembaruan-berat:

    SET TBLPROPERTIES ( 'write.delete.mode' = 'merge-on-read', 'write.update.mode' = 'merge-on-read', 'write.merge.mode' = 'merge-on-read' )
  • Konfigurasikan ukuran file yang sesuai:

    SET TBLPROPERTIES ( 'write.target-file-size-bytes' = '536870912' — 512 MB )

Mengoptimalkan Kinerja Baca

  • Memanfaatkan garis keturunan untuk pemrosesan inkremental

  • Gunakan perjalanan waktu untuk mengakses data historis tanpa menyalin

  • Aktifkan pengumpulan statistik untuk perencanaan kueri yang lebih baik

Strategi Migrasi

Saat bermigrasi dari V2 ke V3:

  • Uji di non-produksi terlebih dahulu - Validasi proses dan kinerja peningkatan

  • Upgrade selama periode aktivitas rendah - Minimalkan dampak pada operasi bersamaan

  • Pantau kinerja awal - Lacak metrik setelah peningkatan

  • Jalankan pemadatan - Konsolidasikan file hapus setelah peningkatan

  • Perbarui dokumentasi - Mencerminkan fitur V3 dalam dokumentasi tim

Pertimbangan Kompatibilitas

  • Versi mesin - Pastikan semua mesin mengakses tabel mendukung V3

  • Alat pihak ketiga - Verifikasi kompatibilitas V3 sebelum meningkatkan

  • Strategi Backup - Uji prosedur pemulihan berbasis snapshot

  • Pemantauan - Perbarui dasbor pemantauan untuk metrik khusus V3

Pemecahan masalah

Masalah Umum

Kesalahan: “format-versi 3 tidak didukung”
  • Verifikasi versi mesin Anda mendukung V3

    Dukungan V3 untuk AWS layanan Amazon adalah sebagai berikut:

    Layanan Dukungan V3
    Percikan EMR Rilis 7.12+
    AWS Glue ETL Ya
    Notebook Studio SageMaker Terpadu Amazon Ya
    AWS Glue: Iceberg REST API, Pemeliharaan Meja Ya
    Tabel Amazon S3: Iceberg REST API, Pemeliharaan Tabel Ya
    Amazon Athena (Trino) Tidak
  • Periksa kompatibilitas katalog

  • Pastikan versi AWS layanan terbaru

Degradasi kinerja setelah peningkatan
  • Verifikasi tidak ada kegagalan pemadatan. Lihat Pencatatan dan pemantauan untuk Tabel S3 untuk detail selengkapnya.

  • Periksa apakah Vektor Penghapusan diaktifkan. Pastikan properti berikut diatur:

    SET TBLPROPERTIES ( 'write.delete.mode' = 'merge-on-read', 'write.update.mode' = 'merge-on-read', 'write.merge.mode' = 'merge-on-read' )
  • Anda dapat memverifikasi properti tabel dengan kode berikut:

    DESCRIBE FORMATTED myns.orders_v3
  • Tinjau strategi partisi. Partisi yang berlebihan dapat menyebabkan file kecil. Jalankan kueri di bawah ini untuk mendapatkan ukuran file rata-rata untuk tabel Anda:

    SELECT avg(file_size_in_bytes) as avg_file_size_bytes FROM myns.orders_v3.files
Ketidakcocokan dengan alat pihak ketiga
  • Verifikasi alat mendukung spesifikasi V3

  • Pertimbangkan untuk mempertahankan tabel V2 untuk alat yang tidak didukung

  • Hubungi vendor alat untuk garis waktu dukungan V3

Mendapatkan Bantuan

  • AWS Support: Hubungi AWS Support untuk masalah khusus layanan

  • Komunitas Gunung Es Apache: Iceberg Slack

  • AWS Dokumentasi: Dokumentasi AWS Analytics

Harga

Ketersediaan

Dukungan Apache Iceberg V3 tersedia di semua wilayah tempat AWS Amazon EMR, AWS Glue Data Catalog, Glue ETL, AWS dan Tabel S3 beroperasi.

Sumber Daya Tambahan