Snapshot Interface
TheSnapshot interface represents a snapshot of the data in an Apache Iceberg table at a specific point in time.
Package: org.apache.iceberg
Overview
A snapshot consists of one or more file manifests, and the complete table contents is the union of all data files in those manifests. Snapshots are created by table operations like:AppendFiles- Adding new dataRewriteFiles- Replacing existing filesOverwriteFiles- Overwriting by filterDeleteFiles- Removing filesRowDelta- Row-level changes
Snapshots enable time travel queries and provide ACID guarantees through immutable metadata.
Identity and Metadata
snapshotId()
sequenceNumber()
parentId()
timestampMillis()
System.currentTimeMillis().
Returns: A long timestamp in milliseconds since epoch
Example:
schemaId()
manifestListLocation()
Operation Information
operation()
append- New data appendedoverwrite- Data overwrittendelete- Data deletedreplace- Partitions replaced
summary()
added-data-files- Number of data files addeddeleted-data-files- Number of data files deletedadded-records- Number of records addeddeleted-records- Number of records deletedtotal-data-files- Total data files after operationtotal-records- Total records after operation
Manifest Access
allManifests(FileIO io)
FileIO
required
A FileIO instance used for reading files from storage
dataManifests(FileIO io)
FileIO
required
A FileIO instance used for reading files from storage
deleteManifests(FileIO io)
FileIO
required
A FileIO instance used for reading files from storage
Data File Access
addedDataFiles(FileIO io)
file_pathfile_formatpartitionrecord_countfile_size_in_bytes- Data and file sequence numbers
FileIO
required
A FileIO instance used for reading files from storage
removedDataFiles(FileIO io)
FileIO
required
A FileIO instance used for reading files from storage
Delete File Access
addedDeleteFiles(FileIO io)
file_pathfile_formatpartitionrecord_countfile_size_in_bytes
FileIO
required
A FileIO instance used for reading files from storage
UnsupportedOperationException if not implemented
removedDeleteFiles(FileIO io)
FileIO
required
A FileIO instance used for reading files from storage
UnsupportedOperationException if not implemented
Row Lineage (Optional)
firstRowId()
addedRows()
next-row-id during a commit. The value may be more than the number of rows added in this snapshot and can include some existing rows.
Returns: The upper bound of rows with assigned row IDs, or null if not stored
This field is optional but required when the table version supports row lineage.
Encryption
keyId()
Usage Examples
Getting Current Snapshot
Examining Snapshot Summary
Listing Manifests
Inspecting Added and Removed Files
Traversing Snapshot History
Time Travel with Snapshots
Examining Snapshot Lineage
Getting Snapshot by Reference
Analyzing Delete Files
Best Practices
Source Code Reference
Source:org/apache/iceberg/Snapshot.java:34