Iceberg ist ein Hochleistungsformat für riesige analytische Tabellen. Iceberg bringt die Zuverlässigkeit und Einfachheit von SQL -Tabellen in Big Data ein und ermöglicht es den Motoren wie Spark, Trino, Flink, Presto, Hive und Impala, gleichzeitig mit denselben Tischen sicher mit denselben Tischen zu arbeiten.
Hintergrund und Dokumentation finden Sie unter https://iceberg.apache.org
Iceberg wird bei der Apache Software Foundation aktiv entwickelt.
Die Eisberg -Formatspezifikation ist stabil und mit jeder Version werden neue Funktionen hinzugefügt.
Die Kern -Java -Bibliothek befindet sich in diesem Repository und ist die Referenzimplementierung für andere Bibliotheken.
Dokumentation ist für alle Bibliotheken und Integrationen verfügbar.
Iceberg verfolgt Probleme in Github und bevorzugt es, Beiträge als Pull -Anfragen zu erhalten.
Community -Diskussionen erfolgen vor allem in der Dev -Mailingliste oder zu bestimmten Themen.
Iceberg wird mit Gradle mit Java 11, 17 oder 21 gebaut.
./gradlew build./gradlew build -x test -x integrationTest./gradlew spotlessApply zu beheben./gradlew spotlessApply -DallModulesDie Support der Eisberg -Tisch wird in Bibliotheksmodulen organisiert:
iceberg-common enthält Dienstprogrammklassen, die in anderen Modulen verwendet werdeniceberg-api enthält die öffentliche Eisberg-APIiceberg-core enthält Implementierungen der Eisberg-API und die Unterstützung von AVRO-Datendateien. Aus diesem Grund sollten Verarbeitungsmotoren abhängeniceberg-parquet ist ein optionales Modul für die Arbeit mit Tabellen, die von Parquetendateien unterstützt werdeniceberg-arrow ist ein optionales Modul zum Lesen von Parquet in den Pfeilspeichericeberg-orc ist ein optionales Modul für die Arbeit mit Tabellen, die von ORC-Dateien unterstützt werdeniceberg-hive-metastore ist eine Implementierung von Eisberg-Tischen, die vom Hive Metastore-Sparsamkeits-Client unterstützt werdeniceberg-data ist ein optionales Modul für die Arbeit mit Tabellen direkt von JVM-AnwendungenIceberg hat auch Module zum Hinzufügen von Eisberg -Unterstützung für die Verarbeitung von Motoren:
iceberg-spark ist eine Implementierung der DataSource V2-API von Spark für Eisberg mit Submodules für jede Spark-Version (verwenden Sie Laufzeitgläser für eine schattige Version).iceberg-flink enthält Klassen für die Integration in Apache Flink (verwenden Sie Iceberg-Flink-Runtime für eine schattierte Version).iceberg-mr enthält einen InputFormat und andere Klassen für die Integration in Apache HiveNOTIZ
Bei den Tests muss Docker ausgeführt werden. Auf macOS (mit Docker Desktop) müssen Sie möglicherweise einen symbolischen Namen für den Docker -Socket erstellen, um durch die Tests erkannt zu werden:
sudo ln -s $HOME/.docker/run/docker.sock /var/run/docker.sock
In der Support-Seite mit mehreren Engine werden über die Kompatibilität der Eisberg-Kompatibilität mit unterschiedlichem Funken-, Flink- und Bienenstockversionen informiert. Für andere Motoren wie Presto oder Trino besuchen Sie bitte ihre Websites, um ICEBERG -Integrationsdetails zu erhalten.
Dieses Repository enthält die Java -Implementierung von Eisberg. Andere Implementierungen finden Sie unter: