Iceberg adalah format kinerja tinggi untuk tabel analitik besar. Iceberg membawa keandalan dan kesederhanaan tabel SQL ke data besar, sambil memungkinkan mesin seperti Spark, Trino, Flink, Presto, Hive dan Impala untuk bekerja dengan aman dengan tabel yang sama, pada saat yang sama.
Latar Belakang dan Dokumentasi tersedia di https://iceberg.apache.org
Iceberg sedang dalam pengembangan aktif di Apache Software Foundation.
Spesifikasi format gunung es stabil dan fitur baru ditambahkan dengan setiap versi.
Perpustakaan Java inti terletak di repositori ini dan merupakan implementasi referensi untuk perpustakaan lain.
Dokumentasi tersedia untuk semua perpustakaan dan integrasi.
Iceberg melacak masalah di GitHub dan lebih suka menerima kontribusi sebagai permintaan tarik.
Diskusi masyarakat terjadi terutama di milis dev atau pada masalah tertentu.
Iceberg dibangun menggunakan Gradle dengan Java 11, 17, atau 21.
./gradlew build./gradlew build -x test -x integrationTest./gradlew spotlessApply./gradlew spotlessApply -DallModulesDukungan meja gunung es diselenggarakan dalam modul perpustakaan:
iceberg-common berisi kelas utilitas yang digunakan dalam modul lainiceberg-api berisi API Iceberg Publikiceberg-core berisi implementasi Iceberg API dan dukungan untuk file data AVRO, inilah yang harus diandalkan oleh mesin pemrosesaniceberg-parquet adalah modul opsional untuk bekerja dengan tabel yang didukung oleh file parketiceberg-arrow adalah modul opsional untuk membaca parket ke dalam memori panahiceberg-orc adalah modul opsional untuk bekerja dengan tabel yang didukung oleh file orciceberg-hive-metastore adalah implementasi meja gunung es yang didukung oleh klien hive hive metastoreiceberg-data adalah modul opsional untuk bekerja dengan tabel langsung dari aplikasi JVMIceberg juga memiliki modul untuk menambahkan dukungan gunung es ke mesin pemrosesan:
iceberg-spark adalah implementasi dari DataSource V2 API Spark untuk Iceberg dengan submodul untuk setiap versi Spark (gunakan stoples runtime untuk versi yang diarsir)iceberg-flink berisi kelas untuk mengintegrasikan dengan Apache Flink (gunakan Iceberg-Flink-Runtime untuk versi yang diarsir)iceberg-mr berisi inputformat dan kelas lain untuk berintegrasi dengan Apache HiveCATATAN
Tes membutuhkan Docker untuk dieksekusi. Pada macOS (dengan Docker Desktop), Anda mungkin perlu membuat nama simbolis ke soket Docker untuk dideteksi oleh tes:
sudo ln -s $HOME/.docker/run/docker.sock /var/run/docker.sock
Lihat halaman dukungan multi-mesin untuk mengetahui tentang kompatibilitas gunung es dengan berbagai versi percikan, flink dan sarang. Untuk mesin lain seperti Presto atau Trino, silakan kunjungi situs web mereka untuk detail integrasi gunung es.
Repositori ini berisi implementasi gunung es Java. Implementasi lain dapat ditemukan di: