Skip to content

Apache Iceberg

Key idea:

Apache Iceberg — open table format for huge analytic tables. Adds ACID transactions, schema evolution, time travel, and flexible partitioning to Parquet/ORC files on S3. Started at Netflix (2018), now ASF top-level project. 2024 adoption: Snowflake Iceberg tables, BigQuery, Databricks, AWS S3 Tables native support. Competitor to Delta Lake (Databricks).

Below: details, example, related terms, FAQ.

Check your site →

Details

  • Metadata layer: tracks data files + partitions + statistics
  • ACID: snapshot isolation, write-audit-publish pattern
  • Schema evolution: add/drop columns without rewriting data
  • Time travel: query as of specific snapshot / timestamp
  • Hidden partitioning: partition by transform (year(ts)), no user impact

Example

-- Spark + Iceberg
CREATE TABLE prod.db.sales (
  id bigint,
  date date,
  amount decimal(18,2)
) USING iceberg
PARTITIONED BY (month(date));

-- Time travel
SELECT * FROM prod.db.sales
FOR TIMESTAMP AS OF '2026-03-01 00:00:00';

-- Schema evolution
ALTER TABLE prod.db.sales ADD COLUMN region string;

Related Terms

Understanding Apache Iceberg Architecture

Apache Iceberg is designed to provide a robust and scalable table format for large-scale analytics. Its architecture is built to handle complex data management tasks efficiently. The core components of Iceberg include:

  • Metadata Layer: Iceberg utilizes a rich metadata layer that tracks schema definitions, partitioning, and snapshots. This metadata is stored in a separate location from the data files, allowing for quick access and modifications.
  • Data Files: Iceberg supports various file formats, including Parquet and ORC. Data files are organized and managed separately from the metadata, enabling efficient read and write operations.
  • Snapshot Management: Each change to a table creates a new snapshot, allowing users to perform time travel queries. Users can query historical data states without impacting the current dataset.
  • Partitioning: Iceberg provides flexible partitioning strategies, enabling users to define partitions based on their query patterns. This optimizes query performance and resource usage.

By decoupling data storage from metadata management, Iceberg allows teams to scale their analytics workloads while maintaining data integrity and performance.

Practical Commands for Managing Iceberg Tables

To effectively utilize Apache Iceberg, understanding the command syntax for managing tables is crucial. Below are some practical commands for creating, modifying, and querying Iceberg tables:

  • Creating an Iceberg Table:
    CREATE TABLE iceberg_db.my_table (id BIGINT, name STRING) USING iceberg;
  • Adding a New Column:
    ALTER TABLE iceberg_db.my_table ADD COLUMNS (age INT);
  • Renaming a Column:
    ALTER TABLE iceberg_db.my_table RENAME COLUMN name TO full_name;
  • Dropping a Column:
    ALTER TABLE iceberg_db.my_table DROP COLUMN age;
  • Performing a Time Travel Query:
    SELECT * FROM iceberg_db.my_table TIMESTAMP AS OF '2023-01-01 00:00:00';

These commands illustrate the flexibility of Iceberg in managing table schemas and performing historical queries, making it a powerful tool for data analysts and engineers.

Comparing Apache Iceberg and Delta Lake

Apache Iceberg and Delta Lake are both popular table formats in the lakehouse architecture, but they have distinct features and use cases. Understanding their differences can help organizations choose the right solution for their needs:

  • Transaction Support: Both Iceberg and Delta Lake support ACID transactions, but Iceberg's design allows for more complex schema evolution and multi-table transactions, making it suitable for larger datasets.
  • Schema Evolution: Iceberg provides a more flexible schema evolution process, allowing users to add, drop, or rename columns without requiring a full rewrite of the data files. Delta Lake, while supporting schema evolution, can be more restrictive in certain scenarios.
  • Data Storage: Iceberg supports multiple storage formats (Parquet, ORC), while Delta Lake is tightly integrated with Parquet. This flexibility allows Iceberg to be used in a variety of environments and with different processing engines.
  • Time Travel: Both formats offer time travel capabilities, but Iceberg's snapshot management allows for more granular control over historical queries.

In summary, while both Apache Iceberg and Delta Lake provide valuable features for managing large-scale analytics, Iceberg's flexibility and robust architecture make it a compelling choice for organizations looking to optimize their data workflows.

Learn more

Frequently Asked Questions

Iceberg vs Delta Lake?

Iceberg: open (ASF), multi-engine (Spark, Trino, Flink, Snowflake). Delta: Databricks-led, Spark-first. 2025+ convergence (Delta Uniform reads Iceberg).

Query engines?

Apache Spark, Trino, Dremio, Snowflake, Starburst, Presto, DuckDB, AWS Athena, Google BigQuery. Almost all analytic engines 2025+.

Production reliable?

Yes — Netflix PB-scale since 2019. Apple, Expedia, Pinterest, Adobe — all use it. ACID delivered, schema evolution tested in prod.

Try the live tool that powered this guide

Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.