Apa itu Apache Iceberg?

Terakhir Diperbarui: 01/05/2026

Apache Iceberg adalah format tabel open source yang dirancang untuk set data analisis berskala besar yang disimpan di data lake. Tabel Iceberg mengelola data sebagai kumpulan file, sehingga menawarkan keandalan, performa, dan fleksibilitas yang lebih baik untuk arsitektur data modern. Anggap ini sebagai lapisan cerdas yang berada di atas penyimpanan data lake Anda, seperti Cloud Storage, yang memberikan kemampuan seperti database untuk set data besar Anda. Iceberg tidak hanya mengelola file, tetapi juga mengelola tabel sebagai kumpulan file data, sehingga memungkinkan fitur seperti evolusi skema, perjalanan waktu, dan perencanaan kueri yang lebih efisien. Hal ini memungkinkan analis data, data scientist, dan engineer untuk bekerja dengan data di data lake dengan lebih mudah dan efisien, serta meningkatkan workload analisis mereka.

Apa itu data lake transaksional?

Data lake transaksional tidak hanya menyimpan data dalam skala besar, tetapi juga mendukung operasi transaksional untuk memastikan data akurat dan konsisten. Tabel Iceberg memungkinkan properti ini, yang secara kolektif dikenal sebagai ACID.

  • Atomicity: Menjamin bahwa setiap transaksi diperlakukan sebagai satu unit, baik berhasil atau gagal sepenuhnya, tanpa status yang tidak pasti
  • Konsistensi: Memastikan bahwa semua data yang ditulis valid sesuai dengan aturan data lake yang ditentukan.
  • Isolasi: Memungkinkan beberapa transaksi terjadi secara bersamaan tanpa saling mengganggu
  • Ketahanan: Memastikan data tidak hilang atau rusak setelah transaksi dikirimkan, bahkan jika terjadi kegagalan sistem

Kasus penggunaan umum untuk tabel Iceberg

Tabel Iceberg cocok untuk berbagai kasus penggunaan data lake dan data lakehouse modern, termasuk:

  • Kepatuhan dan privasi: Cocok untuk data lake yang memerlukan penghapusan data secara berkala untuk menegakkan hukum privasi data
  • Pembaruan tingkat kumpulan data: Memungkinkan pembaruan pada kumpulan data individual tanpa memublikasikan ulang seluruh set data, seperti data penjualan yang berubah karena pengembalian produk oleh pelanggan
  • Mengelola perubahan yang tidak dapat diprediksi: Mendukung tabel Dimensi yang Berubah secara Perlahan (SCD), seperti data pelanggan yang informasi kontaknya dapat berubah pada waktu yang tidak diketahui
  • Lintas waktu dan audit: Mempertahankan histori snapshot tabel, sehingga pengguna dapat mengkueri versi historis untuk analisis tren atau untuk melakukan pembatalan dan memperbaiki masalah
  • Machine learning: Menyediakan set data yang konsisten dan memiliki versi yang penting untuk melatih model yang andal

Siapa yang menggunakan tabel Iceberg?

Berbagai persona teknis memanfaatkan tabel Iceberg untuk mengelola set data besar secara efisien:

  • Data engineer dan administrator: Menggunakan tabel Iceberg untuk merancang dan membangun sistem penyimpanan yang skalabel dan andal
  • Analis data dan data scientist: Menggunakan tabel Iceberg untuk menganalisis set data besar dengan SQL yang sudah dikenal luas dan snapshot historis yang dapat direproduksi

Manfaat utama tabel Iceberg

Memungkinkan pengguna yang terbiasa dengan SQL standar untuk melakukan operasi data lake yang kompleks tanpa perlu mempelajari bahasa baru.

Memungkinkan perubahan yang lancar pada struktur data (menambah, mengganti nama, atau menghapus kolom) tanpa mengganggu kueri.

Mendukung Pengambilan Data Perubahan (CDC), yang memungkinkan pengguna memproses data yang berubah sejak proses terakhir untuk meningkatkan efisiensi.

Menggunakan metadata untuk memangkas file yang tidak diperlukan, sehingga mempercepat eksekusi kueri melalui teknik seperti predicate pushdown.

Kompatibel dengan berbagai mesin seperti Spark, Flink, Hive, dan Presto.

Bagaimana cara kerja tabel Apache Iceberg?

