빙산은 거대한 분석 테이블을위한 고성능 형식입니다. Iceberg는 SQL 테이블의 신뢰성과 단순성을 빅 데이터에 가져 오는 동시에 Spark, Trino, Flink, Presto, Hive 및 Impala와 같은 엔진이 동시에 동일한 테이블과 안전하게 작업 할 수 있도록합니다.
배경 및 문서는 https://iceberg.apache.org에서 확인할 수 있습니다
Iceberg는 Apache Software Foundation에서 적극적으로 개발 중입니다.
빙산 형식 사양은 안정적이며 각 버전에 새로운 기능이 추가됩니다.
Core Java 라이브러리는이 저장소에 있으며 다른 라이브러리의 참조 구현입니다.
모든 라이브러리 및 통합에 문서화가 가능합니다.
Iceberg는 Github의 문제를 추적하고 풀 요청으로 기부금을받는 것을 선호합니다.
커뮤니티 토론은 주로 개발자 메일 링리스트 또는 특정 문제에 대해 발생합니다.
빙산은 Java 11, 17 또는 21과 함께 Gradle을 사용하여 제작되었습니다.
./gradlew build./gradlew build -x test -x integrationTest./gradlew spotlessApply./gradlew spotlessApply -DallModules빙산 테이블 지원은 라이브러리 모듈로 구성됩니다.
iceberg-common 다른 모듈에 사용되는 유틸리티 클래스가 포함되어 있습니다iceberg-api 에는 Public Iceberg API가 포함되어 있습니다iceberg-core 에는 빙산 API의 구현과 AVRO 데이터 파일 지원이 포함되어 있습니다. 이것이 처리 엔진에 의존 해야하는 것입니다.iceberg-parquet Parquet 파일로 뒷받침되는 테이블로 작업하기위한 선택 모듈입니다.iceberg-arrowiceberg-orc ORC 파일로 뒷받침되는 테이블로 작업하기위한 선택 모듈입니다.iceberg-hive-metastoreiceberg-data 는 JVM 응용 프로그램에서 직접 테이블로 작업하기위한 선택 모듈입니다.Iceberg는 또한 가공 엔진에 빙산 지지대를 추가하기위한 모듈도 있습니다.
iceberg-spark 각 스파크 버전에 대한 서브 모듈이있는 빙산 용 Spark의 DataSource V2 API를 구현 한 것입니다 (음영 버전에는 런타임 항아리 사용)iceberg-flink Apache Flink와 통합하기위한 클래스가 포함되어 있습니다 (음영 버전에는 Iceberg-Flink-Runtime 사용)iceberg-mr 에는 Apache Hive와 통합하기위한 Inputformat 및 기타 클래스가 포함되어 있습니다.메모
테스트에서는 Docker가 실행해야합니다. MACOS (Docker Desktop 포함)에서는 테스트에 의해 감지 되려면 Docker 소켓에 상징적 이름을 만들어야 할 수도 있습니다.
sudo ln -s $HOME/.docker/run/docker.sock /var/run/docker.sock
다른 스파크, 플링크 및 하이브 버전과의 빙산 호환성에 대해 알아 보려면 멀티 엔진 지원 페이지를 참조하십시오. Presto 또는 Trino와 같은 다른 엔진은 빙산 통합 세부 정보를 위해 웹 사이트를 방문하십시오.
이 저장소에는 빙산의 Java 구현이 포함되어 있습니다. 다른 구현은 다음에서 찾을 수 있습니다.