Favicon of Apache Iceberg

Apache Iceberg

Apache Iceberg is an open table format bringing ACID transactions, schema evolution, and time travel to data lake tables, with broad engine support.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hostedManaged
PricingFree
Operational complexityMedium
LanguageJava, Python, Rust, Go

Use it when

  • Several engines must read and write one copy of the data: Spark, Trino, Flink, and most warehouses speak Iceberg through a catalog.
  • Schemas and partition layouts will change over time; field IDs and hidden partitioning let both evolve without rewriting files.
  • You need snapshots for time travel, rollback, and reproducible reads.
  • Vendor neutrality matters: it is the convergence target other formats translate into, with the broadest catalog ecosystem.

Think twice when

  • You do not want to run or choose a catalog; Iceberg requires one (REST, Hive, Glue, or Nessie), unlike Delta's self-contained log.
  • Nobody will own table maintenance: snapshot expiry, orphan cleanup, and compaction are jobs you schedule.
  • The table takes continuous high-frequency updates by key; an LSM-based format like Paimon, or Hudi, is built for that shape.
  • You need secondary indexes; Iceberg prunes with min/max statistics and partitions only.

How it runs

Iceberg is a specification with libraries inside the engines, so there is nothing to deploy except the catalog that resolves table names. Data and metadata files sit on object storage; commits swap a metadata pointer atomically, giving serializable isolation by default. Maintenance runs as engine jobs you schedule. Nearly every lakehouse vendor offers managed Iceberg tables, catalogs, and maintenance.

Details

Compare

How Apache Iceberg answers the questions Table Formats turns on.

Table Formats
How it works
CatalogRequired: REST, Hive, Glue, Nessie; Hadoop file-based option
Update modelCopy-on-write and merge-on-read; v3 deletion vectors
PartitioningHidden: transforms on a column, and the spec evolves without rewriting data
Schema evolutionField IDs: add, drop, rename, reorder and widen without touching a file
Concurrent writersOptimistic: atomic swap of the metadata pointer, serializable by default
IndexesManifest min/max stats and partition pruning; Puffin holds stats, no secondary indexes
Change feedIncremental scans; v3 row lineage
Running it
MaintenanceExpire snapshots, delete orphans, compact files, rewrite manifests, you schedule them
Connections
Engine supportBroad read and write: Spark, Flink, Trino, and warehouses
Cross-format readsThe convergence target: XTable translates in, UniForm and Paimon write Iceberg metadata

Share:

Alternatives to Apache Iceberg

Favicon

 

  
  
Favicon

 

  
  
Favicon

 

  
  

Used in architectures