Iceberg เป็นรูปแบบประสิทธิภาพสูงสำหรับตารางการวิเคราะห์ขนาดใหญ่ Iceberg นำความน่าเชื่อถือและความเรียบง่ายของตาราง SQL มาสู่ข้อมูลขนาดใหญ่ในขณะที่ทำให้เป็นไปได้สำหรับเครื่องยนต์เช่น Spark, Trino, Flink, Presto, Hive และ Impala เพื่อทำงานอย่างปลอดภัยกับตารางเดียวกันในเวลาเดียวกัน
ความเป็นมาและเอกสารประกอบมีอยู่ที่ https://iceberg.apache.org
Iceberg อยู่ระหว่างการพัฒนาที่ Apache Software Foundation
ข้อกำหนดรูปแบบ ICeberg มีความเสถียรและมีการเพิ่มคุณสมบัติใหม่ในแต่ละเวอร์ชัน
ห้องสมุดหลัก Java ตั้งอยู่ในที่เก็บนี้และเป็นการใช้งานอ้างอิงสำหรับห้องสมุดอื่น ๆ
เอกสารมีให้สำหรับไลบรารีและการรวมระบบทั้งหมด
Iceberg ติดตามปัญหาใน GitHub และชอบที่จะได้รับเงินบริจาคเป็นคำขอดึง
การอภิปรายของชุมชนเกิดขึ้นเป็นหลักในรายชื่อผู้รับจดหมาย dev หรือในประเด็นเฉพาะ
ภูเขาน้ำแข็งถูกสร้างขึ้นโดยใช้ Gradle กับ Java 11, 17 หรือ 21
./gradlew build./gradlew build -x test -x integrationTest./gradlew spotlessApply./gradlew spotlessApply -DallModulesการรองรับตารางภูเขาน้ำแข็งถูกจัดระเบียบในโมดูลห้องสมุด:
iceberg-common มีคลาสยูทิลิตี้ที่ใช้ในโมดูลอื่น ๆiceberg-api มี Iceberg API สาธารณะiceberg-core มีการใช้งาน Iceberg API และสนับสนุนไฟล์ข้อมูล AVRO นี่คือสิ่งที่เอ็นจินการประมวลผลควรขึ้นอยู่กับiceberg-parquet เป็นโมดูลเสริมสำหรับการทำงานกับตารางที่ได้รับการสนับสนุนจากไฟล์ Parqueticeberg-arrow เป็นโมดูลเสริมสำหรับการอ่าน Parquet เป็นหน่วยความจำลูกศรiceberg-orc เป็นโมดูลเสริมสำหรับการทำงานกับตารางที่ได้รับการสนับสนุนโดยไฟล์ orciceberg-hive-metastore เป็นการดำเนินการของตารางภูเขาน้ำแข็งที่ได้รับการสนับสนุนจากไคลเอนต์ Hive Metastore Thrifticeberg-data เป็นโมดูลเสริมสำหรับการทำงานกับตารางโดยตรงจากแอปพลิเคชัน JVMIceberg ยังมีโมดูลสำหรับการเพิ่มการสนับสนุน Iceberg ในการประมวลผลเอ็นจิ้น:
iceberg-spark เป็นการใช้งานของ DataSource V2 API ของ Spark สำหรับ Iceberg ที่มี submodules สำหรับแต่ละรุ่น Spark (ใช้ Runtime Jars สำหรับเวอร์ชั่นแรเงา)iceberg-flink มีคลาสสำหรับการรวมเข้ากับ Apache Flink (ใช้ Iceberg-Flink-Runtime สำหรับรุ่นแรเงา)iceberg-mr มี inputformat และคลาสอื่น ๆ สำหรับการรวมเข้ากับ Apache Hiveบันทึก
การทดสอบจำเป็นต้องมี Docker เพื่อดำเนินการ บน MacOS (พร้อม Docker Desktop) คุณอาจต้องสร้างชื่อสัญลักษณ์ไปยังซ็อกเก็ต Docker เพื่อตรวจพบโดยการทดสอบ:
sudo ln -s $HOME/.docker/run/docker.sock /var/run/docker.sock
ดูหน้าสนับสนุนหลายเครื่องยนต์เพื่อทราบเกี่ยวกับความเข้ากันได้ของภูเขาน้ำแข็งด้วย Spark, Flink และ Hive รุ่นที่แตกต่างกัน สำหรับเครื่องยนต์อื่น ๆ เช่น Presto หรือ Trino กรุณาเยี่ยมชมเว็บไซต์ของพวกเขาสำหรับรายละเอียดการรวมภูเขาน้ำแข็ง
ที่เก็บนี้มีการใช้ Java ของภูเขาน้ำแข็ง การใช้งานอื่น ๆ สามารถพบได้ที่: