Apa itu Apache Iceberg?
Apa itu Apache Iceberg?
Apache Iceberg adalah format tabel data sumber terbuka yang terdistribusi, berbasis komunitas, berlisensi Apache 2.0, 100% yang membantu menyederhanakan pemrosesan data pada kumpulan data besar yang disimpan di danau data. Rekayasawan data menggunakan Apache Iceberg karena cepat, efisien, serta dapat diandalkan dalam skala berapa pun dan menyimpan catatan tentang perubahan set data dari waktu ke waktu. Apache Iceberg menawarkan integrasi yang mudah dengan kerangka kerja pemrosesan data populer seperti Apache Spark, Apache Flink, Apache Hive, Presto, dan banyak lagi.
Apa itu danau data transaksional?
Danau data adalah repositori terpusat yang memungkinkan Anda menyimpan semua data terstruktur dan tidak terstruktur pada skala apa pun. Transaksi data adalah serangkaian pertukaran data yang dilakukan dalam satu operasi. Misalnya, ketika seorang pelanggan menarik uang dari rekening, bank akan melakukan beberapa pertukaran data secara bersamaan dalam satu transaksi data, termasuk memverifikasi bahwa rekening memiliki saldo yang cukup, memverifikasi identitas, dan mendebit penarikan dari rekening. Danau data transaksional adalah tipe danau data yang tidak hanya menyimpan data dalam skala besar, tetapi juga mendukung operasi transaksional dan memastikan bahwa data sudah akurat, konsisten, dan memungkinkan Anda untuk melacak perubahan data serta struktur data dari waktu ke waktu. Sifat-sifat ini secara kolektif dikenal sebagai Atomisitas, Konsistensi, Isolasi, dan Daya Tahan (ACID):
-
Atomicity menjamin bahwa setiap transaksi adalah peristiwa tunggal yang berhasil atau gagal sepenuhnya; tidak ada status setengah jalan.
-
Konsistensi memastikan bahwa semua data yang ditulis valid sesuai dengan aturan yang ditentukan dari danau data, memastikan bahwa data akurat dan dapat diandalkan.
-
Isol asi memastikan beberapa transaksi dapat terjadi pada saat yang sama tanpa mengganggu satu sama lain, memastikan bahwa setiap transaksi dijalankan secara independen.
-
Daya tahan berarti bahwa data tidak hilang atau rusak setelah transaksi dikirimkan. Data dapat dipulihkan jika terjadi kegagalan sistem, seperti pemadaman listrik.
Apa saja manfaat penggunaan Apache Iceberg?
Beberapa manfaat utama menggunakan Apache Iceberg untuk danau data transaksional meliputi:
-
Keakraban SQL: Bahasa kueri terstruktur (SQL) adalah bahasa query populer yang sering digunakan di semua jenis aplikasi. Para analis data dan developer belajar serta menggunakan SQL karena terintegrasi baik dengan bahasa pemrograman yang lain dan juga cukup mudah dipelajari karena menggunakan kata kunci bahasa Inggris yang umum dalam pernyataannya. Apache Iceberg memungkinkan siapa saja yang akrab dengan bahasa query terstruktur (SQL) untuk membangun data lake dan melakukan sebagian besar operasi data lake tanpa perlu mempelajari bahasa baru.
-
Konsistensi Data: Apache Iceberg menyediakan konsistensi data untuk memastikan bahwa setiap pengguna yang membaca dan menulis ke data melihat data yang sama.
-
Struktur data: Apache Iceberg memungkinkan perubahan yang mudah pada struktur data Anda, dikenal juga sebagai evolusi skema, yang berarti bahwa pengguna dapat menambahkan, mengganti nama, atau menghapus kolom dari tabel data tanpa mengganggu data dasarnya.
-
Pembuatan Versi Data: Apache Iceberg menyediakan dukungan untuk pembuatan versi data, yang memungkinkan pengguna melacak perubahan data seiring waktu. Ini memungkinkan fitur perjalanan waktu, yang memungkinkan pengguna untuk mengakses dan menanyakan versi historis data dan menganalisis perubahan data antara pembaruan dan penghapusan.
-
Dukungan lintas platform: Apache Iceberg mendukung berbagai sistem penyimpanan dan mesin kueri yang berbeda, termasuk Apache Spark, Apache Hive, dan Presto. Ini membuatnya mudah untuk menggunakan Iceberg di berbagai lingkungan pemrosesan data yang berbeda.
-
Pemrosesan tambahan: Iceberg mendukung pemrosesan tambahan, yang memungkinkan pengguna untuk memproses hanya data yang telah berubah sejak dijalankan terakhir, juga dikenal sebagai CDC (Change Data Capture). Ini dapat membantu meningkatkan efisiensi dan kinerja pemrosesan data.
Apa saja kasus penggunaan Apache Iceberg yang umum?
Apache Iceberg cocok untuk banyak kasus penggunaan danau data, termasuk:
-
Tabel data di danau data yang harus sering dihapus, seperti saat menerapkan undang-undang privasi data.
-
Tabel data di danau data yang memerlukan pembaruan tingkat rekaman. Tabel ini sangat membantu ketika set data Anda harus sering diperbarui setelah data dimasukkan, misalnya, data penjualan yang mungkin berubah karena peristiwa setelahnya seperti pengembalian pelanggan. Iceberg menyediakan kemampuan untuk memperbarui catatan individual tanpa perlu menerbitkan ulang seluruh kumpulan data.
-
Tabel data di danau data yang memiliki perubahan tak terduga, seperti tabel Slowly Changing Dimension (SCD). Contoh SCD adalah tabel catatan pelanggan yang mencakup nama, lokasi, dan informasi kontak yang dapat berubah seiring waktu pada interval yang tidak diketahui.
-
Ketika transaksi dengan danau data membutuhkan jaminan validitas data, daya tahan, dan keandalan, format tabel Apache Iceberg dapat di-deploy untuk memastikan unsur ACID dalam transaksi.
-
Jika perlu kembali ke masa lalu untuk meminta versi historis data guna melakukan analisis tren, analisis perubahan data selama periode waktu tertentu, atau kembalikan atau jalankan kembali versi sebelumnya untuk memperbaiki masalah.
Siapa yang menggunakan Apache Iceberg?
Insinyur data, administrator data, analis data, dan ilmuwan data termasuk di antara persona yang menggunakan Apache Iceberg. Rekayasawan dan administrator data dapat menggunakan Apache Iceberg untuk mendesain dan membangun sistem penyimpanan data yang dapat diskalakan. Analis data dan ilmuwan data dapat menggunakan Apache Iceberg untuk menganalisis kumpulan data besar secara efisien.
Mengapa Anda harus memilih Apache Iceberg?
Apache Iceberg menawarkan cara cepat dan efisien untuk memproses kumpulan data besar dalam skala besar. Ini membawa manfaat berikut:
-
Sumber terbuka: Apache Iceberg adalah proyek open source, yang berarti gratis untuk digunakan dan dapat disesuaikan untuk memenuhi kebutuhan spesifik Anda. Ini juga memiliki komunitas pengembang aktif yang terus meningkatkan dan menambahkan fitur baru ke proyek.
-
Skalabilitas: Apache Iceberg dirancang untuk menangani kumpulan data besar secara efisien. Ini dapat mempartisi dan mengatur data di beberapa node, yang membantu mendistribusikan beban kerja dan mempercepat pemrosesan data.
-
Kinerja: Apache Iceberg memiliki berbagai fitur untuk mengoptimalkan kinerja kueri, termasuk penyimpanan kolumnar dan teknik kompresi seperti predikat push down dan evolusi skema.
-
Fleksibilitas: Apache Iceberg memungkinkan Anda mengubah cara data Anda diatur sehingga dapat berkembang dari waktu ke waktu tanpa mengharuskan Anda menulis ulang kueri Anda atau membangun kembali struktur data Anda. Ini juga mendukung beberapa format data dan sumber data, yang membuatnya mudah untuk diintegrasikan dengan sistem yang ada.
-
Keandalan: Apache Iceberg memastikan konsistensi dan keandalan data melalui dukungannya untuk transaksi. Anda dapat melacak perubahan data dari waktu ke waktu dan mengembalikan ke versi historis untuk membantu Anda memperbaiki masalah.
Layanan AWS apa yang mendukung Iceberg?
Apache Iceberg mendukung kerangka kerja pemrosesan data populer seperti Apache Spark, Apache Flink, Apache Hive dan Presto. Layanan AWS seperti Amazon Redshift, Amazon Athena, Amazon EMR, AWS Glu e , dan Amazon Data Firehose , menyertakan dukungan asli untuk kerangka kerja danau data transaksional termasuk Apache Iceberg. Apache Iceberg dalam kombinasi dengan layanan AWS yang didukung memungkinkan danau data transaksional, seringkali berdasarkan penyimpanan di S3.
-
Amazon Redshift adalah layanan analisis SQL dan pergudangan data yang dikelola sepenuhnya, didukung AI untuk mendorong pengambilan keputusan bisnis bagi pelanggan, dengan cepat dan hemat biaya. Amazon Redshift menghadirkan arsitektur Pemrosesan Pararel secara Masif (MPP), multiklaster, dan nirserver dengan kemampuan nol-ETL yang mendorong analitik nyaris waktu nyata dan kasus penggunaan AI/ML dengan berbagi data. Pelanggan dapat menggunakan Amazon Redshift untuk menanyakan tabel Apache Iceberg di data lake, diakses melalui katalog AWS Glue Data dan menggabungkannya dengan tabel mereka di gudang data untuk analitik komprehensif.
-
Amazon Athena adalah layanan analitik interaktif tanpa server yang dibangun di atas kerangka kerja sumber terbuka, mendukung format tabel terbuka dan file. Athena menyediakan cara sederhana dan fleksibel untuk menganalisis data berukuran petabita di tempatnya. Athena menyediakan dukungan asli untuk kueri baca, perjalanan waktu, tulis, dan DDL untuk tabel Apache Iceberg yang menggunakan format Apache Parquet untuk data dan katalog AWS Glue untuk metastore mereka.
-
Amazon EMR adalah solusi data besar untuk pemrosesan data skala petabyte, analitik interaktif, dan pembelajaran mesin menggunakan kerangka kerja sumber terbuka seperti Apache Spark, Hadoop, Presto, dan Hive. Dimulai dengan Amazon EMR 6.5.0, Anda dapat menggunakan Apache Spark 3 di klaster Amazon EMR dengan format tabel Iceberg. Kerangka kerja EMR termasuk Spark, Trino, Flink dan Hive mendukung Apache Iceberg.
-
AWS Glu e adalah layanan integrasi data tanpa server yang membuatnya lebih mudah untuk menemukan, menyiapkan, memindahkan, dan mengintegrasikan data dari berbagai sumber untuk analitik, pembelajaran mesin (ML) , dan pengembangan aplikasi. AWS Glue 3.0 dan yang lebih baru mendukung kerangka kerja Apache Iceberg untuk danau data. Anda dapat menggunakan AWS Glue untuk melakukan operasi baca dan tulis pada tabel Iceberg di Amazon S3, atau bekerja dengan tabel Iceberg menggunakan Katalog Data AWS Glue. Operasi tambahan termasuk menyisipkan, memperbarui, dan semua kueri Spark, tulis Spark juga didukung.
-
Amazon Data Firehose adalah layanan tanpa server yang dikelola sepenuhnya untuk mengirimkan data streaming real-time ke tujuan seperti Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, Snowflake, Apache Iceberg Tables, dan setiap titik akhir HTTP kustom atau titik akhir HTTP yang dimiliki oleh penyedia layanan pihak ketiga yang didukung, termasuk Datadog, Dynatrace, LogicMonitor, MongoDB, New Corc, Alogix, dan Elastic. Dengan Amazon Data Firehose, Anda tidak perlu menulis aplikasi atau mengelola sumber daya. Anda dapat mengonfigurasi produsen data untuk mengirim data ke Firehose, dan ini akan mengirimkan data secara otomatis ke tujuan yang telah Anda tetapkan. Anda juga dapat mengonfigurasi Amazon Data Firehose untuk mengubah data Anda sebelum mengirimkannya.