Iceberg adalah format tabel terbuka untuk danau data. Anda dapat menggunakan Iceberg untuk membangun layanan penyimpanan danau data di Hadoop Distributed File System (HDFS) atau Alibaba Cloud Object Storage Service (OSS). Selanjutnya, Anda dapat menggunakan mesin komputasi seperti Apache Flink, Apache Spark, Apache Hive, atau Apache Presto dari ekosistem big data open source untuk menganalisis data di danau data Anda.
Fitur
Apache Iceberg dirancang untuk migrasi data Hive ke cloud. Setelah beberapa pembaruan, Apache Iceberg menjadi format tabel standar untuk danau data yang diterapkan di cloud. Untuk informasi lebih lanjut tentang Apache Iceberg, kunjungi situs resmi Apache Iceberg.
Apache Iceberg menyediakan fitur-fitur berikut:
Membangun layanan penyimpanan danau data ringan berbiaya rendah berbasis HDFS atau sistem penyimpanan objek.
Menghubungkan ke mesin komputasi open source utama untuk pengambilan data dan analisis.
Menyediakan semantik ACID (atomicity, consistency, isolation, durability) yang komprehensif.
Mendukung perubahan data tingkat baris.
Mendukung pelacakan balik versi historis.
Mendukung penyaringan data yang efisien.
Mendukung perubahan skema.
Mendukung perubahan partisi.
Mendukung partisi tersembunyi.
Tabel berikut membandingkan ClickHouse open source (gudang data real-time), Hive open source (gudang data offline), dan Alibaba Cloud E-MapReduce (EMR) Iceberg (danau data) berdasarkan dimensi arsitektur sistem, nilai bisnis, dan biaya pemeliharaan.
Item | Subitem | ClickHouse Open Source | Hive Open Source | Alibaba Cloud EMR Iceberg |
Arsitektur sistem | Arsitektur | Komputasi dan penyimpanan terintegrasi | Komputasi dan penyimpanan dipisahkan | Komputasi dan penyimpanan dipisahkan |
Mesin komputasi ganda | Tidak didukung | Didukung | Didukung | |
Penyimpanan data dalam sistem penyimpanan objek | Tidak didukung | Tidak sepenuhnya didukung | Didukung | |
Penyimpanan data dalam HDFS | Tidak didukung | Didukung | Didukung | |
Keterbukaan format penyimpanan | Tidak | Ya | Ya | |
Nilai bisnis | Ketepatan waktu | Tepat hingga detik | Tepat hingga jam atau hari | Tepat hingga menit |
Fleksibilitas komputasi | Rendah | Tinggi | Tinggi | |
Transaksi | Tidak didukung | Tidak sepenuhnya didukung | Didukung | |
Kesemestaan semantik tingkat tabel | Buruk | Buruk | Bagus | |
Perubahan data tingkat baris | Tidak didukung | Dukungan terbatas | Didukung | |
Kualitas data | Bagus | Baik | Baik | |
Biaya pemeliharaan | Kinerja kueri | Tinggi | Sangat tinggi | Sangat tinggi |
Biaya penyimpanan | Tinggi | Sedang | Rendah | |
Layanan mandiri | Tidak didukung | Tidak didukung | Didukung | |
Skalabilitas sumber daya | Sedang | Sedang | Bagus |
Perbandingan antara Alibaba Cloud EMR Iceberg dan Apache Iceberg
Tabel berikut membandingkan Alibaba Cloud EMR Iceberg dan Apache Iceberg berdasarkan dimensi fitur dasar, perubahan data, dan mesin komputasi.
Tanda centang (✓) menunjukkan bahwa item terkait didukung, sedangkan tanda silang (x) menunjukkan bahwa item terkait tidak didukung.
Kategori | Item | Subitem | Apache Iceberg | EMR Iceberg |
Fitur dasar | ACID | Tidak ada | ✓ | ✓ |
Pelacakan balik versi historis | Tidak ada | ✓ | ✓ | |
Integrasi sumber dan sink | Batch | ✓ | ✓ | |
Streaming | ✓ | ✓ | ||
Penyaringan data yang efisien | Tidak ada | ✓ | ✓ | |
Perubahan data | Evolusi skema | Tidak ada | ✓ | ✓ |
Evolusi partisi | Tidak ada | ✓ | ✓ | |
Pembaruan copy-on-write | Tidak ada | ✓ | ✓ | |
Pembaruan merge-on-read | Baca | ✓ | ✓ | |
Tulis | ✓ | ✓ | ||
Pemadatan | x | x | ||
Mesin komputasi | Apache Spark | Baca | ✓ | ✓ |
Tulis | ✓ | ✓ | ||
Apache Hive | Baca | ✓ | ✓ | |
Tulis | ✓ | ✓ | ||
Apache Flink | Baca | ✓ | ✓ | |
Tulis | ✓ | ✓ | ||
PrestoDB atau Trino | Baca | ✓ | ✓ | |
Tulis | ✓ | ✓ | ||
Bahasa pemrograman | Java | Tidak ada | ✓ | ✓ |
Python | Tidak ada | ✓ | ✓ | |
Fitur lanjutan | Koneksi asli ke Alibaba Cloud OSS | Tidak ada | x | ✓ |
Koneksi asli ke Alibaba Cloud Data Lake Formation (DLF) | Tidak ada | x | ✓ | |
Percepatan akses data berdasarkan caching data di disk lokal | Tidak ada | x | ✓ | |
Penggabungan otomatis file kecil | Tidak ada | x | ✓ |
Informasi dalam tabel ini disusun berdasarkan analisis objektif status Apache Iceberg dan Alibaba Cloud EMR Iceberg pada akhir September 2021. Informasi ini dapat berubah sesuai dengan pembaruan Apache Iceberg dan EMR Iceberg.
Skenario
Iceberg merupakan salah satu komponen inti dari layanan danau data serbaguna. Tabel berikut menjelaskan skenario penggunaan Iceberg.
Skenario | Deskripsi |
Menulis dan membaca data secara real-time | Data upstream diambil ke danau data berbasis Iceberg secara real-time untuk menjalankan kueri. Anda dapat menjalankan pekerjaan streaming Flink atau Spark untuk menulis data log ke tabel Iceberg secara real-time. Kemudian, Anda dapat menggunakan mesin komputasi seperti Hive, Spark, Flink, atau Presto untuk membaca data secara real-time. Untuk informasi lebih lanjut, Konektor Apache Iceberg, Jalankan pekerjaan streaming Spark untuk menulis data ke tabel Iceberg, Gunakan Spark untuk membaca data, dan Konektor Apache Iceberg. Iceberg mendukung transaksi ACID, yang mengisolasi operasi penulisan data dari operasi pembacaan data untuk menghindari data kotor. |
Hapus atau perbarui data | Sebagian besar gudang data tidak mendukung penghapusan atau pembaruan data tingkat baris. Dalam banyak kasus, Anda dapat menjalankan pekerjaan offline untuk membaca semua data dari tabel sumber, mengubah data tersebut, dan kemudian menulis data yang telah diubah kembali ke tabel sumber. Jika Iceberg digunakan, perubahan data dapat dilakukan pada file daripada tabel. Ruang lingkup operasi perubahan menjadi lebih sempit. Dengan cara ini, Anda dapat memperbarui atau menghapus data bisnis Anda dengan melakukan operasi perubahan berdasarkan ruang lingkup yang lebih kecil. Dalam danau data berbasis Iceberg, Anda dapat menjalankan perintah yang mirip dengan |
Kontrol kualitas data | Anda dapat menggunakan skema Iceberg untuk memeriksa dan menghapus data abnormal dari data yang sedang ditulis atau memproses lebih lanjut data abnormal tersebut. |
Ubah skema tabel | Anda dapat menggunakan pernyataan DDL yang didukung oleh Spark SQL untuk mengubah skema tabel Iceberg. Saat Anda mengubah skema tabel Iceberg, Anda tidak perlu mengekspor semua data historis dalam tabel berdasarkan skema baru. Oleh karena itu, kecepatan mengubah skema sangat cepat. Iceberg mendukung transaksi ACID, yang mencegah perubahan skema memengaruhi operasi pembacaan data. Dengan cara ini, data yang Anda baca dan tulis tetap konsisten. |
Pembelajaran mesin real-time | Dalam skenario pembelajaran mesin, waktu yang lama mungkin diperlukan untuk memproses data, seperti pembersihan, konversi, dan karakterisasi data. Anda mungkin juga perlu memproses data historis dan data real-time. Iceberg menyederhanakan alur kerja ini. Iceberg menyediakan aliran real-time yang lengkap dan andal untuk membersihkan, mengonversi, dan mengkarakterisasi data. Anda tidak perlu memproses data historis dan data real-time secara terpisah. Iceberg juga mendukung SDK asli untuk Python, yang dikembangkan untuk memenuhi kebutuhan pengembang yang menggunakan algoritma pembelajaran mesin. |