Skip to content
tezvyn:

Apache Iceberg: A Table Format for Huge Datasets

Source: iceberg.apache.orgHardHow cards are made

Apache Iceberg: A Table Format for Huge Datasets

Apache Iceberg is an open table format for huge analytic datasets. It adds a metadata layer to files in object storage, enabling engines like Spark and Trino to work with transactional guarantees. The footgun: it's a format, not a query engine itself.

Why it exists

Traditional data lakes, often based on Hive, treat file directories as table partitions. This is brittle. Updating data across thousands of files is slow and not atomic, leading to inconsistent reads where different users see different versions of the data. Schema changes often require rewriting the entire table, which is expensive and error-prone.

The mental model

Apache Iceberg is an open table format specification, not a storage engine or a query tool. It's like adding a transactional manifest to your data files in object storage (like S3). Instead of pointing a query engine at a directory of files, you point it at an Iceberg table. The Iceberg metadata layer then tells the engine exactly which files, and which versions of those files, make up the current, consistent state of the table.

How it works

Iceberg maintains a history of the table using snapshots. A top-level metadata file points to the current snapshot. Each snapshot is a manifest list, which points to manifest files. Each manifest file contains a list of the actual data files (e.g., Parquet, ORC) that belong to that version of the table, along with file-level statistics. When you update the table, Iceberg creates new data files and a new snapshot pointing to the new set of files, leaving old ones untouched. This enables atomic commits, reliable schema evolution, and time-travel queries.

When to use it

Use Iceberg when multiple engines (like Spark, Flink, Trino) or teams need to concurrently and reliably access a huge, evolving dataset in a data lake. It's ideal for scenarios requiring ACID-like transactions, safe schema evolution (e.g., adding/renaming columns without rewriting old data), and efficient queries that avoid scanning unnecessary files or partitions.

When not to use it

For small, single-engine workloads or traditional OLTP databases, Iceberg is overkill. It adds a layer of metadata management that isn't necessary if you don't face the consistency, performance, and concurrency challenges of a large-scale, multi-engine data lake.

One canonical example

A streaming pipeline using Flink writes data into an Iceberg table on S3. Simultaneously, a data science team uses Spark to read that same table for model training, while analysts use Trino for ad-hoc queries. Iceberg ensures all three engines see a consistent view of the data, even as it's being continuously updated, without read/write conflicts.

Interview question

What core problem does Apache Iceberg primarily solve for large-scale data lakes?

  • a.Optimizing the physical storage of data files for faster analytical processing.
  • b.Reducing the cost of data storage by compressing files more efficiently.
  • c.Ensuring transactional consistency and reliable schema evolution for evolving datasets.Correct
  • d.Providing a unified, high-performance query engine for diverse data types.
Why?

The card states Iceberg addresses issues like "inconsistent reads," enables "atomic commits," and "reliable schema evolution" by adding a metadata layer, ensuring a "consistent view of the data" for multiple engines. Option D is incorrect because the card explicitly states Iceberg "is an open table format specification, not a storage engine or a query tool."

Just read this? Test yourself on what you have been reading.

Read the original → iceberg.apache.org

You just looked this up. Could you explain it out loud?

That is the part interviews actually test. Tezvyn takes questions like this one and gives you what the interviewer is really checking, the answer that lands, and the mistake that ends the conversation, in the four minutes before your next meeting.

The iPhone app is on the way

We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.

Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.

Get it on Google PlayiPhone app coming soon

We are hiring for this. Open roles that interview on data engineering — each one lists the topics its interview covers.

See open roles