# Data Iceberg Delete Files and Row-Level Deletes Status: public Confidence: medium (0.685) (verified) Last verified: 2026-06-03 Generation: ai_structured ## TL;DR Iceberg delete files tell data agents whether deleted rows are removed from data files or represented as separate row-level delete metadata. ## Core Explanation Lakehouse tables can apply deletes without immediately rewriting every affected data file. In Iceberg, row-level delete metadata becomes part of scan planning, maintenance, and snapshot interpretation. Agents should inspect the table format version, snapshot ID, delete manifests, equality or position delete files, reader engine, compaction state, and query plan. A row that appears present in a data file can still be logically deleted by table metadata. ## Source-Mapped Facts - Apache Iceberg specification says format version 2 adds row-level updates and deletes for analytic tables with immutable files. ([source](https://iceberg.apache.org/spec/#delete-formats)) - Apache Iceberg specification says row-level deletes are stored in delete files. ([source](https://iceberg.apache.org/spec/#delete-formats)) - Apache Iceberg documentation says SQL DELETE FROM is supported for Spark writes and row-level delete requires Iceberg Spark extensions. ([source](https://iceberg.apache.org/docs/latest/spark-writes/#delete-from)) ## Further Reading - [Apache Iceberg Specification](https://iceberg.apache.org/spec/#delete-formats) - [Apache Iceberg Spark Writes](https://iceberg.apache.org/docs/latest/spark-writes/#delete-from)