Interface ManageSnapshots
- All Superinterfaces:
- PendingUpdate<Snapshot>
- All Known Implementing Classes:
- SnapshotManager
snapshot. Rollback:
 This API does not allow conflicting calls to setCurrentSnapshot(long) and rollbackToTime(long).
 
When committing, these changes will be applied to the current table metadata. Commit conflicts
 will not be resolved and will result in a CommitFailedException. Cherrypick:
 
In an audit workflow, new data is written to an orphan snapshot that is not
 committed as the table's current state until it is audited. After auditing a change, it may need
 to be applied or cherry-picked on top of the latest snapshot instead of the one that was current
 when the audited changes were created. This class adds support for cherry-picking the changes
 from an orphan snapshot by applying them to the current snapshot. The output of the operation is
 a new snapshot with the changes from cherry-picked snapshot.
 
- 
Method SummaryModifier and TypeMethodDescriptioncherrypick(long snapshotId) Apply supported changes in given snapshot and create a new snapshot which will be set as the current snapshot on commit.default ManageSnapshotscreateBranch(String name) Create a new branch.createBranch(String name, long snapshotId) Create a new branch pointing to the given snapshot id.Create a new tag pointing to the given snapshot idfastForwardBranch(String from, String to) Performs a fast-forward offromup to thetosnapshot iffromis an ancestor ofto.removeBranch(String name) Remove a branch by nameRemove the tag with the given name.renameBranch(String name, String newName) Rename a branchreplaceBranch(String name, long snapshotId) Replaces the branch with the given name to point to the specified snapshotreplaceBranch(String from, String to) Replaces thefrombranch to point to thetosnapshot.replaceTag(String name, long snapshotId) Replaces the tag with the given name to point to the specified snapshot.rollbackTo(long snapshotId) Rollback table's state to a specificSnapshotidentified by id.rollbackToTime(long timestampMillis) Roll this table's data back to the lastSnapshotbefore the given timestamp.setCurrentSnapshot(long snapshotId) Roll this table's data back to a specificSnapshotidentified by id.setMaxRefAgeMs(String name, long maxRefAgeMs) Updates the retention policy for a reference.setMaxSnapshotAgeMs(String branchName, long maxSnapshotAgeMs) Updates the max snapshot age for a branch.setMinSnapshotsToKeep(String branchName, int minSnapshotsToKeep) Updates the minimum number of snapshots to keep for a branch.Methods inherited from interface org.apache.iceberg.PendingUpdateapply, commit, updateEvent
- 
Method Details- 
setCurrentSnapshotRoll this table's data back to a specificSnapshotidentified by id.- Parameters:
- snapshotId- long id of the snapshot to roll back table data to
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- If the table has no snapshot with the given id
 
- 
rollbackToTimeRoll this table's data back to the lastSnapshotbefore the given timestamp.- Parameters:
- timestampMillis- a long timestamp, as returned by- System.currentTimeMillis()
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- If the table has no old snapshot before the given timestamp
 
- 
rollbackToRollback table's state to a specificSnapshotidentified by id.- Parameters:
- snapshotId- long id of snapshot id to roll back table to. Must be an ancestor of the current snapshot
- Throws:
- IllegalArgumentException- If the table has no snapshot with the given id
- ValidationException- If given snapshot id is not an ancestor of the current state
 
- 
cherrypickApply supported changes in given snapshot and create a new snapshot which will be set as the current snapshot on commit.- Parameters:
- snapshotId- a snapshotId whose changes to apply
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- If the table has no snapshot with the given id
- DuplicateWAPCommitException- In case of a WAP workflow and if the table has a duplicate commit with same wapId
 
- 
createBranchCreate a new branch. The branch will point to current snapshot if the current snapshot is not NULL. Otherwise, the branch will point to a newly created empty snapshot.- Parameters:
- name- branch name
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if a branch with the given name already exists
 
- 
createBranchCreate a new branch pointing to the given snapshot id.- Parameters:
- name- branch name
- snapshotId- id of the snapshot which will be the head of the branch
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if a branch with the given name already exists
 
- 
createTagCreate a new tag pointing to the given snapshot id- Parameters:
- name- tag name
- snapshotId- snapshotId for the head of the new branch.
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if a tag with the given name already exists
 
- 
removeBranchRemove a branch by name- Parameters:
- name- branch name
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if the branch does not exist
 
- 
renameBranchRename a branch- Parameters:
- name- name of branch to rename
- newName- the desired new name of the branch
- Throws:
- IllegalArgumentException- if the branch to rename does not exist or if there is already a branch with the same name as the desired new name.
 
- 
removeTagRemove the tag with the given name.- Parameters:
- name- tag name
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if the branch does not exist
 
- 
replaceTagReplaces the tag with the given name to point to the specified snapshot.- Parameters:
- name- Tag to replace
- snapshotId- new snapshot id for the given tag
- Returns:
- this for method chaining
 
- 
replaceBranchReplaces the branch with the given name to point to the specified snapshot- Parameters:
- name- Branch to replace
- snapshotId- new snapshot id for the given branch
- Returns:
- this for method chaining
 
- 
replaceBranchReplaces thefrombranch to point to thetosnapshot. Thetowill remain unchanged, andfrombranch will retain its retention properties. If thefrombranch does not exist, it will be created with default retention properties.- Parameters:
- from- Branch to replace
- to- The branch- fromshould be replaced with
- Returns:
- this for method chaining
 
- 
fastForwardBranchPerforms a fast-forward offromup to thetosnapshot iffromis an ancestor ofto. Thetowill remain unchanged, andfromwill retain its retention properties. If thefrombranch does not exist, it will be created with default retention properties.- Parameters:
- from- Branch to fast-forward
- to- Ref for the- frombranch to be fast forwarded to
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if- fromis not an ancestor of- to
 
- 
setMinSnapshotsToKeepUpdates the minimum number of snapshots to keep for a branch.- Parameters:
- branchName- branch name
- minSnapshotsToKeep- minimum number of snapshots to retain on the branch
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if the branch does not exist
 
- 
setMaxSnapshotAgeMsUpdates the max snapshot age for a branch.- Parameters:
- branchName- branch name
- maxSnapshotAgeMs- maximum snapshot age in milliseconds to retain on branch
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if the branch does not exist
 
- 
setMaxRefAgeMsUpdates the retention policy for a reference.- Parameters:
- name- branch name
- maxRefAgeMs- retention age in milliseconds of the tag reference itself
- Returns:
- this for method chaining
- Throws:
- IllegalArgumentException- if the reference does not exist
 
 
-