Apache Iceberg คืออนาคตของ Data Lake หรือไม่? รีวิว ICEBERG เชิงลึก
หาก Data Lake ของคุณให้ความรู้สึกเหมือนหล่มทรายข้อมูล (data quicksand)—การสืบค้นข้อมูลช้า, การเปลี่ยนแปลง Schema ยุ่งเหยิง, การแบ่งพาร์ติชันที่ไม่สอดคล้องกัน—คุณไม่ได้อยู่คนเดียว ในช่วงไม่กี่ปีที่ผ่านมา เทคโนโลยีหนึ่งได้กลายเป็นกระดูกสันหลังของการวิเคราะห์ขนาดใหญ่ที่เชื่อถือได้: Apache Iceberg ในรีวิว ICEBERG นี้ เราจะมาเจาะลึกสิ่งที่ทำให้แตกต่างจากรูปแบบตารางเดิม, ใครควรนำไปใช้ และมีข้อดีข้อเสียอย่างไรในการใช้งานจริง
นี่คือการเจาะลึกเชิงปฏิบัติที่มุ่งเน้นการแก้ปัญหา พร้อมตัวอย่างการใช้งานจริง, ข้อดีข้อเสีย และคำแนะนำสำหรับทีมที่กำลังประเมินการเปลี่ยนไปใช้ Iceberg
Apache Iceberg คืออะไร—และทำไมต้องตอนนี้?
Apache Iceberg คือรูปแบบตารางประสิทธิภาพสูงที่ออกแบบมาสำหรับชุดข้อมูลวิเคราะห์ขนาดใหญ่ ทำให้ตาราง SQL มีความน่าเชื่อถือและเรียบง่ายในโลกของ Data Lake ที่มีการเปลี่ยนแปลง Schema ได้อย่างอิสระ กล่าวโดยสรุป: Iceberg เปลี่ยน Object Storage ของคุณ (S3, ADLS, GCS, HDFS) ให้เป็นตารางที่สอดคล้องกับ ACID ซึ่งคุณสามารถเปลี่ยนแปลง, สืบค้น และควบคุมได้อย่างปลอดภัยในวงกว้าง หลายแหล่งอธิบายว่าเป็นเครื่องมือที่สร้างขึ้นเพื่อการวิเคราะห์ขนาดใหญ่โดยเฉพาะ โดยมีคุณสมบัติ เช่น การเปลี่ยนแปลง Schema, การเปลี่ยนแปลงข้อกำหนดพาร์ติชัน, การสร้าง Snapshot และการทำงานร่วมกันของหลาย Engine
ทำไมต้องตอนนี้? เพราะทีมวิศวกรรมข้อมูลต้องการ:
- การดำเนินการ ACID ที่เชื่อถือได้ใน Cloud Object Storage
- ตารางที่ไม่ขึ้นกับ Engine ซึ่งสามารถใช้งานได้จาก Spark, Flink, Trino/Presto, Snowflake และอื่นๆ
- การสืบค้นข้อมูลที่รวดเร็วและถูกกว่าผ่าน Metadata ที่ชาญฉลาดยิ่งขึ้น, Manifest List และ Hidden Partitioning
- การเปลี่ยนแปลง Schema และพาร์ติชันที่ปลอดภัยโดยไม่ต้องเขียนใหม่ทั้งหมด
คำตัดสิน
- สำหรับแพลตฟอร์มการวิเคราะห์สมัยใหม่ Apache Iceberg เป็นตัวเลือกชั้นนำในการกำหนดมาตรฐานตารางใน Engine และ Cloud ต่างๆ ด้วยการรับประกัน ACID ที่แข็งแกร่ง
- มีประสิทธิภาพเหนือกว่าการแบ่งพาร์ติชัน DIY แบบเดิมๆ และรูปแบบ Parquet แบบธรรมดาในด้านความน่าเชื่อถือและการจัดการ
- แม้ว่าการย้ายข้อมูลและการวางแผนการกำกับดูแลข้อมูลจะไม่ใช่เรื่องง่าย แต่ Snapshot Isolation, รูปแบบ Metadata และการรวม Engine ของ Iceberg ทำให้เป็นผลดีในระยะยาวสำหรับทีมข้อมูลส่วนใหญ่
Iceberg โดยสรุป: ความสามารถหลัก
- ธุรกรรม ACID เหนือ Object Storage
- Snapshot Isolation และการอ่าน Time-Travel
- Hidden Partitioning (ไม่มีการเปิดเผยคอลัมน์พาร์ติชันให้กับผู้ใช้)
- การเปลี่ยนแปลง Schema ที่ยืดหยุ่น (เพิ่ม, เปลี่ยนชื่อ, จัดลำดับใหม่ด้วยคอลัมน์ที่อิงตาม ID)
- การพัฒนาข้อกำหนดพาร์ติชันโดยไม่ต้องเขียนประวัติใหม่
- การทำงานร่วมกันของหลาย Engine (Spark, Flink, Trino/Presto และอื่นๆ)
- การวางแผนที่ขับเคลื่อนด้วย Metadata เพื่อประสิทธิภาพขนาดใหญ่
เหล่านี้ไม่ใช่แค่คำกล่าวอ้างทางการตลาด สถาปัตยกรรมของ Iceberg—ตาราง, Snapshot, Manifest, Manifest List และไฟล์ Metadata—ช่วยลด Overhead ในการ List ไฟล์อย่างเป็นระบบ และทำให้การวางแผนมีประสิทธิภาพสูงในระดับ Petabyte
รีวิว ICEBERG นี้เหมาะสำหรับใคร
- ผู้นำด้านวิศวกรรมข้อมูลที่ออกแบบ Lakehouse แบบ Multi-Engine
- ทีมแพลตฟอร์มที่รวม Spark/Trino/Flink ในรูปแบบตารางเดียว
- องค์กรวิเคราะห์ที่กำลังเผชิญกับข้อจำกัดในการแบ่งพาร์ติชันแบบ Hive หรือ Parquet เฉพาะกิจ
- ทีมที่ต้องการ Time Travel, Rollback หรือการทดลองที่ทำซ้ำได้
ปัญหาใหญ่ที่ Iceberg แก้ไข
1) ความปลอดภัยในการเปลี่ยนแปลงบน Object Storage
Data Lake แบบเดิมประสบปัญหาเกี่ยวกับการเขียนพร้อมกันและความล้มเหลวบางส่วน Iceberg ใช้ Semantic ของ Atomic Commit—ผ่าน Snapshot Manifest—เพื่อให้มั่นใจถึงความสอดคล้องของ Transaction แม้ในขนาดที่ใหญ่ คุณสามารถเขียน, บีบอัด และอัปเดตได้อย่างมั่นใจ แทนที่จะต้องคอยเฝ้าดูรายการ S3
2) การเปลี่ยนแปลง Schema โดยไม่ต้องปวดหัว
Iceberg ใช้ ID คอลัมน์ที่เสถียร ไม่ใช่แค่ชื่อ สำหรับการเปลี่ยนแปลง Schema นั่นหมายความว่าคุณสามารถเปลี่ยนชื่อหรือจัดลำดับคอลัมน์ใหม่ได้โดยไม่ทำให้ข้อมูลเก่าเสียหาย เป็น Superpower ที่เงียบๆ สำหรับชุดข้อมูลที่มีอายุยาวนานซึ่ง Schema Drift เป็นสิ่งที่หลีกเลี่ยงไม่ได้
3) การแบ่งพาร์ติชันที่ไม่รั่วไหล
Hidden Partitioning หมายความว่าผู้ใช้ไม่จำเป็นต้องรู้หรือสนใจว่าข้อมูลถูกแบ่งพาร์ติชันอย่างไร คุณสามารถพัฒนาข้อกำหนดพาร์ติชันเมื่อเวลาผ่านไป (เช่น วัน → ชั่วโมง) ในขณะที่การสืบค้นยังคงสอดคล้องกัน ไม่มีการ SQL เสียหายอีกต่อไปเนื่องจากคอลัมน์พาร์ติชัน
4) การวางแผนที่มีประสิทธิภาพในวงกว้าง
ด้วยไฟล์ Manifest และ Metadata Tree Iceberg หลีกเลี่ยงการดำเนินการ List ไฟล์ที่มีค่าใช้จ่ายสูง ซึ่งทำให้ Query Planner หยุดทำงานในระดับ Petabyte Engine อ่าน Metadata ขนาดเล็กก่อน ไม่ใช่เส้นทางไฟล์นับล้าน
กรณีการใช้งานจริง
- Unified Analytics Layer: จัดเก็บข้อเท็จจริงและมิติข้อมูลที่ได้รับการดูแลจัดการเป็นตาราง Iceberg ที่สามารถอ่านได้โดย Spark สำหรับ ETL, Trino สำหรับ SQL เฉพาะกิจ และ Flink สำหรับ Streaming Upsert
- Machine Learning Feature Store: Time Travel ช่วยให้สามารถสร้างชุดการฝึกอบรมที่ทำซ้ำได้ การเปลี่ยนแปลง Schema ไม่ทำให้ Feature ในอดีตเสียหาย
- การกำกับดูแลและการ Rollback: Snapshot ช่วยให้คุณ Rollback การเขียนโดยไม่ได้ตั้งใจ และรองรับนโยบายการเก็บรักษาข้อมูลโดยมีความเสี่ยงน้อยกว่า
- Streaming + Batch Convergence: รูปแบบ Upsert และ MERGE มีเสถียรภาพ ทำให้สามารถสร้าง Pipeline CDC ได้ในวงกว้าง
สถาปัตยกรรม: Iceberg จัดระเบียบ Lake ของคุณอย่างไร
- ไฟล์ Metadata ของตาราง: "ความจริง" เกี่ยวกับตาราง—Schema, ข้อกำหนดพาร์ติชัน, Snapshot
- Snapshot: เวอร์ชันที่ไม่เปลี่ยนรูปของสถานะตาราง ทำให้สามารถ Time Travel และ Rollback ได้
- Manifest List: Index ที่ระบุว่า Manifest ใดเป็นของ Snapshot ใด
- Manifest: รายการไฟล์ข้อมูลพร้อมสถิติพาร์ติชันและเมตริกในระดับคอลัมน์
- ไฟล์ข้อมูล: โดยทั่วไปคือ Parquet (ORC/Avro ด้วย) ที่จัดเก็บใน Object Storage
แนวทาง Metadata แบบ Layer ช่วยให้ค้นหาและ Prune ได้อย่างรวดเร็ว ลด Latency ในการวางแผนสำหรับตารางขนาดใหญ่
ประสิทธิภาพ: สิ่งที่คาดหวัง
- การวางแผนที่รวดเร็วกว่า: การลด Overhead ในการวางแผน Query อย่างมาก ต้องขอบคุณ Metadata Pruning และ Manifest
- การ Pruning ที่ดีขึ้น: การพัฒนาพาร์ติชันและสถิติคอลัมน์ช่วยลด I/O
- Concurrency ที่เสถียร: Snapshot Isolation ป้องกันไม่ให้ผู้อ่านเห็นการเขียนที่ไม่สมบูรณ์
- การควบคุมต้นทุน: การ List และ Scanning ที่สิ้นเปลืองน้อยกว่า ช่วยลดค่าใช้จ่ายในการประมวลผล
ผลลัพธ์จริงขึ้นอยู่กับ Engine, ขนาดไฟล์, นโยบายการบีบอัด และปริมาณงาน แต่การออกแบบของ Iceberg มุ่งเป้าไปที่จุดที่ทำให้เกิด Query ที่ช้าและมีค่าใช้จ่ายสูงใน Data Lake แบบดั้งเดิมโดยตรง
ประสบการณ์ของผู้พัฒนา: วันที่ 1 ถึงวันที่ 100
- การตั้งค่าวันที่ 1: สร้าง Catalog Iceberg (Glue/Hive/REST), กำหนดตาราง และชี้ Spark/Trino/Flink ไปที่ Catalog ส่วนใหญ่ Engine จัดส่ง Connector Iceberg แบบ Native หรือ Integration ที่สมบูรณ์
- การเปลี่ยนแปลง Schema และพาร์ติชัน: เปลี่ยนข้อกำหนดผ่าน DDL Iceberg ติดตามเวอร์ชันเพื่อให้การอ่านในอดีตยังคงถูกต้อง
- การบีบอัดและการบำรุงรักษา: วางแผนการบีบอัดเป็นระยะเพื่อจัดการไฟล์ขนาดเล็ก ใช้ประโยชน์จาก Procedure แบบ Native ของ Engine หรืองานที่กำหนดเอง
- สุขอนามัยของ Data Ops: ตรวจสอบจำนวน Snapshot, การเติบโตของ Manifest และดำเนินการหมดอายุ Metadata เพื่อให้ประสิทธิภาพคมชัด
Iceberg เปรียบเทียบกับอะไร
- เทียบกับ Parquet ธรรมดาบน S3: Iceberg เพิ่ม ACID, Snapshot ที่สอดคล้องกัน และ Metadata ที่ปรับให้เหมาะสม ขจัดการ List ที่ไม่น่าเชื่อถือและ Schema Drift
- เทียบกับตาราง Hive: Hidden Partitioning และ Snapshot Isolation ของ Iceberg เหนือกว่าคอลัมน์พาร์ติชันที่เปราะบางของ Hive และการขาดความปลอดภัยของ Transaction
- เทียบกับรูปแบบ Lakehouse อื่นๆ: Iceberg แข่งขันกับ Delta Lake และ Apache Hudi จุดแข็งของ Iceberg คือความเป็นกลางของ Multi-Engine, การเปลี่ยนแปลง Schema ที่อิงตาม ID คอลัมน์ และการนำไปใช้ในวงกว้างใน Community Delta โดดเด่นใน Stack ที่เน้น Databricks Hudi เป็นที่นิยมสำหรับ Streaming Upsert เลือกตามความชอบของ Engine, รูปแบบการเปลี่ยนแปลง และการจัด Ecosystem
ข้อเสียและข้อแลกเปลี่ยน
- Operational Learning Curve: คุณจะต้องจัดการการบีบอัด, การเก็บรักษาสแน็ปช็อต และการล้าง Metadata
- ค่าใช้จ่ายในการย้ายข้อมูล: การย้ายจาก Hive หรือ Raw Parquet ต้องมีการวางแผนอย่างรอบคอบ และบางครั้งต้องมีการเขียนใหม่จำนวนมาก
- Engine/Version Skew: การรองรับ Feature อาจแตกต่างกันไปตาม Engine และเวอร์ชัน กำหนดมาตรฐานสำหรับ Combo ที่ผ่านการทดสอบแล้ว
- Metadata Sprawl: หากไม่มีการกำกับดูแล Manifest และ Snapshot สามารถเติบโตได้อย่างรวดเร็ว
Anti-Pattern ทั่วไปที่ควรหลีกเลี่ยง
- ละเลยการบีบอัด: ไฟล์ขนาดเล็กทำลายประสิทธิภาพ ทำให้การบีบอัดเป็นไปโดยอัตโนมัติ
- Snapshot ที่บ่อยเกินไป: ควบคุมจำนวน Snapshot ให้อยู่ภายใต้การควบคุมด้วยนโยบายการหมดอายุ
- การพัฒนาพาร์ติชันที่ไม่จำกัด: เปลี่ยนข้อกำหนดพาร์ติชันโดยเจตนา ตรวจสอบผลกระทบต่อประสิทธิภาพ
- การกำหนดค่า Engine แบบ One-Off: ปรับการกำหนดค่า Spark/Trino/Flink สำหรับ Iceberg เพื่อหลีกเลี่ยงพฤติกรรมที่น่าประหลาดใจ
ลงมือปฏิบัติ: เวิร์กโฟลว์ทั่วไป
การสร้างตาราง Iceberg (Spark SQL)
CREATE TABLE catalog.db.events (
event_id BIGINT,
user_id BIGINT,
ts TIMESTAMP,
payload STRING
)
USING iceberg
PARTITIONED BY (days(ts));
การอ่าน Time Travel
-- Query as of a specific snapshot timestamp
SELECT * FROM catalog.db.events TIMESTAMP AS OF '2025-09-21 00:00:00';
การเปลี่ยนแปลง Schema
ALTER TABLE catalog.db.events ADD COLUMN device_type STRING;
ALTER TABLE catalog.db.events RENAME COLUMN payload TO event_payload;
การปรับไฟล์ขนาดเล็กให้เหมาะสม (Spark)
CALL catalog.system.rewrite_data_files(
table => 'db.events',
strategy => 'binpack',
target_file_size => 134217728
);
สิ่งที่ผู้ใช้พูด
Directory ซอฟต์แวร์สาธารณะอธิบาย Apache Iceberg อย่างสม่ำเสมอว่าเป็นรูปแบบตารางที่นำความน่าเชื่อถือแบบ SQL มาสู่ Big Data และตารางวิเคราะห์ขนาดใหญ่ โดยเน้นที่การดำเนินการ ACID และประสิทธิภาพสูงบน Object Storage แม้ว่ารายการซอฟต์แวร์ธุรกิจบางรายการอาจกล่าวถึงผลิตภัณฑ์ที่มีชื่อคล้ายกันซึ่งไม่เกี่ยวข้องกับรูปแบบตาราง Open Source ตรวจสอบให้แน่ใจว่าคุณกำลังประเมิน "Apache Iceberg" โดยเฉพาะสำหรับการใช้งานด้านวิศวกรรมข้อมูล
Iceberg เหมาะสมกับ Stack สมัยใหม่ที่ใด
- Storage: S3, ADLS, GCS, HDFS
- Engine: Spark (Batch/ETL/ML), Flink (Streaming/CDC), Trino/Presto (Ad hoc SQL), Snowflake (External Table พร้อมการรองรับที่เพิ่มขึ้น) และอื่นๆ
- Orchestration: Airflow, Dagster, Prefect
- Catalog/Metastore: AWS Glue, Hive Metastore, REST Catalog
- Governance: LakeFS, Ranger, คุณสมบัติตารางในตัว + นโยบายการเก็บรักษา
Migration Playbook (ขั้นตอนการปฏิบัติ)
- ทำรายการตารางตามขนาด, SLA และรูปแบบ Query
- เริ่มต้นด้วยตารางที่ไม่สำคัญและมีปัญหามาก (Query ช้า, Schema ไม่เสถียร)
- สร้าง Iceberg เทียบเท่า เขียนคู่ขนานหรือ Backfill ด้วย Snapshot ที่ผ่านการตรวจสอบแล้ว
- ตรวจสอบด้วยปริมาณงานที่เป็นตัวแทนใน Engine ต่างๆ
- Cut Over ผู้บริโภคและยกเลิกเส้นทางเดิม
- ทำให้การบีบอัดและการหมดอายุของ Snapshot เป็นไปโดยอัตโนมัติตั้งแต่วันแรก
ข้อควรพิจารณาเกี่ยวกับต้นทุนและ ROI
- ประหยัดค่าใช้จ่ายในการประมวลผลจากการ I/O ที่น้อยลงและการวางแผนที่รวดเร็วกว่า
- ลด Downtime จากความปลอดภัยของ Transaction
- ลด Operational Toil เมื่อเทียบกับการจัดการพาร์ติชัน Parquet + Hive เฉพาะกิจ
- ความยืดหยุ่นในการสลับ Engine โดยไม่ต้องจัดรูปแบบข้อมูลใหม่
ROI โดยทั่วไปจะดีขึ้นตามขนาดตารางและขนาดทีม ยิ่งคุณเรียกใช้ Engine และ Pipeline มากเท่าไหร่ การกำหนดมาตรฐานของ Iceberg ก็ยิ่งคุ้มค่า
ความปลอดภัยและการปฏิบัติตามข้อกำหนด
Iceberg มุ่งเน้นไปที่รูปแบบตารางและ Metadata ผสานรวมกับ IAM, การเข้ารหัส และการควบคุม Perimeter ของ Storage Layer สำหรับการกำกับดูแลข้อมูล ให้จับคู่กับ Catalog และ Policy Engine และใช้การตรวจสอบ Snapshot/Time-Travel เพื่อตรวจสอบการเปลี่ยนแปลง ใช้ความปลอดภัยในระดับแถวหรือคอลัมน์ที่ Engine Layer เมื่อจำเป็น
Apache Iceberg เหมาะสมกับคุณหรือไม่?
เลือก Iceberg หากคุณ:
- ต้องการ ACID บน Object Storage ที่รองรับ Multi-Engine
- คาดว่าจะมีการเปลี่ยนแปลง Schema และพาร์ติชันบ่อยครั้ง
- เรียกใช้งาน Workload ที่หลากหลาย (Batch + Streaming + Ad hoc SQL)
- ต้องการ Time Travel, ความสามารถในการทำซ้ำ และการ Rollback ที่เชื่อถือได้
พิจารณาทางเลือกอื่นหากคุณ:
- ใช้ Vendor รายเดียวที่ให้บริการรูปแบบ Lakehouse ที่มีการจัดการอยู่แล้ว
- มีชุดข้อมูลขนาดเล็กหรือรายงานง่ายๆ ที่รูปแบบตารางเพิ่มมูลค่าน้อย
สิ่งที่ควรทราบ: การเร่งความเร็วเนื้อหาและเอกสาร
หากคุณกำลังจัดทำเอกสารการย้ายข้อมูล, สร้าง Runbook ภายใน หรือสรุปตัวเลือกแพลตฟอร์มสำหรับผู้มีส่วนได้ส่วนเสีย ผู้ช่วย AI ที่สามารถรวบรวมบันทึกการประชุม, Code Snippet และเอกสาร Vendor สามารถช่วยประหยัดเวลาได้ Sider.AI นำเสนอแถบด้านข้าง AI และเครื่องมือเนื้อหาที่ช่วยให้ทีมสรุปเอกสารทางเทคนิคที่ซับซ้อน, สร้างคู่มือวิธีการ และสร้าง Draft รีวิวได้เร็วขึ้น ซึ่งมีประโยชน์เมื่อคุณกำลังกำหนดมาตรฐานบน Iceberg และต้องการเอกสารภายในที่ชัดเจนสำหรับผู้บริโภคข้อมูล จะไม่มาแทนที่การตัดสินใจด้านสถาปัตยกรรมของคุณ แต่สามารถลดเวลาจากการวิจัยไปสู่เอกสารที่เผยแพร่ได้ ข้อสรุป: รีวิว ICEBERG ของเรา
Apache Iceberg ไม่ใช่แค่รูปแบบไฟล์ใหม่ แต่เป็น Layer การกำกับดูแลและประสิทธิภาพที่ทำให้ Data Lake ทำงานเหมือน Database ที่เชื่อถือได้ ในขณะที่ยังคงเปิดกว้างและไม่ขึ้นกับ Engine สำหรับทีมข้อมูลขนาดกลางถึงใหญ่ส่วนใหญ่ Iceberg ให้ความสมดุลที่เหมาะสมระหว่างความปลอดภัย ACID, การพัฒนา Schema/พาร์ติชัน และการใช้งานข้าม Engine คาดว่าจะมีการเรียนรู้ด้านการปฏิบัติงาน แต่ผลตอบแทนระยะยาว—ในด้านความเร็ว, ความเสถียร และความยืดหยุ่น—นั้นน่าสนใจ
ประเด็นสำคัญ
- Iceberg มอบ ACID, Time Travel และการวางแผนที่รวดเร็วผ่าน Cloud Object Storage
- Hidden Partitioning และการพัฒนา Schema ที่อิงตาม ID คอลัมน์ช่วยลดการแตกหัก
- การรองรับ Ecosystem ที่แข็งแกร่งใน Spark, Flink, Trino และอื่นๆ
- วางแผนสำหรับการบีบอัดและสุขอนามัยของ Metadata ตั้งแต่วันแรก
- เหมาะที่สุดสำหรับทีมที่เรียกใช้งาน Workload การวิเคราะห์ขนาดใหญ่ที่หลากหลาย
ขั้นตอนต่อไป
- นำร่อง Iceberg บนตารางที่มีผลกระทบสูงแต่ไม่สำคัญ
- กำหนดมาตรฐานเวอร์ชัน Engine และกำหนดค่างานการบีบอัด/การเก็บรักษา
- จัดทำเอกสารข้อตกลงสำหรับการพัฒนา Schema/พาร์ติชัน
- ประเมินผลกำไรด้านประสิทธิภาพและประหยัดค่าใช้จ่ายในการประมวลผลหลังการย้ายข้อมูล
คำถามที่พบบ่อย
Q1:What is Apache Iceberg and why is it used in data lakes?
Apache Iceberg is a table format that brings ACID transactions, time travel, and efficient metadata to object storage. It’s used to make large-scale analytics reliable and engine-agnostic across Spark, Flink, Trino, and more.
Q2:How does Iceberg compare to Delta Lake and Apache Hudi?
Iceberg emphasizes engine neutrality, schema evolution via column IDs, and efficient planning. Delta often shines in Databricks-centric stacks, while Hudi is popular for streaming upserts and CDC-heavy workloads.
Q3:Does Apache Iceberg support schema and partition evolution?
Yes. Iceberg allows adding, renaming, and reordering columns using stable IDs, and you can evolve partition specs without breaking existing queries or rewriting old data.
Q4:Can I use Iceberg with multiple query engines?
Yes. Iceberg supports Spark, Flink, Trino/Presto, and other engines, enabling a single set of tables to serve batch ETL, streaming, and ad hoc SQL without duplication.
Q5:What are the operational best practices for Iceberg tables?
Automate compaction to avoid small files, expire old snapshots to manage metadata growth, monitor manifest sizes, and standardize engine versions for consistent feature support.