
This guide gives AI infrastructure practitioners a practical framework for Apache Iceberg's core capabilities, the V3 spec's deletion vectors and row lineage, and the storage and catalog architecture needed so training and feature pipelines stay reproducible, auditable, and free of compute lock-in.
Apache Iceberg is an open table format that brings ACID transactions, schema evolution, and time travel to large analytic datasets stored in object storage. It is a structured metadata layer over raw columnar files. Multiple compute engines can read and write data concurrently without corruption.
The shift from traditional analytics to artificial intelligence changes how organizations manage unstructured data. Machine learning pipelines require the same transactional guarantees and reproducibility that Iceberg was built to provide, but at the scale of model training and inference. You cannot train reliable models on data that changes unpredictably during the read process.
This article explains what Apache Iceberg is, why AI workloads require open table formats, what changed with the Iceberg V3 spec, and how to architect your data stack to support these capabilities. You will learn how the storage layer impacts performance and how to integrate Iceberg with standard compute engines.
Apache Iceberg is a log based, snapshot driven metadata layer that sits above immutable columnar files in object storage. Think of it like a version control system for your data lake tables: it tracks every change, allows you to roll back to previous states, and ensures multiple users can read and write simultaneously without corrupting the repository.
Iceberg replaces rigid, directory based data layouts with a flexible metadata tree. This architecture enables several core capabilities:
Iceberg's ecosystem also includes capabilities that sit outside the core table format spec and apply across format versions. The REST Catalog API provides a vendor neutral HTTP interface for catalog operations. Iceberg Views let you version logical datasets the same way you version tables. Multi-table transactions enable atomic commits across multiple tables at once, keeping complex updates consistent. These are catalog and view level capabilities, not tied to a single table format version, and many engines already support them on tables that predate V3.
Iceberg format version 3 is the current major revision to the table spec itself. It introduces:
For AI workloads specifically, deletion vectors and row lineage matter more than the headline naming suggests. Feature stores that need to correct or retire individual training records benefit from faster, more targeted deletes. Model registries and audit pipelines benefit from row level lineage on top of snapshot level history, since you can now trace not just which snapshot fed a training run, but which specific rows were added or changed and when.
V3 tables remain backward compatible for readers built against V2, though older engines will not apply deletion vectors or row lineage correctly, so confirm your query engines support V3 before adopting it in production.
Artificial intelligence workloads require data governance, reproducibility, and high throughput. An open table format delivers these guarantees without locking your infrastructure into a proprietary data warehouse. Managing metadata and catalogs adds complexity, but that overhead is necessary to maintain data integrity at scale.
While several formats exist, they differ in architectural focus. The table below compares Apache Iceberg, Delta Lake, and Apache Hudi across capabilities relevant to AI workloads.
Iceberg maps onto four layers of a modern AI data architecture. Data flows from source systems into object storage, where the Iceberg table format structures it. The catalog layer tracks these tables and provides metadata pointers to query engines and machine learning frameworks.
The foundation of the stack is S3-compatible object storage. This layer holds the actual data in columnar formats like Apache Parquet, ORC, or Avro. It must deliver the raw aggregate throughput required to keep GPUs fed during training. Iceberg relies on this storage layer for data durability and availability.
This layer consists of Iceberg metadata files, manifest lists, and manifest files. It defines the table structure, partition rules, and snapshot history. By managing these files, Iceberg enforces transactional rules and schema evolution across the underlying objects without requiring a proprietary storage engine.
The catalog is the entry point for any table access. It tells query engines where to find the latest metadata file for a given table. The REST Catalog API standardizes this layer, reducing dependencies on legacy systems. An embedded catalog reduces external dependencies, while a standalone catalog provides a centralized governance point.
Related: Iceberg's Catalog API: The Atomic Pointer Manager Behind Your Iceberg Tables.
Iceberg supports multiple compute engines reading and writing the same tables concurrently. You can use Apache Spark for heavy ETL jobs, Trino or Dremio for interactive queries, and Databricks for machine learning. Because the catalog and table format layers are engine-agnostic, you avoid compute lock-in.
The table format depends on the storage system beneath it. AI workloads push storage infrastructure to its limits. If the storage layer bottlenecks, GPU utilization drops and model training stalls.
Related: Hungry GPUs Need Fast Object Storage
Implementing Iceberg requires connecting your compute engines to your catalog and storage layers. The following patterns show how to configure standard engines for AI workloads.
Apache Spark is the standard engine for heavy feature generation and data preparation. Configure Spark to use the Iceberg REST Catalog and an S3-compatible storage backend.
The following configuration snippet shows how to set up the Spark session properties:
# Use Iceberg as Spark catalog
spark.sql.catalog.my_iceberg=org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.my_iceberg.type=rest
spark.sql.catalog.my_iceberg.uri=https://iceberg-catalog.example.com
spark.sql.catalog.my_iceberg.warehouse=s3://my-data-lake/warehouse
spark.sql.catalog.my_iceberg.io-impl=org.apache.iceberg.aws.s3.S3FileIO
In this configuration, the type=rest parameter directs Spark to use the REST Catalog API. The uri points to your catalog server, while the warehouse defines the root path in your S3-compatible storage. The io-impl ensures Spark uses the correct library to interact with the object store.
Databricks integrates with Iceberg when configured with a compatible catalog. When connected to a REST Catalog, you can treat tables as native Iceberg tables and perform schema evolution via SQL.
Because Iceberg manages the schema evolution, existing files are not rewritten. Databricks reads and writes via its catalog integration, while the underlying table format semantics come from Iceberg. This allows you to write features using Databricks and read them later with a different engine.
Trino provides interactive query capabilities across distributed datasets. By pointing Trino to the same REST Catalog and S3-compatible storage used by Spark, you can perform multi-engine queries.
Configure the Trino catalog properties to enable the Iceberg connector and point it to your REST endpoint:
connector.name=iceberg
iceberg.catalog.type=rest
iceberg.rest-catalog.uri=https://iceberg-catalog.example.com
iceberg.warehouse=s3://my-data-lake/warehouse
# S3-compatible storage config
hive.s3.aws-access-key=ACCESS_KEY
hive.s3.aws-secret-key=SECRET_KEY
hive.s3.endpoint=https://s3-compatible.example.com
hive.s3.path-style-access=true
With this setup, Spark can continuously update feature tables while Trino queries those same tables. Both engines respect the same snapshot isolation rules, ensuring Trino does not read partially written files.
Apache Iceberg provides transactional guarantees, reproducibility, and multi-engine flexibility that unstructured data lakes do not provide. By separating compute from storage and standardizing metadata through the REST Catalog API, Iceberg reduces vendor lock-in and supports data federation. The V3 spec extends this further for AI workloads, with deletion vectors and row lineage adding faster, more precise row-level operations and audit trails on top of the snapshot-level guarantees Iceberg already provided.
The storage layer determines whether those guarantees hold at the scale of model training. Without high throughput, petabyte scalability, and S3 compatibility, an open table format cannot deliver its full benefits.
Ready to build an AI data infrastructure that combines open table formats with high throughput? Explore MinIO AIStor Tables to see how purpose-built object storage and a native, embedded Iceberg V3 REST Catalog provide the performance required for enterprise AI workloads.