Apache Iceberg memperkenalkan lapisan metadata yang berada di atas file data aktual di data lake Anda. Metadata ini melacak struktur dan konten tabel Anda dengan cara yang lebih teratur dan andal daripada sistem berbasis file tradisional. Berikut perincian mekanisme utamanya:

  • Pengelolaan metadata: Iceberg mengelola file metadata yang menjelaskan skema tabel, partisi, dan lokasi file data. File metadata ini biasanya disimpan di data lake bersama dengan data.
  • Katalog: Iceberg mengandalkan katalog untuk melacak lokasi metadata saat ini untuk setiap tabel. Katalog ini dapat berupa layanan seperti Hive Metastore, implementasi berbasis sistem file, atau layanan katalog berbasis cloud.
  • Snapshot tabel: Setiap kali tabel diubah (misalnya, penambahan data, penghapusan data, atau evolusi skema), Iceberg akan membuat snapshot baru dari metadata tabel. Snapshot ini tidak dapat diubah dan memberikan kumpulan data historis dari status tabel.
  • Daftar manifes dan file manifes: Setiap snapshot menunjuk ke daftar manifes, yang kemudian mencantumkan satu atau beberapa file manifes. File manifes berisi metadata tentang setiap file data, termasuk lokasi, nilai partisi, dan statistiknya (seperti jumlah baris dan rentang nilai).

Arsitektur Apache Iceberg

Arsitektur Apache Iceberg melibatkan beberapa komponen utama yang bekerja sama:

  • Penyimpanan data lake: Ini adalah lapisan penyimpanan dasar, seperti Cloud Storage, tempat file data aktual (dalam format seperti Parquet, ORC, atau Avro) dan file metadata Iceberg disimpan.
  • Katalog REST Iceberg: Komponen ini bertanggung jawab untuk mengelola petunjuk metadata untuk tabel Iceberg. Katalog ini bertindak sebagai registry pusat yang melacak versi terbaru dari setiap metadata tabel. Penerapan katalog umum meliputi:
  • Metastore Hive: Repositori metadata yang banyak digunakan, sering kali digunakan dengan sistem berbasis Hadoop.
  • Katalog sistem file: Sebuah implementasi sederhana di mana informasi katalog disimpan langsung di sistem file data lake.
  • Layanan katalog berbasis cloud: Layanan terkelola yang ditawarkan oleh penyedia cloud untuk menyimpan dan mengelola metadata.
  • Metadata Iceberg: Metadata ini terdiri dari beberapa lapisan file metadata yang melacak struktur dan data tabel:
  • File metadata tabel: File ini mengarah ke daftar manifest saat ini dan berisi informasi tingkat tinggi tentang tabel, seperti skema dan spesifikasi partisi.
  • Daftar manifest: File ini mencantumkan file manifest yang berisi metadata tentang file data dalam snapshot tertentu dari tabel.
  • File manifes: File ini berisi informasi mendetail tentang setiap file data, termasuk lokasi, nilai partisi, dan statistiknya.
  • Mesin kueri dan framework pemrosesan: Ini adalah alat yang berinteraksi dengan tabel Iceberg untuk membaca dan menulis data. Mesin ini memanfaatkan metadata Iceberg untuk mengoptimalkan perencanaan dan eksekusi kueri.
  • Resource komputasi: Ini adalah infrastruktur dasar (misalnya, virtual machine dan container) yang menjalankan mesin kueri dan framework pemrosesan.

Apache Iceberg dan data lake

Apache Iceberg meningkatkan kemampuan data lake secara signifikan dengan menambahkan format tabel yang andal dan berperforma tinggi. Di data lake tradisional tanpa format tabel seperti Iceberg, data sering kali hanya berupa kumpulan file. Hal ini dapat menyebabkan beberapa tantangan:

  • Kurangnya evolusi skema: Mengubah struktur data dapat menjadi kompleks dan rentan error
  • Pembacaan yang tidak konsisten: Operasi tulis serentak dapat menyebabkan kueri membaca campuran data lama dan baru
  • Performa kueri lambat: Tanpa metadata untuk memandu mesin kueri, mesin kueri sering kali harus memindai sebagian besar data
  • Kesulitan dalam pengelolaan data: Fitur seperti perjalanan waktu dan pembuatan versi tidak tersedia secara langsung

Iceberg mengatasi batasan ini dengan menyediakan lapisan terstruktur di atas data lake. Iceberg menghadirkan fitur seperti database ke data lake, sehingga mengubahnya menjadi data lakehouse yang lebih canggih dan mudah dikelola. Dengan mengelola tabel sebagai kumpulan file dengan metadata yang kaya, Iceberg memungkinkan:

  • Akses data yang andal dan konsisten: Properti ACID memastikan integritas data
  • Pemrosesan kueri yang efisien: Pemfilteran dan pemindahan data berbasis metadata mempercepat kueri
  • Pengelolaan data yang fleksibel: Evolusi skema dan perjalanan waktu menyederhanakan pemeliharaan dan analisis data
  • Interoperabilitas: Iceberg dirancang agar kompatibel dengan berbagai mesin kueri dan framework pemrosesan yang biasa digunakan dengan data lake

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Hubungi spesialis penjualan Google Cloud untuk membahas tantangan unik Anda secara lebih mendetail.

Google Cloud dan Apache Iceberg

Google Cloud menyediakan lingkungan yang andal untuk memanfaatkan Apache Iceberg. Beberapa layanan Google Cloud terintegrasi dengan baik dengan Iceberg, sehingga pengguna dapat membangun solusi data lakehouse yang canggih dan skalabel.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.