BigData / Apache Iceberg Interview questions
What are positional deletes versus equality deletes?
Both are the two kinds of delete files Iceberg's merge-on-read strategy can write to record removed rows without rewriting the underlying data file, differing in exactly how they identify which rows are deleted.
| Positional Deletes | Equality Deletes |
| Identifies deleted rows by exact file path + row position. | Identifies deleted rows by matching column value(s). |
| Very cheap to apply at read time; a direct offset lookup. | More expensive to apply; requires scanning to find matches. |
| Requires knowing the exact file and row position at delete time. | Useful when only a logical key is known, not the physical location. |
| Preferred when the writer already scanned the matching rows. | Common for streaming deletes where physical location isn't tracked. |
A positional delete file essentially says "row number 42 in file X is deleted," which is fast to apply since a reader just needs to skip that specific offset; an equality delete file instead says "any row where a column equals a given value is deleted," which requires the reader to actually check each row's value against the delete condition, making it more expensive to apply but more convenient to write when the exact physical location of matching rows isn't already known at delete time.
More Related questions...